Commit Graph

518 Commits

Author SHA1 Message Date
Ryan Houdek 77c7fa836f Add the cpp-optparse project to Externals.
From https://github.com/weisslj/cpp-argparse
2017-02-16 14:09:13 +01:00
Michael Maltese 45d1f88ea7 CMake: move modules from CMakeTests/ -> CMake/
The name "CMakeTests" is inaccurate and irregular.
2017-02-07 22:55:27 -08:00
Florent Castelli f649e26655 cmake: Move LLVM import to UICommon
To use it, with a modern LLVM (3.9+), set your CMAKE_PREFIX_PATH
to point to the LLVM install folder or to a LLVM build folder.
We're linking ALL of LLVM libs since I don't really know which ones we need.
LTO will take care of sliming the binary size...
2017-02-08 03:30:38 +01:00
Florent Castelli 428d1624fa cmake: Move BlueZ detection to Core 2017-02-08 01:08:33 +01:00
Mat M 277f813b72 Merge pull request #4849 from Orphis/cmake_audiocommon
cmake: Move PulseAudio detection to AudioCommon
2017-02-07 18:08:10 -05:00
Florent Castelli c1dcd06043 cmake: Move PulseAudio detection to AudioCommon 2017-02-07 23:35:44 +01:00
Michael Maltese 4d5cc27243 CMake: re-run if .git/$(symbolic-full-name HEAD) changes
In an oversight, PR #4841 didn't handle committing to or amending a
branch.
2017-02-07 00:53:05 -08:00
Mat M bdf09c7d3b Merge pull request #4841 from ligfx/accuratescmrev
CMake: re-run to get version information when .git/HEAD changes
2017-02-06 22:12:55 -05:00
Florent Castelli d1eaa59a8e cmake: Move detection of OpenAL to AudioCommon 2017-02-07 03:42:43 +01:00
Florent Castelli cbb7e4072a cmake: Move AO detection to AudioCommon 2017-02-07 03:42:43 +01:00
Michael Maltese 9502f322d3 CMake: re-run to get version information when .git/HEAD changes
Fixes an issue where Dolphin's revision information could be incorrect
when:

1) CMake was run while HEAD was at commit A
2) HEAD was set to commit B, which didn't have differences from A
that would cause CMake to be re-run

This does not fix the issue with incorrect information about whether
Dolphin was built from a dirty working tree or not.
2017-02-06 18:28:52 -08:00
Mat M f978765bf0 Merge pull request #4755 from Orphis/cmake_sdl
cmake: Modernize SDL discovery
2017-02-06 11:55:03 -05:00
Mat M 02127e360a Merge pull request #4831 from Orphis/cmake_cleanup
Small CMake fixes
2017-02-06 11:29:05 -05:00
Michael Maltese acc8dae2b3 CMake: use configure_file to generate scmrev.h
The built-in `configure_file` command correctly handles the case where
none of the variables change and scmrev.h doesn't need to be rebuilt.
This saves a full re-link of Dolphin any time CMake is re-run.
2017-02-05 22:26:49 -08:00
Matthew Parlane abe7081337 Merge pull request #4818 from ligfx/bundleutilities
CMake: use BundleUtilities to fix up Dolphin.app
2017-02-06 17:39:46 +13:00
Florent Castelli a7c4fd9bf0 cmake: Move discovery of SDL to InputCommon 2017-02-06 05:02:45 +01:00
Florent Castelli 5984ca26f3 wx: Move platform defines to wx setup header
Usually, this is passed as a preprocessor definition, but this is error
prone and just complicating the compiler invocation for no good reason.
2017-02-06 04:27:06 +01:00
Florent Castelli 8464480ceb cmake: Remove -nopie, -no-pie should be used instead 2017-02-06 04:25:28 +01:00
Florent Castelli d096b7b378 cmake: Prevent gtest from installing its files 2017-02-05 20:19:30 +01:00
Florent Castelli 5058d07861 cmake: Fix resource installation for Linux 2017-02-05 20:17:11 +01:00
Florent Castelli 2fceb016b4 cmake: Move ALSA detection to AudioCommon 2017-02-05 02:55:05 +01:00
Michael Maltese 38816bf51d CMake: use BundleUtilities to fix up Dolphin.app 2017-02-03 22:27:19 -08:00
Florent Castelli fb02a321b6 cmake: Move OpenSLES detection to AudioCommon through find_package() 2017-02-04 03:38:11 +01:00
Mat M a3ba169e7d Merge pull request #4809 from Orphis/cmake_windows
CMake for Windows: getting a working binary!
2017-02-03 08:33:13 -05:00
Florent Castelli 3842a9b71c OpenAL: Move Windows binaries to lib folder and fix CMake detection
The module FindOpenAL is looking for the dll in a folder called lib, not x64.
This is only used on Windows x64, it's fine to remove the platform name.
2017-02-03 04:54:54 +01:00
Florent Castelli 8bd41ad606 cmake: Add missing Windows link flags 2017-02-03 04:54:30 +01:00
Florent Castelli 7ccbe9b06d portaudio: Prevent files from being install()'ed 2017-02-03 04:24:13 +01:00
Florent Castelli 9180c87197 cmake: Put test targets in folders 2017-02-03 04:23:24 +01:00
Mat M 1dd229fac8 Merge pull request #4752 from Orphis/cmake_cleanup
cmake: Improve support for multi-configuration generators
2017-02-02 20:59:13 -05:00
Florent Castelli 0f9a6697fb DolphinWX: Update how localization files are installed
On macOS, we want them copied in the bundle directly, otherwise we will
install them later in the system folder.
Obviously not working for Windows, but that's not any different from before!
2017-02-02 03:51:32 +01:00
Florent Castelli 62c439814f cmake: Move Qt5 search to DolphinQt build script 2017-02-01 21:49:26 +01:00
Florent Castelli 8ef5b6d302 cmake: Removes check against CMAKE_BUILD_TYPE for multi-configuration generators 2017-02-01 21:44:50 +01:00
Florent Castelli 8882f33e94 cmake: Add dolphin_compile_definitions function
This is similar to add_definitions, but supports generator expressions.
It also has an optional argument to add only to Debug or Release
configurations.
2017-02-01 21:44:50 +01:00
Florent Castelli f5fd5477e3 cmake: Use new option in check_and_add_flag to add options correctly
Previously, -ggdb wouldn't be added when using the Xcode generator.
And now, the code for -fomit-frame-pointer is much more simple.
2017-02-01 21:44:50 +01:00
Michael Maltese 497173f665 CMake: Disable PortAudio support for ASIO, DS, and WDMKS
Fixes a link-time error, and matches what the vcxproj does.
2017-01-27 02:50:50 -08:00
Michael Maltese 0475a85195 CMake: Move Windows defines to Source/CMakeLists.txt
Messes up various Externals, like PortAudio.
2017-01-27 02:50:49 -08:00
Michael Maltese 4a422dffaa CMake: CMAKE_SIZEOF_VOID_P must be 8 for an x86_64 build
This is an issue because CMAKE_SYSTEM_PROCESSOR is defined as the host
processor when not cross-compiling, and building for Win32 doesn't count
as cross-compiling.
2017-01-27 02:50:36 -08:00
Florent Castelli bf2890f1f8 cmake: Change else(.*) to else() 2017-01-25 15:07:32 +01:00
Florent Castelli 87380c1c2c cmake: Change endif(.*) to endif() 2017-01-25 15:07:32 +01:00
Florent Castelli 2fd034789e cmake: Move /MP flag to MSVC compile flag section 2017-01-25 06:10:20 +01:00
Florent Castelli 221f991f1e cmake: Move section to disable PIE with the other compiler flags 2017-01-25 06:10:20 +01:00
Florent Castelli 1dda078c61 cmake: Compile on Windows with C++ Exceptions 2017-01-25 06:10:20 +01:00
Florent Castelli d2cb5e6407 cmake: Small random cleanups 2017-01-25 06:10:20 +01:00
Florent Castelli aac17b06d1 cmake: Split compile definitions and options 2017-01-25 06:10:20 +01:00
Florent Castelli 5129ba1289 cmake: Add section with Windows defines 2017-01-25 06:10:19 +01:00
Florent Castelli fafb103c52 cmake: Move LTO settings lower in the file 2017-01-25 06:10:19 +01:00
Florent Castelli 925297d528 cmake: Simplify setting arch flags on macOS 2017-01-25 06:10:19 +01:00
Florent Castelli 3e28ebc31e cmake: Fix arch detection
Windows arch is set to AMD64, and we don't really want ix86 either
2017-01-25 06:10:19 +01:00
Florent Castelli c48617008d cmake: Regroup compilation flags together 2017-01-25 06:10:19 +01:00
Florent Castelli ff4ef08745 cmake: Readd fomit-frame-pointer on macOS
Make it also properly set on Release for multi-configuration generators
2017-01-25 06:10:19 +01:00
Florent Castelli 8f355962ce cmake: Move include higher up in the file 2017-01-25 06:10:19 +01:00
Florent Castelli ec84c26975 cmake: Remove unused variable 2017-01-25 06:10:18 +01:00
Florent Castelli b9127cd2e0 cmake: Regroup definitions for 64bit file offsets 2017-01-25 06:10:18 +01:00
Florent Castelli a2e40a11d7 Fix typo MinSizeRe -> MinSizeRel 2017-01-25 06:10:18 +01:00
Florent Castelli 08b73b8a77 cmake: Move check_and_add_flag to a separate file
Also make it add flags to both C and C++ when appropriate
2017-01-25 02:34:33 +01:00
Markus Wick eed64bb0fe Merge pull request #4744 from ligfx/cleanup-osx-cmake
CMake: Cleanup macOS-related logic
2017-01-24 14:36:10 +01:00
Michael Maltese c85127c973 CMake: move CMAKE_MACOSX_RPATH with rest of macOS logic 2017-01-24 01:27:42 -08:00
Michael Maltese b65b87c8b4 CMake: don't need to force Clang on macOS
It's already the default!
2017-01-24 01:27:42 -08:00
Michael Maltese 7ebb1b4d3d CMake: find_package(Threads) on macOS too 2017-01-24 01:27:41 -08:00
Michael Maltese 4cbd07b81f CMake: remove unneeded macOS frameworks 2017-01-24 01:27:41 -08:00
Michael Maltese 0ab3b1a3ff CMake: use CMAKE_OSX_DEPLOYMENT_TARGET 2017-01-24 01:27:41 -08:00
Michael Maltese 951eb9a801 CMake: use CMAKE_OSX_ARCHITECTURES 2017-01-23 23:44:38 -08:00
Florent Castelli a917d247ed DolphinWX: Remove HAVE_WX preprocessor define
I think we don't have to double check it when building the WX target.
2017-01-24 05:48:08 +01:00
Florent Castelli fa04c1479e cmake: Remove PCH support
Compilers are very picky and don't use PCH when they have been compiled
with different flags. I even got some ICE in MSVC, so removing them for now.

Modules are the solution.
2017-01-24 03:22:03 +01:00
Florent Castelli 6c197a8f6a cmake: Rename variable for libxi to X11_INPUT 2017-01-21 02:44:18 +01:00
Florent Castelli 08d6a24bbc cmake: Build HIDAPI on Windows 2017-01-21 00:34:02 +01:00
Florent Castelli 56559c51cf cmake: librt is found only on Linux 2017-01-21 00:34:02 +01:00
Florent Castelli 4785802b9e cmake: Move C++ standard requirement out of global scope to Source/ 2017-01-20 17:46:40 +01:00
Florent Castelli 17187694f6 cmake: Add CCache support 2017-01-17 22:39:51 +01:00
Florent Castelli 6829b42846 cmake: Don’t use message(“”)
If there’s no category, the message ends up in stderr instead of stdout with the other regular CMake output.
2017-01-17 22:39:51 +01:00
Florent Castelli 2c6d2dd1e3 cmake: Find programs on the host too when building for Android 2017-01-17 22:39:51 +01:00
Florent Castelli 62eccff315 Remove policy check for BSD as it is ON by default now 2017-01-17 21:50:44 +01:00
Florent Castelli 875563787f cmake: include(Find…)->find_package(…) 2017-01-17 21:50:44 +01:00
Mat M 81358dbf20 Merge pull request #4674 from Orphis/require_gcc5
cmake: Enforce minimum GCC version
2017-01-17 14:35:38 -05:00
Florent Castelli 868c59dd1c cmake: Enforce minimum GCC version 2017-01-17 20:02:21 +01:00
Lioncash bae0158fc1 CMakeLists: Make CMake 3.5.0 the minimum requirement 2017-01-17 13:36:39 -05:00
Jeffrey Pfau 1b161aad6b CMake: Search /usr/local paths on BSD
CMake would have trouble with some configuration tests on FreeBSD (and
presumably other BSDs) due to installed libraries being in /usr/local, but
not being in the default search path. Adding these to the default search path
fixes mbedtls and portaudio not being found, and possibly more.
2017-01-17 00:46:10 -08:00
Florent Castelli 5955c86ec5 cmake: Set MACOSX_RPATH to OFF
In newer versions of CMake, the variable is ON by default.
This generates imports like @rpath/libusb.dylib which the
packaging script doesn’t understand.
We don’t really need @rpath, so we can just disable it
at the global scope instead of fixing the script.
2017-01-17 04:23:56 +01:00
Emmanuel Gil Peyrot de485f3efc CMake: Add an option to disable bluez support.
This removes bluetooth support.
2016-12-27 15:08:33 +01:00
Emmanuel Gil Peyrot c57f7414a8 CMake: Add an option to disable LLVM support.
This makes the disassembler only work for x86.
2016-12-27 15:08:13 +01:00
Emmanuel Gil Peyrot 6033250beb CMake: Add an option to disable each sound backend.
They are already disabled when the libraries can’t be found, this only
helps people who want to build without them despite having them
installed, for example to provide a package to someone else.
2016-12-27 15:08:10 +01:00
Grant Paul 449ae01db6 Remove dead code to set the path to the macOS SDK.
CMake autodetects a macOS SDK into `CMAKE_OSX_SYSROOT`. There's no
need to duplicate that logic and search out a specifc old version.
2016-12-08 20:53:12 -08:00
Léo Lam f270438a8a CMakeLists: Fix indentation 2016-11-20 18:11:57 +01:00
Jules Blok 49ac577ac0 Merge pull request #4388 from ligfx/portaudio_static
CMake: build PortAudio as static library
2016-11-01 18:32:12 +01:00
Michael Maltese 04e262513c CMake: build PortAudio as static library
Due to issues raised in #4255.
2016-10-26 11:53:14 -07:00
Chris Burgener 6fde08bc34 Check if compilers support -no-pie or -nopie 2016-10-21 10:36:33 -04:00
Chris Burgener d03a35ac92 Add -no-pie flag to CMake 2016-10-19 09:52:30 -04:00
Michael Maltese ecb095f576 CMake: Fix macOS compile by always setting LIBUSB_FOUND=true
Without this, compilation complains about undefined symbols related to
`CWII_IPC_HLE_Device_hid` and `CWII_IPC_HLE_Device_usb_oh1_57e_305_real`.
2016-10-15 16:24:39 -07:00
degasus 05eff01229 Android: Update the gradle file to use android studio 2.2 cmake. 2016-10-05 23:44:10 +02:00
Léo Lam 843b030eda WiimoteReal: Add a hidapi IO implementation
Based on ca0c2efe7a. Credits go to flacs.
However, unlike the original commit, hidapi does not completely replace
the current implementations, so we can still connect Wiimotes with 1+2
(without pairing).

Also, it is only used on Linux and OS X for now. This removes the
advantage of having only one implementation but there is no other
choice: using hidapi on Windows is currently impossible because
hid_write() is implemented in a way that won't work with Wiimotes.

Additionally:
* We now check for the device name in addition to the PID/VID so we can
  support the Balance Board and maybe third-party Wiimotes too. This
  doesn't achieve anything with the DolphinBar but it does with hidraw.
* Added a check to not connect to the same device more than once.
2016-10-03 11:41:23 +02:00
shuffle2 f71966866b Merge pull request #4230 from ligfx/build_vendored_libusb
Build vendored libusb with CMake if on Apple or not available system-wide
2016-10-02 21:17:01 -07:00
shuffle2 c62bfeba07 Merge pull request #4255 from ligfx/portaudio_build_externals
Build portaudio from Externals when not available on system
2016-10-02 20:53:54 -07:00
Michael Maltese 08d9c46b79 Build portaudio from Externals when not available on system
TL;DR: Enables mic support on macOS builds
2016-09-28 13:43:02 -04:00
Michael Maltese eb4d980d2f Ignore LIBUSB_FOUND on Apple
It shouldn't be set in the first place, and its cached value is screwing
up the buildbots.
2016-09-28 13:32:17 -04:00
Michael Maltese 8bb2139224 Build vendored libUSB with CMake 2016-09-28 13:32:07 -04:00
Michael Maltese cd19c9fa22 Don't force compile everything as Objective-C++ on macOS 2016-09-18 17:33:51 -07:00
Jasper St. Pierre 928d05ec47 InputCommon: Remove the Xlib backend
The XInput2 backend is more performant, so let's default to it and
remove the old, core-only backend.
2016-09-04 10:44:22 -07:00
Preston Smith f212d856b3 Fix wxWidgets build for 32-bit arch 2016-08-30 18:17:17 -05:00
Pierre Bourdon c6fed0565d Merge pull request #4109 from JosJuice/remove-am-baseboard
Remove AM Baseboard
2016-08-11 16:16:23 +02:00
Stenzek 951fc44d86 Externals: Add glslang from Vulkan SDK v1.0.21.1 2016-08-11 22:40:32 +10:00