Commit Graph

631 Commits

Author SHA1 Message Date
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
9fd03cda9d Externals: Add libLZMA. 2020-04-24 15:18:09 +02:00
4385afdb0a Externals: Add bzip2. 2020-04-24 15:18:09 +02:00
5db7add9c7 Merge pull request #8667 from Mystro256/master
Allow for some shared minizip/fmt
2020-03-15 16:25:11 +01:00
209db1f96c Build system: default to fmt shared library when available 2020-03-15 14:30:44 +01:00
9f12e0f5a9 Allow using shared minizip 2020-03-11 10:55:05 -04:00
213a9adcff CMake: Fix building ARM64 on Windows 2020-02-12 12:29:31 +01:00
ae6d3be449 Merge pull request #8530 from s-daveb/master
MacOS: Fixes configuration hang; bump MacOS SDK.
2020-01-13 20:21:08 +10:00
5a65031611 Add a Win32 NoGUI platform and project 2019-12-28 08:56:27 +10:00
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
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
d2c1dbef16 CMake: Enable SDL by default on macOS. 2019-10-14 20:51:08 -05:00
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
d15f5936b3 CMake: Output Windows binaries into Binary 2019-05-15 19:17:03 +02:00
ec734065db Merge pull request #8087 from spycrab/cmake_win2019
Support CMake on Windows
2019-05-14 21:07:26 +02:00
53ef641da4 CMake: Add MSVC support 2019-05-12 00:44:00 +02:00
123bbbca2c Merge pull request #8073 from vladfi1/re-frame-mw
Bring back MemoryWatcher, but without CoreTiming
2019-05-10 14:55:27 +02:00
f4d950f4e2 Revert "Core: Remove MemoryWatcher"
This reverts commit 0c02e77eee.
2019-05-05 21:43:45 +01:00
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
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
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
eabde77892 CMake: Add an ENABLE_NOGUI option 2019-02-15 18:40:46 +10:00
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
6a6fc56865 Externals/ed25519: Add CMakeLists.txt 2019-02-06 20:50:09 +01:00
4badc961d0 Qt: Bump minimum macOS version required 2019-01-25 13:18:07 +01:00
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
cfdbd45105 Externals: Add imgui 2018-11-26 20:40:34 +10:00
e6b2758ab4 Merge pull request #7477 from Zexaron/ext-minizip
Externals: Add a stripped down version of minizip
2018-11-17 22:23:02 +01:00
c95802afeb CMake: Make X11 and EGL optional 2018-10-20 21:11:34 +10:00
0559311f92 GLContext: Runtime selection of EGL/GLX on Linux 2018-10-20 21:11:34 +10:00
74b82bab3b GLInterface: Drop Haiku support 2018-10-20 21:11:33 +10:00
8e26d33133 Externals: Add a stripped down version of minizip. 2018-10-09 14:27:53 +02:00
80c402e1ad Merge pull request #7161 from lioncash/disasm
CMake: Only link in Bochs on x86 platforms
2018-09-16 15:16:00 +02:00
227807df36 cmake: Support system cubeb builds. 2018-08-08 07:36:19 -07:00
7f8cdbb2a4 CMake: Only link in Bochs on x86 platforms
Bochs' disassembler is only for disassembling x86 code. On non-x86
platforms it doesn't really make sense to build and link this in.
2018-07-12 16:44:17 -04:00
196bf8dbe2 Merge pull request #7223 from lioncash/cmake
CMakeLists: Minor changes
2018-07-12 14:51:19 +02:00
13ba24c5a6 Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
0a4c0a9b4b CMakeLists: Replace tab indentation with spaces
We use spaces everywhere else in the CMake scripts, so this just makes
indentation consistent.
2018-07-06 13:24:22 -04:00
a7cf1548b0 CMakeLists: Remove trailing space
While we're in the same area, amend the newlining of the if block
2018-07-06 13:23:39 -04:00
23bc463ec9 CMakeLists: Uppercase "string" in deployment target setting for macOS
The documentation for setting cache entries dicates that the type must
either be BOOL, FILEPATH, PATH, STRING, or INTERNAL (with those exact
casings). Also, given we properly case it in other places, this is just
consistent.
2018-07-06 13:20:42 -04:00
904057e611 CMakeLists: Use lowercase for commands
The general convention for CMake is to use lowercase for commands, and
given we also follow that convention through most CMake files, this just
makes it more consistent.
2018-07-06 13:13:23 -04:00
0149d22385 Removed some more double-expansions of CMAKE_SYSTEM_NAME. 2018-07-02 13:01:16 -04:00
72458c1cff CMake: Use thin archives on Linux.
Thin archives contain pathnames pointing to the object files instead of
full copies of the object files. This significantly reduces the disk
usage when building Dolphin.

Size of *.a files: (gcc-8.1.0, Linux amd64)
- Before: 83,876 KB
- After:   1,876 KB
- Diff:  -82,000 KB

The resulting binaries are the same as before.

A similar change was implemented in the Linux kernel v4.8:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a5967db9af51a84f5e181600954714a9e4c69f1f
2018-07-02 12:59:09 -04:00
44b22c90df Remove DolphinWX 2018-06-26 20:50:39 +02:00
2cfdf89898 Merge pull request #6983 from yourWaifu/add-discord-rpc-support
Add Discord Rich Presence support
2018-06-25 00:06:27 +02:00
63f03455f3 Discord Rich Presence CMake integration
I have no idea if this works or not. Hopefully the build bot will tell me.
2018-06-19 22:43:03 -04:00
9bf5ad1f0e Merge pull request #7021 from akien-mga/cmake-pugixml
CMake: Fix case in FindPugixml resulting in false negative
2018-05-30 09:02:44 +01:00
d37ccc844e CMake: Fix case in FindPugixml resulting in false negative
As mentioned in GH-6652.
2018-05-30 09:12:24 +02:00
c36695175f CMake: Increase minimum GCC version to 6.0
Dolphin uses nested namespaces from the C++17 standard,
which are only supported in GCC 6.0 and later.

See comments in GH-6866 for details.
2018-05-30 09:02:14 +02:00
94a4c05640 CMakeLists: Remove "Enabling GUI" from the "Wx enabled" message 2018-05-20 17:12:27 +02:00