Commit Graph

605 Commits

Author SHA1 Message Date
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
tokumeiwokiboushimasu 6fb6d16f0a
Specify the system minizip's include directory
Without this, build fails on Fedora32.
2020-06-11 17:15:41 +09:00
JosJuice 2137fb7813 Externals: Add zstd
I had to rename Source/Common/Compiler.h because the VS build
confuses it with Externals/zstd/lib/common/compiler.h otherwise.
2020-05-13 20:53:10 +02:00
Pierre Bourdon 143131a6a1
cmake: add an option to control dependencies vendoring
Disable by default, to be used by distributions who care to try and
prefer system-wide libraries when available. It makes sense for us to
keep using vendored libs by default when possible to make it easier for
users to compile, but we should provide appropriate tools for distro to
figure out which dependencies they can share with the rest of the
system.
2020-05-10 09:34:14 +02:00
degasus 9fd1385733 Externals: Fix OpenAL include directory. 2020-04-29 13:07:51 +02:00
degasus 990acbb17d Externals: Fix ed25519 include path. 2020-04-29 12:55:42 +02:00
degasus ae2d567f59 Externals: Fix include path for picojson and discord 2020-04-29 11:45:59 +02:00
degasus 239cde8aea Externals: Alter the soundtouch include directory.
We must not provide the /Externals directory as global include directory.
Here, this yield a crash because of external minizip header and system library mismatch.

Soundtouch itself recormends to include it with <SoundTouch.h> and -I/usr/include/soundtouch, so this should fit better.
2020-04-29 11:30:26 +02:00
Techjar d5f356f937 Require minizip 2.0.0 or newer
Minizip 1.x is the old broken version, while 2.x is the newer fork we
use. Many distros ship the old version which is causing stack smashing
in RedumpVerifier, so we'll only use the shared lib if it's the newer
version.
2020-04-28 20:42:02 -04:00
degasus 9fd03cda9d Externals: Add libLZMA. 2020-04-24 15:18:09 +02:00
degasus 4385afdb0a Externals: Add bzip2. 2020-04-24 15:18:09 +02:00
Léo Lam 5db7add9c7
Merge pull request #8667 from Mystro256/master
Allow for some shared minizip/fmt
2020-03-15 16:25:11 +01:00
mazes-80 209db1f96c Build system: default to fmt shared library when available 2020-03-15 14:30:44 +01:00
Mystro256 9f12e0f5a9 Allow using shared minizip 2020-03-11 10:55:05 -04:00
spycrab 213a9adcff CMake: Fix building ARM64 on Windows 2020-02-12 12:29:31 +01:00
Connor McLaughlin ae6d3be449
Merge pull request #8530 from s-daveb/master
MacOS: Fixes configuration hang; bump MacOS SDK.
2020-01-13 20:21:08 +10:00
Stenzek 5a65031611 Add a Win32 NoGUI platform and project 2019-12-28 08:56:27 +10:00
S David 21f42fafb7 MacOS: Fixes configuration hang; bump MacOS SDK.
Removed conditional use of std::mutex instead of std::shared_mutex on MacOS.

Because MacOS < 10.12 did not support std::shared_mutex, a previous commit
naïvely substituted std::mutex, which does not have the same behavior.

Reverses PR #8273, which substitues std::mutex for std::shared_mutex on
macOS, and results in several bugs that seem to only affect MacOS

- https://bugs.dolphin-emu.org/issues/11919
- https://bugs.dolphin-emu.org/issues/11842
- https://bugs.dolphin-emu.org/issues/11845

This change eliminates conditional code for MacOS in the core configuration
layer code and enables the use of modern language features that are more
secure and thread-safe.
2019-12-22 00:49:17 -05:00
Adrien Guinet 7f74707ad6 cmake: set OpenGL_GL_PREFERENCE as a cached variable that can be modified via the command line
This allows the user to set this to LEGACY. This can be useful for
people under Linux using optirun/primusrun with "old" nvidia drivers
that don't support GLVND properly.
2019-11-03 13:16:42 +01:00
Jordan Woyak d2c1dbef16 CMake: Enable SDL by default on macOS. 2019-10-14 20:51:08 -05:00
Lioncash d5d60c6e64
Externals: Add libfmt 5.3.0 to externals
Allows us to migrate off of printf specifiers and have more type-safe
formatting facilities. It also allows for custom type support as well.
fmt is also on track to have part of it standardized within C++2a, so
this will also lessen the transitional work necessary later on by
allowing new code to use it.

This simply adds the library but doesn't do anything with it yet.
2019-06-10 15:26:43 -04:00
spycrab d15f5936b3 CMake: Output Windows binaries into Binary 2019-05-15 19:17:03 +02:00
spycrab ec734065db
Merge pull request #8087 from spycrab/cmake_win2019
Support CMake on Windows
2019-05-14 21:07:26 +02:00
spycrab 53ef641da4 CMake: Add MSVC support 2019-05-12 00:44:00 +02:00
Léo Lam 123bbbca2c
Merge pull request #8073 from vladfi1/re-frame-mw
Bring back MemoryWatcher, but without CoreTiming
2019-05-10 14:55:27 +02:00
Vlad Firoiu f4d950f4e2 Revert "Core: Remove MemoryWatcher"
This reverts commit 0c02e77eee.
2019-05-05 21:43:45 +01:00
Léo Lam 9133e8f1be Require CMake 3.10 and use CMAKE_CXX_STANDARD
Removes the need to add -std= flags manually. CMake 3.10 is available
in Ubuntu 18.04, which is the oldest LTS version we support.
2019-05-05 00:13:13 +02:00
Léo Lam c40ae4508d Bump minimum GCC version to 7.0
GCC 7.0 is the first version with full support for C++17.
Also fixes some bugs like https://stackoverflow.com/questions/32097759
2019-05-04 23:04:18 +02:00
Techjar 0c02e77eee Core: Remove MemoryWatcher
MemoryWatcher only works on Linux and affects emulation determinism due
to scheduling additional events, which causes NetPlay to desync.
Considering that this interface is a rather specialized use case, the
communication with it is kinda crappy *and* it's affecting emulation, I
think it's best to just axe it and come up with a better implementation
of the functionality.
2019-04-28 06:22:27 -04:00
Stenzek eabde77892 CMake: Add an ENABLE_NOGUI option 2019-02-15 18:40:46 +10:00
LAGonauta 7b9375875c Added FreeSurround to Externals
Also cleaned up its source code to support only 5.1 and 7.1 setups.
2019-02-13 22:52:39 -02:00
spycrab 6a6fc56865 Externals/ed25519: Add CMakeLists.txt 2019-02-06 20:50:09 +01:00
spycrab 4badc961d0 Qt: Bump minimum macOS version required 2019-01-25 13:18:07 +01:00
orbea 1327772173 cmake: Conditionally build the unit tests.
This allows to skip building the unit tests and avoids the dependency
on gtest when doing so.
2018-12-08 14:07:06 -08:00