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
Stenzek
cfdbd45105
Externals: Add imgui
2018-11-26 20:40:34 +10:00
Pierre Bourdon
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
Stenzek
c95802afeb
CMake: Make X11 and EGL optional
2018-10-20 21:11:34 +10:00
Stenzek
0559311f92
GLContext: Runtime selection of EGL/GLX on Linux
2018-10-20 21:11:34 +10:00
Stenzek
74b82bab3b
GLInterface: Drop Haiku support
2018-10-20 21:11:33 +10:00
Pierre Bourdon
8e26d33133
Externals: Add a stripped down version of minizip.
2018-10-09 14:27:53 +02:00
Léo Lam
80c402e1ad
Merge pull request #7161 from lioncash/disasm
...
CMake: Only link in Bochs on x86 platforms
2018-09-16 15:16:00 +02:00
orbea
227807df36
cmake: Support system cubeb builds.
2018-08-08 07:36:19 -07:00
Lioncash
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
Markus Wick
196bf8dbe2
Merge pull request #7223 from lioncash/cmake
...
CMakeLists: Minor changes
2018-07-12 14:51:19 +02:00
spycrab
13ba24c5a6
Move DolphinQt2 to DolphinQt
2018-07-07 00:48:38 +02:00
Lioncash
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
Lioncash
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
Lioncash
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
Lioncash
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
David Korth
0149d22385
Removed some more double-expansions of CMAKE_SYSTEM_NAME.
2018-07-02 13:01:16 -04:00
David Korth
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
spycrab
44b22c90df
Remove DolphinWX
2018-06-26 20:50:39 +02:00
Pierre Bourdon
2cfdf89898
Merge pull request #6983 from yourWaifu/add-discord-rpc-support
...
Add Discord Rich Presence support
2018-06-25 00:06:27 +02:00
yourWaifu
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
Tilka
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
Rémi Verschelde
d37ccc844e
CMake: Fix case in FindPugixml resulting in false negative
...
As mentioned in GH-6652.
2018-05-30 09:12:24 +02:00
Rémi Verschelde
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
spycrab
94a4c05640
CMakeLists: Remove "Enabling GUI" from the "Wx enabled" message
2018-05-20 17:12:27 +02:00
Emmanuel Gil Peyrot
c51ae9c62a
Remove SOIL altogether from the project.
2018-05-20 13:44:42 +02:00
degasus
be3ce97560
CMake: Prefer GLVND for OpenGL.
...
We have to decide if we want to link to
libGL.so -- legacy
libOpenGL.so -- GLVND
As we use xxxGetProcAddress, we don't care about feature
levels of the linked library, so we're very fine with the
new way.
2018-05-09 09:08:22 +02:00
Tillmann Karras
dd6a505380
CMake: update and simplify VTune integration
2018-04-21 18:14:02 +01:00
spycrab
694df74b0b
Qt/Wx: Turn Qt into the default interface
2018-04-21 17:54:00 +02:00
Léo Lam
f4ec261719
CMake: Use system-wide pugixml if available
...
Makes it possible to use a system-wide pugixml instead of always
using Externals. This is nicer for distro packagers.
2018-04-15 18:57:39 +02:00
Lioncash
b31281527a
CMakeLists: Define an OProfile target and use it
...
Allows us to bring includes and relevant libraries into scope by explicitly declaring linkage against the target
as opposed to using a variable. Also removes the dumping of OProfile includes into the top-level directory.
2018-04-13 19:35:17 -04:00
Léo Lam
b1bbd8a50e
Merge pull request #6625 from lioncash/evdev-udev
...
InputCommon/CMakeLists: Include evdev and udev includes on a by-target basis
2018-04-13 20:50:31 +02:00
Léo Lam
48242f1521
Merge pull request #6638 from lioncash/lzo
...
CMakeLists: Don't dump LZO's includes into the top-level directory
2018-04-13 20:28:44 +02:00
Lioncash
2851c7e5ee
CMakeLists: Don't dump zlib's includes into the top-level directory
2018-04-13 08:32:48 -04:00
Lioncash
7de2d1c9d6
CMakeLists: Don't dump LZO's includes into the top-level directory
...
Instead, we add the includes to the LZO target's interface. That way
only libraries that link it in can see them.
2018-04-13 07:39:09 -04:00
Lioncash
6a637cfc22
CMakeLists: Don't dump libpng's includes into the top-level directory
...
Instead, add the includes to the target, which only libraries that link it in can actually see.
2018-04-11 17:33:52 -04:00
Lioncash
d63d0b5069
InputCommon/CMakeLists: Include evdev and udev includes on a by-target basis
...
Avoids including the evdev/udev includes in the top-level directory
2018-04-10 09:59:51 -04:00
Lioncash
b9c872dbca
CMakeLists: Don't dump bochs' includes into the top-level directory
...
Instead add it to the target interface. This way, only libraries that
link in bochs will see its include directories.
2018-04-08 20:43:18 -04:00
Lioncash
a4ba92c697
CMakeLists: Don't dump xxhash's includes into top-level directory scope
...
We already use a custom CMakeLists file for xxhash, so we can just make it's headers
public as part of its target interface.
This way, only libraries that link in the xxhash target will see its headers, as opposed
to every target under the top-level directory.
2018-04-06 10:41:58 -04:00
Lioncash
b4e36bbd27
CMakeLists: Move build options to the top of the file
...
Makes the configurable aspects of the build more immediately discoverable
as opposed to needing to read down the entire file.
2018-04-05 08:27:49 -04:00
Lioncash
84ed6fd445
CMakeLists: Remove the LIBS variable
...
Now that we link all libraries in explicitly, the top-level LIBS variable can finally go.
2018-04-04 11:46:30 -04:00
Lioncash
8db4ab7dd6
CMakeLists: Remove iconv from the LIBS variable
...
Adjusts Common to use the ICONV_LIBRARIES variable directly and doesn't
append it to the LIBS variable.
After this, there's only one remaining usage where libraries are added
to the LIBS variable, after which it can be removed once the rest of
the targets are migrated off add_dolphin_library
2018-04-01 14:00:55 -04:00
Lioncash
677b9b717f
CMakeLists: Remove enet from the LIBS variable
...
All libraries that use enet already link it in explicitly. This reduces
the usages of the LIBS variable.
2018-04-01 11:18:08 -04:00
Lioncash
eee32c030b
CMakeLists: Remove lzo from the LIBS variable and make linkage private
...
The only place this library is needed (core) is already linked in the core target.
Also make the linkage private to create linkage failures if the dependency isn't
explicitly linked in elsewhere where it should be.
Reduces the dependency on the LIBS variable.
2018-03-31 15:01:05 -04:00
Lioncash
e93159e54a
CMakeLists: Link in system framework libraries explicitly on macOS
...
Makes our libraries explicitly link in which libraries they need.
This makes our dependencies explicit and removes the reliance on the
LIBS variable to contain the libraries that they need.
2018-03-30 16:14:10 -04:00
Lioncash
b8a4ab23dd
InputCommon/CMakeLists: Link in ForceFeedback library explicitly on macOS
...
Makes an implicit dependency explicit. Also makes the macOS libraries link privately
as they aren't used in the exposed interface.
2018-03-29 11:53:50 -04:00
Lioncash
b818cc682c
VideoCommon/Vulkan: Explicitly link in xxhash
...
Lessens the dependency on the LIBS variable (and also makes the required
libraries explicit).
2018-03-28 17:03:16 -04:00
spycrab
4f63d7f204
Qt: Fix low-resolution icon
2018-03-27 17:32:45 +02:00
Pierre Bourdon
f221fac02e
cmake: check for optional libsystemd presence
2018-03-08 06:00:40 +00:00
Greg V
be716a680f
Do not link to libusbhid on FreeBSD/NetBSD
...
Both libusbhid (system library) and libhidapi (3rd party library)
provide a function called hid_init. Dolphin was being linked to both.
The WiimoteScannerHidapi constructor was calling hid_init without
arguments. libusbhid's hid_init expects one argument (a file path).
It was being called as if it was defined without arguments, which
resulted in a garbage path being passed in, and because of that,
the Qt GUI was failing to launch with the following error:
'dolphin-emu-qt2: @ : No such file or directory'
2018-02-05 00:46:59 +03:00
Greg Wicks
c2dcb97d06
Android: Fix NDK r16b2 build
2017-11-07 11:02:27 -05:00
spycrab
28799bbe79
CMake: Build DolphinQt2 by default
2017-09-04 22:28:48 +02:00
spycrab
fc4de1b872
CMake: Move DISABLE_WX to ENABLE_WX
2017-09-02 18:59:27 +02:00
Michael M
fc306faad8
CMake: use miniupnpc target instead of global vars
2017-08-17 13:15:02 -07:00
Michael Maltese
18e70cdf91
Only build OpenAL on Windows
2017-06-27 00:06:14 -07:00
Michael Maltese
0fb742581a
CMake: remove duplicated call to find OpenAL
2017-06-27 00:06:13 -07:00
Léo Lam
b08201654e
Externals: Add zeux/pugixml@38edf25
...
Along with VS boilerplate to get it to build on Windows.
2017-06-13 14:05:10 +02:00
Shawn Hoffman
fffe2c0a2b
cmake: enable same conformance-related flags as msbuild
2017-06-05 23:25:13 -07:00
shuffle2
192fec50b9
Merge pull request #5276 from ligfx/macosheadless
...
Add headless support on macOS
2017-06-05 20:49:02 -07:00
shuffle2
3443454ba2
Merge pull request #5271 from JosJuice/allow-aslr
...
Allow (but don't force) ASLR
2017-06-02 21:53:02 -07:00
Michael Maltese
34ad1eb547
Externals: remove PortAudio
2017-05-27 18:28:57 -07:00
Michael Maltese
812520cc65
Add cubeb@62871b2 to Externals/
...
Includes submodule sanitizers-cmake@f09151b
2017-05-27 18:28:56 -07:00
Michael Maltese
53acd25de4
Rename define HAVE_LIBAV->HAVE_FFMPEG
2017-05-26 00:53:58 -07:00
Michael Maltese
d951d2e4c4
CMake: libav/ffmpeg cleanups
...
Use @Orphis's FindFFmpeg module from ppsspp:
2149d3db7f
From that commit:
> This new module should be able to handle both libraries in the regular
> paths and fallback to pkg-config.
> It is also able to find dynamic libraries, not just static libraries.
> It will generate imported targets with the name FFmpeg::<lib> that you
> can use in your scripts.
2017-05-26 00:53:58 -07:00
Michael Maltese
be2f4466e3
CMake: move unittests target to UnitTests
2017-05-22 00:19:14 -07:00
JosJuice
e019872d62
Remove no-pie build flags
2017-05-20 09:35:53 +02:00
JosJuice
4b4cf509f8
Remove code for only allocating low memory
...
This is unnecessary when we have position-independent code.
2017-05-20 09:35:53 +02:00
Matthew Parlane
d20bb985ad
Merge pull request #5369 from ligfx/cmakegtestnosystem
...
CMake: don't look for shared Google Test
2017-05-04 13:24:10 +12:00
Mat M
f3052b7a15
Merge pull request #5318 from ligfx/cmakehidapi
...
CMake: clean up HIDAPI build
2017-05-03 19:54:06 -04:00
Michael Maltese
cd7af32e0b
CMake: gtest already propagates include directories
2017-05-03 16:22:14 -07:00
Michael Maltese
9ac94d0135
CMake: don't look for shared Google Test
...
Google Test recommends not using a pre-compiled system copy[1] and
Debian and Ubuntu no longer distribute compiled packages.
This removes an unhelpful line from the CMake log: "Could NOT find GTest
(missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)."
[1]: https://github.com/google/googletest/blob/master/googletest/docs/FAQ.md#why-is-it-not-recommended-to-install-a-pre-compiled-copy-of-google-test-for-example-into-usrlocal
2017-05-03 15:29:29 -07:00
Michael Maltese
5230a8c996
CMake: only look for Bluez on Linux
...
Stops CMake from saying "BlueZ NOT found, disabling bluetooth support"
on other OSes. Windows, macOS, and Android support Bluetooth using other
libraries. I'm not sure if non-Linux, non-Android Unices (like FreeBSD)
need another message?
2017-05-03 15:15:47 -07:00
Michael Maltese
655ab9b4e2
CMake: clean up HIDAPI build
2017-04-27 02:41:00 -07:00
Michael Maltese
6e1940c404
CMake: don't globally include wxWidgets headers
2017-04-25 17:18:20 -07:00
Michael Maltese
f4c0723387
CMake: move wxWidgets check_lib code into wxWidgets
2017-04-25 17:18:20 -07:00
Michael Maltese
6197d9622f
CMake: move GTK+ check into wxWidgets
2017-04-25 17:18:20 -07:00
Michael Maltese
f7892faa80
CMake: remove artisanal wxWidgets version check
2017-04-25 09:35:42 -07:00
Michael Maltese
5298328cb1
Add headless support on macOS
2017-04-15 19:34:42 -07:00
Markus Wick
2151858fb1
Merge pull request #5241 from MerryMage/stretch
...
Pitch-Preserving Audio Stretching
2017-04-12 20:27:26 +02:00
MerryMage
b8c867dd7a
Mixer: Implement audio stretching
2017-04-12 13:56:28 +01:00
Michael Maltese
5b829163a3
CMake: turn on -fdiagnostics-color for Ninja builds
...
This PR attempts to turn on `-fdiagnostics-color` by default when using
the CMake Ninja generator.
Ninja effectively turns off colored messages by not running subcommands
in a pseudo-terminal. The Ninja maintainers have decided that using
pseudo-terminals has more downsides than upsides, but have helpfully
taught Ninja itself how to parse and remove color codes if its parent
isn't a (pseudo-)terminal.
Colored messages make it easier to read warnings and error messages in a
large build log, and are pretty.
2017-04-11 18:00:46 -07:00
Michael Maltese
af63235dc4
Remove libao sound backend
...
A single person uses it[0], and it sometimes messes up the Linux
buildbots ("ninja: error: 'ao', needed by 'Binaries/dolphin-emu', missing
and no known rule to make it").
[0]: https://analytics.dolphin-emu.org/stats/popular-audio-backends.txt
2017-03-31 14:59:57 -07:00
Matthew Parlane
85d74a506f
Merge pull request #4951 from waddlesplash/haiku-2
...
Initial support for Haiku.
2017-03-28 17:19:35 +13:00
Augustin Cavalier
0831dad467
Initial support for Haiku.
2017-03-27 23:46:19 -04:00
orbea
0d0f6f7278
Don't install static mbedtls libraries
2017-03-19 08:45:38 -07:00
Florent Castelli
5514680bc8
cmake: Fix typo in dolphin_compile_definitions
2017-03-08 06:47:00 +01:00
Vlad Firoiu
8970c1a793
Don't use hidapi-hidraw without udev.
2017-03-05 10:42:31 -08:00
Lioncash
ee61bd6f2e
CMakeLists: Normalize whitespace
...
Normalizes tabs to spaces to follow our codebase's indentation style.
2017-03-01 14:53:23 -05:00