Commit graph

92 commits

Author SHA1 Message Date
Elad Ashkenazi
6bceebbb1a CMake fixes
Thanks to @RipleyTom

Co-Authored-By: RipleyTom <RipleyTom@users.noreply.github.com>
2024-05-14 19:36:48 +03:00
Elad Ashkenazi
66008d5ca4 Savestates: Multi-threaded compression, use ZSTD 2024-05-14 19:36:48 +03:00
oltolm
01a05502e8 cmake: replace add_compile_definitions with target_compile_definitions 2023-08-15 20:56:39 +02:00
oltolm
a01a7a44cd qt6: fix mingw-w64 build 2023-08-15 20:56:39 +02:00
Megamouse
bb2d7063c4 Update ffmpeg 2023-08-02 08:21:47 +02:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows 2023-07-11 21:40:30 +03:00
Zion Nimchuk
f0828ebbc0 Use seperately bundled LLVM library 2023-04-30 04:40:35 +02:00
Ivan Chikish
fb88e1c1c9 Update to LLVM 16.0.0, switch to upstream LLVM 2023-04-06 10:19:31 +03:00
Megamouse
18b7955384 SDL handler 2022-12-13 11:56:48 +01:00
shinra-electric
db9389d24c
[macOS] Ask CMake to look in the right place for include & link directories (#12516)
* Ask CMake to look in the right place for include_directories and link_directories on macOS (arm64 and x86_64)

Homebrew installs to a different location on Arm Macs compared to Intel Macs. 

This change prevents this error when compiling on Arm:   
`ld: warning: directory not found for option '-L/opt/local/lib'`

Use STREQUAL instead of MATCHES, since MATCHES is supposed to be used with regular expressions. 

Also update the homebrew directories for Intel, since they were wrong.

Remove the conditional check for x86 Apple, as usr/local is part of the default search path.
Tested on Intel and the warning does not appear.
2022-09-26 18:07:05 +01:00
RipleyTom
8c01612851 Warn about LTO and adds an option to remove LTO flags 2022-05-22 23:03:20 +02:00
Nekotekina
580bd2b25e Initial Linux Aarch64 support
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
*   (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
陈俊嘉
20cc2d7267 Add multi-config generator build support for Windows. 2022-01-02 23:59:54 +01:00
Vestrel
37a722cc1d
Audio backend improvements
Callback based audio update.
Upgraded common backend interface.
Added Cubeb backend.
Support multiple audio providers.
Dropped pulse, alsa, openal backends.
2021-11-24 19:41:05 +01:00
陈俊嘉
42e3add6a1
BUILD: a couple of cmake msvc compile fixes (#10799)
* cmake: a couple of msvc compile fixes

Throw error when using multi-config generators.
Add USE_MSVC_STATIC_CRT option for statically linking with CRT.
Set curl's CURL_STATIC_CRT aligned with USE_MSVC_STATIC_CRT.
Fix cmake configs of 7z and OpenAL in msvc build.
Remove unecessary hard coded compiling and linking flags.
Use debug option in windeployqt when configuring for a debug build.
Search for windeployqt tool in configure time.
Add vcpkg's Qt support.

* Fix some typos
2021-09-11 23:55:53 +02:00
Justin Lewis
ae491f04a1
Fixes build issue with LLVM on Windows with cmake (#10776)
LLVM fails to build on Windows with C++ 20 standard.  When building LLVM
on Windows, we use C++ 14 already.  This commit changes the c++ standard
to be picked by each subdirectory rather than the standard being picked
by the root level cmake file.
2021-08-31 11:07:49 +01:00
Zion Nimchuk
baa422e65b Revert "moved build options to options.cmake"
This reverts commit 5ddb1d6649.
2021-06-05 07:46:09 +03:00
polar
b8b5b93b63
BUILD: Refactor spirv submodule (#10384)
* relocated SPIRV files

* updated gitmodule paths for Vulkan submodules

* cleaned up Vulkan child builds

* updated gitignore
2021-06-01 09:53:58 +02:00
Megamouse
5b4631dcf9 Set min gcc version to 11 2021-05-26 21:43:42 +02:00
polar
11bace8804
BUILD: Move buildfiles & improved prop includes (#10251)
* moved buildfiles to subdirectory

* fix msvc build

* fix cmake build
2021-05-15 20:20:12 +02:00
polar
df39bac449
BUILD: Refactor asmjit submodule (#10230)
* relocated asmjit files

* fix cmake build

* fix MSVC build
2021-05-02 19:59:38 +02:00
xddxd
64a109d28a Toolchain upgrades
CI/FreeBSD: unbreak build with bundled libc++ 12

Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
2021-04-28 23:50:39 +03:00
p01arst0rm
01703b1350 moved cmake_modules to project root 2021-04-20 21:38:47 +03:00
p01arst0rm
9e008996ab swap STREQUAL for MATCHES 2021-04-20 21:38:47 +03:00
p01arst0rm
bcfae17219 unified missmatched indentation in CMake files 2021-04-20 21:38:47 +03:00
p01arst0rm
b812ef2771 removed space between and its opening parentheses 2021-04-19 08:59:28 +03:00
p01arst0rm
896db3806d replaced CMAKE_COMPILER_IS_GNUCXX with CMAKE_CXX_COMPILER_ID 2021-04-17 15:54:27 +03:00
p01arst0rm
5ddb1d6649 moved build options to options.cmake 2021-04-06 15:23:56 +03:00
Nekotekina
e07484f057 Rewrite fmt::throw_exception destructor
Add _DEBUG in debug mode for consistency with MSVC.
2021-01-18 13:49:16 +03:00
RipleyTom
4399324955
Disables precompiled headers by default (#9499) 2020-12-25 20:41:49 +00:00
Jan Beich
5cb70ddbd5 CMake: bump minimum Clang to 11 2020-12-22 09:00:34 +03:00
RipleyTom
7b694ebeb4 Set default to utf-8 for MSVC 2020-12-06 15:30:12 +03:00
scribam
20f53e65eb cmake: Add support for target_precompiled_headers if available 2020-04-14 23:00:51 +03:00
JohnHolmesII
00b74fb951 Update BUILDING.md and CMakeLists.txt
Several parts of the guide had fallen out of sync, notably the Ubuntu section. I've tried to clean it up a bit.
In addition, I matched some of the version numbers to what is found in the CI system here: https://github.com/hcorion/rpcs3-docker/blob/master/xenial/Dockerfile
2020-02-27 21:31:43 +03:00
JohnHolmesII
7b54d386f2 Set required Clang to 9
- 10 is not yet required and is not very available
2020-02-23 09:38:04 +03:00
Nekotekina
9569ae24e0 Bump minimal compiler versions: gcc-9 and clang-10. 2020-02-10 14:47:12 +03:00
Nekotekina
491526b421 Add option USE_COTIRE=ON (by default)
Precompiled headers cause rebuild problems with ninja, for example.
2020-02-10 14:47:12 +03:00
Nekotekina
1bc9fd2863 Set cmake min version and CXX_STANDARD to 20 2020-02-10 14:08:51 +03:00
MSuih
17df6c8878 Enable C++20 for MSVC in CMakeLists.txt 2020-02-06 22:15:58 +00:00
Oschowa
06433d614a Implement FAudio backend (#6374) 2019-10-24 22:26:29 +03:00
Alex James
9bcd7b534b CMake: Generate compilation database 2019-10-13 00:02:33 +03:00
Nekotekina
a29d4150df GDB Server: fix and cleanup
Move source files to Emu/GDB.cpp, GDB.h
Remove "WITH_GDB" option, enable GDB Server by default.
Change class name to gdb_thread.
Alias for external access gdb_server.
Change config option name to "GDB Server"
Bind on 127.0.0.1 by default.
2019-10-09 00:11:44 +03:00
arabek
b6cfa5c9b9 Fix build with cotire and clang-8.0 branch
Without this patch, build fails when using
cotire, because pch headers are missing
the pthread flag when using Clang
2019-07-08 03:38:18 +01:00
msuih
3d8389457e Disable more 3rdparty warnings 2019-07-01 04:20:00 +03:00
JohnHolmesII
27fca2ed33 CMake refactor 2019-06-25 20:36:32 -07:00
Zion Nimchuk
b5cbe02f4d Add CMake switch for disabling Discord Rich Presence and fix no llvm build 2018-12-20 11:29:35 +01:00
vit9696
634a5fa31c Fix macOS compilation 2018-11-19 14:39:33 +03:00
Jan Beich
0da556e1f8 build/cmake: properly disable assert() globally for release builds
Assertion failed: (ObjectBufferMap.find(Key) == ObjectBufferMap.end() && "Second attempt to perform debug registration."), function NotifyObjectEmitted, file llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp, line 168.
2018-09-22 10:35:45 +03:00
Lassi Hämäläinen
7aef811ff7 CMake: Refactor CMake build (#5032)
* CMake: Refactor build to multiple libraries

- Refactor CMake build system by creating separate libraries for
  different components
- Create interface libraries for most dependencies and add 3rdparty::*
  ALIAS targets for ease of use and use them to try specifying correct
  dependencies for each target
- Prefer 3rdparty:: ALIAS when linking dependencies
- Exclude xxHash subdirectory from ALL build target
- Add USE_SYSTEM_ZLIB option to select between using included ZLib and
  the ZLib in CMake search path

* Add cstring include to Log.cpp

* CMake: Add 3rdparty::glew interface target

* Add Visual Studio CMakeSettings.json to gitignore

* CMake: Move building and finding LLVM to 3rdparty/llvm.cmake script

- LLVM is now built under 3rdparty/ directory in the binary directory

* CMake: Move finding Qt5 to 3rdparty/qt5.cmake script

- Script has to be included in rpcs3/CMakeLists.txt because it defines
  Qt5::moc target which isn't available in that folder if it is
  included in 3rdparty directory
- Set AUTOMOC and AUTOUIC properties for targets requiring them (rpcs3
  and rpcs3_ui) instead of setting CMAKE_AUTOMOC and CMAKE_AUTOUIC so
  those properties are not defined for all targets under rpcs3 dir

* CMake: Remove redundant code from rpcs3/CMakeLists.txt

* CMake: Add BUILD_LLVM_SUBMODULE option instead of hardcoded check

- Add BUILD_LLVM_SUBMODULE option (defaults to ON) to allow controlling
  usage of the LLVM submodule.
- Move option definitions to root CMakeLists

* CMake: Remove separate Emu subtargets

- Based on discussion in pull request #5032, I decided to combine
  subtargets under Emu folder back to a single rpcs3_emu target

* CMake: Remove utilities, loader and crypto targets: merge them to Emu

- Removed separate targets and merged them into rpcs3_emu target as
  recommended in pull request (#5032) conversations. Separating targets
  probably later in a separate pull request

* Fix relative includes in pad_thread.cpp

* Fix Travis-CI cloning all submodules needlessly
2018-09-18 13:07:33 +03:00
Ani
4357892081 Bump CMake Requirement to 3.8.2+
With older builds CMake will error out with `CXX_STANDARD is set to invalid value '17'`

CXX_STANDARD 17 was added on CMake 3.8.X as found in the 3.8.2 documentation: https://cmake.org/cmake/help/v3.8/prop_tgt/CXX_STANDARD.html

Also removes leftover from old VS2015/2017 mixed instructions, removes "Not GCC 6.1" since we require 7.3+ now and bumps Xcode to 10. Proper MacOS instructions will be added afterwards by someone else.
2018-08-29 22:01:57 +01:00