Commit Graph

530 Commits

Author SHA1 Message Date
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