TellowKrinkle
38b8547055
CMake: Enable CMP0099
...
Allows INTERFACE_LINK_OPTIONS to propagate through private dependencies, required by MacOS framework builds of SDL2
2023-03-30 21:16:27 -05:00
Shawn Hoffman
5bf9ad7d82
msvc: enable compiler checks added in vs 17.5
2023-03-04 14:18:18 -08:00
Scott Mansell
a306da2f80
Bump requried Clang to 12 (AppleClang 13.0.0)
2023-02-23 15:27:57 +13:00
Scott Mansell
f34a09b39f
Enforce minimum supported versions of GCC and Clang
...
We already have a minimum required version of MSVC
2023-02-23 15:18:38 +13:00
JosJuice
90b676d368
Android: Fix armeabi-v7a build
...
This very much isn't a build configuration that we're going to ship,
but I want to be able to tell people that they can build it on their
own if they really want to see how terribly it performs :)
Just like before, you'll need to edit two lines in app/build.gradle to
define ENABLE_GENERIC=ON and actually enable armeabi-v7a if you want an
armeabi-v7a build. This commit just fixes some compilations errors that
crop up if you do so.
2023-02-17 16:58:24 +01:00
Jordi Mallach
4d164fcb77
Allow building against system libspng
2023-02-06 13:30:46 +01:00
Admiral H. Curtiss
69b178e95f
Merge pull request #11157 from h3xx/use-gnuinstalldirs
...
Use GNUInstallDirs for installation paths
2023-02-01 19:35:46 +01:00
Scott Mansell
6bb2e4d706
CMake/MSVC: Fix warnings about conflicting /Zi and /Z7
2023-01-31 23:21:07 +13:00
Dan Church
81388eedaa
Use GNUInstallDirs for installation paths
2023-01-30 09:44:44 -06:00
Admiral H. Curtiss
1eb69ea0a0
Merge pull request #10936 from TellowKrinkle/FixIncludeDirs
...
CMake: Actually use the include directories specified by dependencies
2023-01-30 09:19:06 +01:00
Mai
5525f011be
Merge pull request #11436 from shuffle2/msvc-Zc
...
msvc: update c++ conformance flags
2023-01-24 16:46:14 +00:00
Pierre Bourdon
4fc6488844
Merge pull request #11362 from alucryd/feat/system-libmgba
...
try for system libmgba first
2023-01-17 23:35:02 +01:00
SuperSamus
2929742d82
CMake: search for shared minizip-ng
as minizip
...
The pkgconfig file for `minizip-ng` is `minizip.pc.cmakein`.
2023-01-14 12:39:12 +01:00
Shawn Hoffman
f2aed92fd1
cmake: update msvc conformance flags
2023-01-13 01:55:42 -08:00
JMC47
e06c1158e9
Merge pull request #11361 from shuffle2/osx
...
update min macos version to 10.15
2023-01-08 20:08:59 -05:00
Sam Belliveau
5ca438dd97
Add Dear ImPlot Library
2022-12-22 14:32:42 -05:00
Shawn Hoffman
c74f65426a
update min macos version to 10.15
2022-12-22 11:15:12 -08:00
Maxime Gauduin
afde3a0e0d
try for system libmgba first
2022-12-22 19:18:07 +01:00
smurf3tte
7842f9a715
Debugger: Initial implementation of conditional breakpoints
...
Expression class to store compiled expressions and associated variable list.
Co-authored-by: TryTwo <taolas@gmail.com>
2022-10-06 21:34:44 -07:00
Zopolis4
45afab7d5d
In CMake, check for and remove in-tree scmrev.h generated by Visual Studio
2022-09-19 08:53:24 +10:00
TellowKrinkle
1bc133f3ae
CMake: Properly include lzma include directories
2022-08-18 21:06:57 -05:00
TellowKrinkle
048f6fac52
CMake: Properly include zstd include directories
2022-08-18 21:06:57 -05:00
TellowKrinkle
b5da4e9d48
CMake: Don't omit frame pointer on RelWithDebInfo builds
2022-08-10 23:48:56 -05:00
Scott Mansell
12a5f73418
Workaround Freebsd/clang/fmt bug
2022-08-10 18:46:10 +12:00
Shawn Hoffman
acb10f0006
replace libpng with libspng
2022-07-25 18:32:16 -07:00
Shawn Hoffman
c3b64012d1
replace zlib with zlib-ng
...
since the benefits are so high, don't link with shared zlib
2022-07-24 14:33:37 -07:00
Admiral H. Curtiss
869dab5173
CMake: Use system C library for SDL from externals.
2022-07-14 18:40:18 +02:00
Admiral H. Curtiss
e2e7bc2fa3
CMake: Disable warnings and only build static lib for SDL from externals.
2022-07-13 01:50:11 +02:00
Admiral H. Curtiss
fdc327c252
Externals/FatFs: Build as part of Dolphin.
...
Co-authored-by: Pablo Stebler <pablo@stebler.xyz>
2022-07-11 23:11:37 +02:00
Jun Bo Bi
ceed42a0ee
Add SDL as a submodule
2022-07-10 15:38:59 -07:00
iwubcode
1c90d836a5
Externals: add spirv-cross using upstream commit 50b4d5389b6a06f86fb63a2848e1a7da6d9755ca
...
Co-authored-by: tellowkrinkle <tellowkrinkle@gmail.com>
2022-06-24 17:52:31 -05:00
JMC47
8a8e9c5ef6
Merge pull request #10742 from tellowkrinkle/Xcode
...
Improve incremental build time for Xcode projects
2022-06-14 16:14:54 -04:00
TellowKrinkle
7cf5547b97
CMake: Make bundled MoltenVK optional
...
Adds ~20s to incremental build time in Xcode projects
2022-06-11 16:34:33 -05:00
Pierre Bourdon
f1b7d9365c
cmake: steam runtime builds should be opt-in, not opt-out
2022-06-08 16:44:14 +02:00
JMC47
daf8e3ddde
Merge pull request #10462 from OatmealDome/steam-runtime
...
DolphinQt: Add support for a Steam Runtime build
2022-06-06 20:18:06 -04:00
Tillmann Karras
79a7bf02eb
CMake: rename minizip to minizip-ng
...
minizip-ng is the new name used by the upstream project as well as all
distros other than Fedora (but it looks like it will be renamed there).
2022-06-06 14:21:43 +02:00
OatmealDome
77d0170285
CMakeLists: Remove comment pertaining to macOS versions prior to 10.14
2022-06-01 22:49:45 -04:00
OatmealDome
2648837d8c
CMakeLists: Add flag to disable usage of shared libpng
2022-05-29 13:50:32 -04:00
OatmealDome
52d7a6f56a
CMakeLists: Enable LINUX_LOCAL_DEV on Steam builds for Linux
...
The Sys folder should be included along with the executable.
2022-05-29 13:50:32 -04:00
OatmealDome
abb7b35011
CMakeLists: Add option to produce a Steam build
2022-05-29 13:50:32 -04:00
Admiral H. Curtiss
6ea7af13e8
cmake: Disable warnings for most externals on MSVC, like we do in the VS project files.
2022-05-22 00:30:56 +02:00
Admiral H. Curtiss
a5e85627b0
cmake: Use Policy CMP0117 for more sensible RTTI flag configuration on MSVC.
2022-05-22 00:30:56 +02:00
Admiral H. Curtiss
7f2ea688d2
cmake: On MSVC, set c++latest by requesting a C++23 feature set.
2022-05-22 00:30:51 +02:00
Admiral H. Curtiss
9908219dc6
cmake: Add a few missing settings from the Visual Studio project files on MSVC.
2022-05-22 00:29:48 +02:00
Admiral H. Curtiss
89fadd26a6
cmake: Use C++latest everywhere on MSVC.
2022-05-22 00:29:48 +02:00
Scott Mansell
4db1816368
cmake: Require cmake 3.15 for MSVC
...
We need these policies, but we kind of want to avoid requiring cmake
3.15 for all platforms
2022-05-22 00:29:47 +02:00
Scott Mansell
89fda54820
cmake: fix ninja/msvc builds
...
If you don't set this policy, then cmake doesn't even try
to select a runtime library
2022-05-22 00:29:47 +02:00
Scott Mansell
54d89b955a
cmake: add missing FFmpeg dependency on windows
2022-05-22 00:29:46 +02:00
xxkfqz
e4552c17c8
Change required libfmt version from 8.0 to 8.x
2022-04-23 13:55:22 +05:00
Shawn Hoffman
e6ed77b5f6
msvc: enable conformant __cplusplus macro
2022-04-02 02:46:22 -07:00
Shawn Hoffman
09432ef098
windows: move ffmpeg bins to submodule
...
udpate ffmpeg to b1cbeabf5e4b3234e895a58bafa371bfb792baf0
enable ffmpeg on arm64
2022-03-29 17:27:46 -07:00
OatmealDome
e23df9369d
CMakeLists: Add option to disable automatic update support
2022-03-18 03:04:51 -04:00
JosJuice
7b8e846d0a
Merge pull request #10367 from Pokechu22/fmt-8.1.1
...
Update to fmt 8.1.1
2022-01-20 21:14:41 +01:00
Pokechu22
ad9e8d97a9
CMakeLists: Replace tab characters with spaces
...
This commit only touches CMakeLists in Source and the main one; it doesn't touch them in Externals.
2022-01-16 15:20:40 -08:00
Pokechu22
cb662509f2
CMake: Bump fmt version requirement to 8.0
...
We will be using fmt::runtime, which was added in fmt 8.0.0.
2022-01-13 11:11:01 -08:00
ssdsnake
1aa8a4d46f
DolphinTool: CLI utility interface and disc image tools
2021-12-03 15:40:19 -06:00
OatmealDome
2209dc0355
MoltenVK: Use an external project instead of a pre-compiled dylib
...
Also, update MoltenVK to match Vulkan SDK 1.2.189.
2021-11-13 11:43:23 -08:00
Scott Mansell
b997048cfe
Merge pull request #10142 from aldelaro5/gdb-stub-rework
...
Rework the entire logic of the GDB stub
2021-10-24 01:51:29 +13:00
aldelaro5
94a0f416eb
GDBStub: remove the cmake option and the ifdefs
2021-10-21 08:26:42 -04:00
ooshlablu
fa6821aeb0
Enable deb package generation with cpack
2021-10-16 09:15:22 -04:00
nonoteal
90437d1574
Change how FFmpeg is imported for Apple computers.
...
Imports Apple libraries and also pulls swresample in, so when compiling Dolphin doesn't throw undefined symbols.
2021-10-06 18:11:32 -10:00
OatmealDome
e5a80995dc
Bump minimum macOS to 10.13 High Sierra
2021-08-17 16:27:22 -04:00
Bonta
44aaf108d1
Externals: Integrate mGBA as a submodule
2021-07-13 16:39:29 +02:00
Skyler Saleh
12c439860d
Apple M1: Only add x86 compile flags to x86 builds
...
- Removed -mssse3 flag from arm64 builds
- Removed -march=core2 from arm64 builds
2021-05-22 15:25:18 -07:00
Skyler Saleh
948764d37b
Apple M1: Build, Analytics, and Memory Management
...
Analytics:
- Incorporated fix to allow the full set of analytics that was recommended by
spotlightishere
BuildMacOSUniversalBinary:
- The x86_64 slice for a universal binary is now built for 10.12
- The universal binary build script now can be configured though command line
options instead of modifying the script itself.
- os.system calls were replaced with equivalent subprocess calls
- Formatting was reworked to be more PEP 8 compliant
- The script was refactored to make it more modular
- The com.apple.security.cs.disable-library-validation entitlement was removed
Memory Management:
- Changed the JITPageWrite*Execute*() functions to incorporate support for
nesting
Other:
- Fixed several small lint errors
- Fixed doc and formatting mistakes
- Several small refactors to make things clearer
2021-05-22 15:25:17 -07:00
Skyler Saleh
4ecb3084b7
Apple M1 Support for MacOS
...
This commit adds support for compiling Dolphin for ARM on MacOS so that it can
run natively on the M1 processors without running through Rosseta2 emulation
providing a 30-50% performance speedup and less hitches from Rosseta2.
It consists of several key changes:
- Adding support for W^X allocation(MAP_JIT) for the ARM JIT
- Adding the machine context and config info to identify the M1 processor
- Additions to the build system and docs to support building universal binaries
- Adding code signing entitlements to access the MAP_JIT functionality
- Updating the MoltenVK libvulkan.dylib to a newer version with M1 support
2021-05-22 15:25:17 -07:00
Léo Lam
ae9ac510e2
CMake: Do not enable LTO by default for MSVC
...
LTO is supposed to be enabled by default for VS Release builds
according to the VS prop files but a build log from JMC reveals
that /GL and /LTCG are not actually passed to cl.exe/link.exe
for some reason...
LTO also leads to *extremely* and unacceptably slow build times
when using link.exe, so let's disable it by default to actually
match the project files.
2021-04-27 12:54:18 +02:00
Léo Lam
20d00dfc79
CMake: Add missing MSVC optimization flags to match VS project props
2021-04-27 12:54:18 +02:00
Léo Lam
c69747c7fb
CMake: Fix CMAKE_RUNTIME_OUTPUT_DIRECTORY being ignored in UnitTests
...
CMAKE_RUNTIME_OUTPUT_DIRECTORY_<mode> overrode CMAKE_RUNTIME_OUTPUT_DIRECTORY.
It's just unnecessary and it broke UnitTests's custom output directory
2021-04-27 12:54:18 +02:00
Léo Lam
dcf3ca0f89
CMake: Force gtest to link CRT dynamically to avoid runtime mismatches
...
Required to fix unit test builds for Windows+MSVC+CMake.
For more information, see:
23ef29555e/googletest/README.md (visual-studio-dynamic-vs-static-runtimes)
2021-04-27 12:54:18 +02:00
Léo Lam
18174d3ed6
Merge pull request #9649 from leoetlino/cmake-auto-update-track
...
Make it possible to enable auto-updates by default with CMake builds
2021-04-24 19:44:51 +02:00
JosJuice
91669c25fe
Merge pull request #9650 from leoetlino/consistent-build-binary-dirs
...
Put x86_64 Windows binaries in Binary/x64 for consistency with ARM64
2021-04-24 19:22:05 +02:00
Florent Castelli
6910fab63f
cmake: Replace /Zi with /Z7 for sccache support
...
Also allows better parallelization since there's no contention on a PDB
file with compiling.
2021-04-24 17:59:34 +02:00
Léo Lam
a7a69ecd2e
Put x86_64 Windows binaries in Binary/x64 for consistency with ARM64
...
...and with our existing Visual Studio project files and
buildbot config.
2021-04-17 21:33:07 +02:00
Léo Lam
5f355690e0
Make it possible to enable auto-updates by default with CMake builds
...
This adds a CMake option (DOLPHIN_DEFAULT_UPDATE_TRACK) to allow
configuring SCM_UPDATE_TRACK_STR. This is needed to enable auto-updates
in Windows CMake builds by default.
2021-04-17 19:45:43 +02:00
Skyler Saleh
b2d5eea20c
Build: Fix -fno-strict-aliasing on Xcode builds
...
Xcode is configured by default to turn on the strict aliasing optimization
through a separate project setting. This would cause the compiler to be called
with both -fno-strict-aliasing and -fstrict-aliasing. This change turns off
that project setting causing only the -fno-strict-aliasing flag to be provided
to the compiler.
2021-04-10 21:28:10 -07:00
Skyler Saleh
b0d91a5399
Build: Check for zstd headers
...
Modify the CMakeLists.txt so that it doesn't try to use a shared zstd library
that doesn't have header files. This was a support issue on Macs because
homebrew was installing headerless zstd libraries with Qt.
2021-04-02 12:05:12 -07:00
Dentomologist
7eaa98d461
CMake: Fix unused compiler flag warning
...
Add a check to define FMT_EXCEPTIONS = 0 when compiling on MacOS.
Replaces -fno-objc-exceptions, which also disabled fmt exceptions but
generated warnings when compiling c++ files.
2021-03-16 13:11:36 -07:00
JosJuice
2cb3f663bc
CMake: Include WIL headers
...
MSBuild does this, so CMake should too. Fixes a Windows build error.
2021-03-04 10:26:31 +01:00
Norbert Lange
d4b293e969
Simplify macro guards for HAVE_XRANDR
2021-02-22 14:32:53 +01:00
Léo Lam
eafb9de047
Merge pull request #9323 from waddlesplash/haiku
...
Rehabilitate Haiku support.
2021-01-05 16:09:43 +01:00
waddlesplash
2df11d3911
Rehabilitate Haiku support.
2021-01-02 16:54:24 -05:00
Léo Lam
0aadb9fd7b
Build the gdbstub by default
...
While the gdbstub is somewhat broken at the moment, building it by
default should keep us from breaking the build (which has happened
several times in the past: #2614 , #5904 , #8262 ).
It isn't very intrusive and it does nothing unless it is enabled
in the config file.
2020-12-25 01:21:36 +01:00
C.W. Betts
1100a31407
CMake: Apple Silicon detection
...
CMake's CMAKE_SYSTEM_PROCESSOR call returns "arm64" on Apple Silicon. This patch makes sure that arm64 and aarch64 are treated as the same architecture.
2020-12-24 14:34:04 -07:00
Ryan Burns
aefbf9c445
Exclude Discord RPC lib from installation
...
This vendored library does not need to be installed,
as it is statically linked in.
2020-12-02 19:23:28 -08:00
Léo Lam
5d9eb8f6ce
Merge pull request #9271 from leoetlino/warnings
...
Fix several warnings and only enable extra warnings for our own code
2020-11-22 02:04:53 +01:00
Léo Lam
f53a7a2b66
CMake: Pass various /Zc flags to MSVC for consistency with Base.props
...
969ea6e4f5
Fixes non-conformant handling of __VA_ARGS__.
2020-11-21 14:43:26 +01:00
Léo Lam
ade9f92a63
Enable extra warnings in Source CMakeLists, not in root CMakeLists
...
Having extra warnings enabled for everything including external
libraries produces an overwhelming amount of warnings in code that
isn't even part of our codebase.
Move the various warning flags to Source/CMakeLists.txt to get rid
of those useless warnings.
Note that the Source CMakeLists.txt is already where the MSVC warnings
are defined, so this commit improves consistency as well.
2020-11-21 00:59:17 +01:00
JosJuice
56e68e7b72
CMake: Bump fmt version requirement to 7.1.0
...
We use make_args_checked, which was added in 7.1.0.
2020-11-16 13:06:20 +01:00
Lioncash
369a9e01dc
Externals: Update fmt to 7.1.0
...
Updates fmt to the latest release from 6.1.2
2020-10-27 11:36:47 -04:00
Léo Lam
23c9179fb6
Merge pull request #9071 from orbea/cmake
...
cmake: Silence warnings.
2020-10-26 18:48:42 +01:00
iwubcode
02c3242078
CMake: Change "USE_VULKAN" to "HAS_VULKAN"
2020-10-24 13:48:51 -05:00
iwubcode
22b0d10568
CMake: Set HAS_OPENGL for every system other than arm64
2020-10-24 13:48:51 -05:00
mazes-80
f375ee72a2
CMake: Add option to enable/disable Vulkan video backend
2020-10-23 20:14:46 +02:00
James Sharpe
135cd390e7
Require zstd >= 1.4.0
...
<leoetlino: Dolphin fails to build with zstd 1.3.8.>
2020-10-21 21:52:59 +02:00
JosJuice
cb14b65aad
CMake: Fix build errors exposed by making common dependent on fmt
2020-10-19 14:36:09 +02:00
orbea
2bfbc4d79f
cmake: Silence warnings.
2020-09-08 21:18:40 -07:00
Admiral H. Curtiss
fdab9783c7
Externals: Add rangeset.
2020-08-24 19:31:32 +02:00
JosJuice
c9edfa0eaa
Replace Windows CMake lambda constexpr capture workaround
...
While manually capturing constexpr variables used in lambda
expressions does work, it's really easy to forget doing so since
we don't have a Windows CMake builder and the workaround isn't
necessary anywhere else. Fortunately, MSVC has a flag that fixes
the constexpr capture behavior, so let's use that instead.
2020-06-25 13:11:29 +02:00
Tillmann Karras
24eee74937
CMake: support using system-wide zstd library
...
CMake does not have native support for zstd yet.
2020-06-16 19:42:55 +01:00