Commit Graph

385 Commits

Author SHA1 Message Date
Mathieu Comandon 3cecbae324 Make LINUX_LOCAL_DEV a CMake option 2015-11-10 14:15:08 -08:00
Emmanuel Gil Peyrot e20b08491c UICommon: Respect XDG Base Directory Specification on POSIX systems. 2015-11-10 21:53:29 +00:00
Mathieu Comandon f2ae1a2545 Implement relocatable builds on Linux
- Change the path of the Sys folder to the executable's location
- Add LINUX_LOCAL_DEV flag to use relocatable version on Linux
- Add CMake definition for relocatable build
2015-11-10 12:49:04 -08:00
spxtr d9d6cf8eda GC controller input using named pipes
Currently only works on unix, but can be extended to other systems. Can
also be extended to do wiimotes.

Searches the Pipes folder for readable named pipes and creates a dolphin
input device out of them. Send controller inputs to the game by writing
to the file. Commands are described in Pipes.h.
2015-10-24 20:20:03 -07:00
Tillmann Karras 4eace2b49e CMake: simplify FindMiniupnpc.cmake
miniupnpc.h provides MINIUPNPC_API_VERSION since 1.7 and we require 1.7
or later, so there is no reason to have version detection code for older
versions.
2015-10-12 02:26:35 +02:00
Christian Widmer b99d1a0a20 Fix OProfile discovery and drop bfd dependency
Adds a cmake module to correctly discover OProfile and adjusts the
corresponding CMakeLists to make use of it. Additionally removes
linking against the bfd library when compiling with OProfile because
Dolphin does not use it.
2015-10-11 16:27:03 +02:00
shuffle2 a6f04b0e15 Merge pull request #3091 from Tilka/mbedtls
Update mbed TLS (PolarSSL)
2015-10-03 18:00:58 -07:00
Marisa Kirisame 8c5744bca7 miniupnpc API version 14 changed the upnpDiscover functions, adding an argument for TTL (should default to 2)
this enables support for that should the build system have that specific version installed, the miniupnpc bundled in the project is unchanged
2015-09-30 16:50:58 +02:00
Tillmann Karras f6795466e7 mbedTLS: adapt Dolphin code 2015-09-26 07:09:19 +02:00
Lioncash 8b027f6ed7 CMakeLists: Bump C++ compilation from gnu++0x to c++1y 2015-09-06 04:10:40 -04:00
Scott Mansell d2578000bb Merge branch 'stable' 2015-07-04 23:43:36 +12:00
Scott Mansell 0dc8763247 Linux: Don't allow dolphin to be build without evdev support.
Unless explicitly requested.
2015-07-01 10:13:05 +12:00
Scott Mansell ad714993aa CMake: Explicitly pull in threads.
Dolphin uses threads, but never actually pulled them it. Normally
some library we depend on would pull threads in, but there are
potential builds that forget to pull in threads.
2015-07-01 10:13:05 +12:00
Scott Mansell 9065ddf5fa Linux: Disable SDL controller backend by default.
Not deleted, because it's the only option for some other operating
systems such as FreeBSD or any other slightly exotic operating
system someone might try and run dolphin on.
2015-07-01 10:13:05 +12:00
Scott Mansell 2721fdf8a9 Linux: Add an evdev based controller backend, to replace SDL. 2015-07-01 10:13:05 +12:00
comex 4b06089103 Fix linking to libav in non-default path
LIBAV_LDFLAGS has -L, LIBAV_LIBRARIES is just the names of the

I think this is not necessary for other dependencies because they
consist of a single library and go through a different path (check_lib)
that provides the full path to it. e.g. from my CMakeCache.txt:

ICONV_LIBRARIES:FILEPATH=/usr/lib/libiconv.dylib (good)
LIBAV_LIBRARIES:INTERNAL=avcodec;avformat;swscale;avutil (bad)
2015-06-21 15:45:02 -04:00
comex d180e4469e Disable warnings for wx headers
...by telling CMake to use -isystem for the static wx include directory.

AFAICT, this is already done by CMake's FindwxWidgets script in the
shared case.
2015-06-21 13:29:04 -04:00
Jeffrey Pfau 1b9f55692b Fix 64-bit FreeBSD build 2015-06-13 21:52:47 -07:00
Matthew Parlane f32cede086 Revert "x64: build a Position-Independent Executable (PIE)" 2015-06-14 16:06:26 +12:00
Jules Blok 35aa676fe7 Decide whether Dolphin is stable based on the branch name. 2015-06-09 21:07:33 +02:00
Tony Wasserka 680e73baa2 Make CMakeLists.txt recognize "stable" as a stable branch. 2015-06-09 20:03:49 +02:00
Ryan Houdek 59e2225f7d Remove ARMv7 support. 2015-06-07 22:44:13 -05:00
Ryan Houdek 49a0adb2e9 Merge pull request #2506 from comex/enet-build-fixes
ENet fixes (build fixes, upgrade)
2015-06-07 23:16:42 -04:00
Tillmann Karras 0e1c51e5b9 CMake: add ENABLE_PIE option 2015-06-03 21:44:31 +02:00
comex eb234da67f Disable shared libenet by default because I'm going to diverge it soon.
The changes I intend to make are:
- supporting IPv6 by rebasing on https://github.com/freeminer/enet
- adding custom code for quick resending

Even if I manage to get the latter upstream (which I'd like to wait for
some testing before attempting), I don't know what the original author
might do with the former, so...

Leave an option to use it for the sake of Linux distros - this means any
changes must stay protocol compatible, and Dolphin must work around any
API incompatibilities (e.g. for IPv6).
2015-06-02 18:42:50 -04:00
comex d31d2b1949 Add check for enet_socket_get_address in shared enet. 2015-06-02 18:42:50 -04:00
comex 599e42c562 Work around check_libs failing on OS X due to -x objective-c. 2015-06-02 18:42:48 -04:00
comex fd855758cc Explicitly specify .pc names, since the previous guess in CheckLib.cmake wasn't always right.
This fixes detection of at least libenet via pkg-config, and I think
libpng via pkg-config pulseaudio via direct detection.

Also remove the NOT APPLE from the shared libenet check, because there's
no reason for it.
2015-06-02 18:42:45 -04:00
Tillmann Karras c4beec7070 CMake: require wxWidgets 3.0.1 or newer
Fixes issue 7206 on outdated systems (e.g. Ubuntu 14.04).
Note: Our version in Externals is somewhere between 3.0.0 and 3.0.1.
2015-04-23 17:50:13 +02:00
Ryan Houdek b267e5147c Merge pull request #2203 from alucryd/findx11
Include the FindX11 module
2015-03-15 07:40:20 -05:00
Maxime Gauduin 148ce85b26 Include the FindX11 module 2015-03-13 12:58:08 +01:00
degasus 691b690afe enet: Search for shared library 2015-03-02 22:18:57 +01:00
Augustin Cavalier 54072b9c8a Make sure we unset the CMAKE_REQUIRED_LIBRARIES variable.
If we don't unset it, all the CMake checks will run with PortAudio
in the library list. This didn't affect those who had PortAudio,
but for select Debian systems without it, it breaks everything.
2015-02-27 20:00:02 +00:00
Ziek 619a3a5171 Added all of enet lib, changed Cmake files accordingly 2015-02-25 18:28:27 -08:00
Ziek 074d688884 Change netplay initial gctime to be determined by the hosts initial time 2015-02-25 18:28:26 -08:00
Tillmann Karras 387777ed72 Fix VTune static library dependencies
Since libcommon.a is also the last library to be linked, this has the
totally hacky but useful side-effect that it doesn't require people to
modify CMake files for temporarily adding VTune code to other Dolphin
libraries.
2015-02-22 20:49:30 +01:00
Tillmann Karras 0ec48e0ec9 JitRegister: fix VTune integration 2015-02-12 02:14:49 +01:00
degasus 402fb4bd20 xxhash: Add cmake + VS files
Based on riking's PR.
2015-01-21 07:35:34 +01:00
Tillmann Karras 6bcdb10eee CMake: simplify some expressions 2015-01-03 13:17:57 +01:00
Ryan Houdek 5eb8876bac [AArch64] Removes ARMv8 as a generic target.
Generic flag disables the ability to have backpatching supporting.
Also compiles Dolphin with CRC instructions enabled.
2014-12-20 19:36:48 -06:00
skidau b806680eac Merge pull request #1522 from jcowgill/sfml-2.1
Update / Port to SFML 2.1
2014-11-26 12:33:03 +11:00
James Cowgill a93f86330e Port dolphin to SFML 2.1 2014-11-25 16:44:38 +00:00
Pringo 9cbf353755 Update CMakeLists.txt 2014-11-25 00:27:13 -05:00
comex ba4a763410 Move library aggregation into common CMakeLists.txt; add missing libs to DolphinQt.
Fixes DolphinQt build (on OS X, anyway) when libav is enabled.
2014-11-19 20:09:12 -05:00
comex efb2f361aa Don't murder the default PATH and CMAKE_SYSTEM_PREFIX_PATH on OS X. Just prioritize /usr.
Changing PATH basically screws everything up, and while the attempt to
avoid MacPorts copies of system libraries was well-intentioned, it made
the OS X buildbot unable to pick up ffmpeg and libusb.

It's sufficient to put /usr first to make sure we use the system copies
of duplicated libraries.
2014-11-14 15:00:50 -05:00
comex cb0af4057e Link Foundation/CoreServices into unit tests so they build with DISABLE_WX. 2014-11-14 11:28:13 -05:00
Ryan Houdek eb7543d139 Enables ARMv7 build options entirely on ARM.
We only support ARMv7 with Dolphin, so if we are building on ARM have our target be for armv7-a.
2014-11-14 15:14:53 +00:00
Rohit Nirmal 6d9c68a617 Fail CMake if building WX without GTK libraries. 2014-11-10 20:49:33 -06:00
Jasper St. Pierre 44b879dac2 Destroy OpenMP 2014-11-06 18:38:24 -08:00
Lioncash 8959adefb2 Merge pull request #1506 from waddlesplash/dolphin-qt
Dolphin[Qt|WX]: Miscellaneous cleanup.
2014-11-06 20:55:44 -05:00
Augustin Cavalier a96acea03c Dolphin[Qt|WX]: Miscellaneous cleanup.
DolphinQt:
 * Make the connect() calls explicit, not automatic
 * Follow better naming convention for the QActions
 * Remove the Open action from the toolbar.
Dolphin[Qt|WX]:
 * Move the "Skip Bundle" option to the root CMakeLists so that both DolphinQt and DolphinWX can use it.
2014-11-06 15:47:27 -05:00
Tillmann Karras c34d99e40e Work around LLVM header peculiarity
Bug report: http://llvm.org/bugs/show_bug.cgi?id=21472
2014-11-04 02:29:33 +01:00
Gabriel Corona cf3ba671bf Fix LLVM
$(llvm-config --ldflags) was passed to the compiler but it needs to be
passed to the linker instead (-L and -l flags).
2014-10-28 01:36:27 +01:00
Ryan Houdek bd1a192faf Fixes LLVM library detection.
I must have had a dirty cmake configuration which didn't encounter this issue.
Make sure we are using LLVM_DEFINITIONS to know where we are linking to libraries at.
Link against libLLVM-${VERSION}, the other one was linking us against static libraries...
2014-10-26 16:17:57 -05:00
Ryan Houdek cb10bef9a4 Implements LLVM based disassembler for the debugger.
This will work for all of our platforms, x86, ARMv7, and AArch64.
Main issue with this is that LLVM's cmake files aren't correctly finding the LLVM install.
Not sure if this is Ubuntu's issue or not, it may just work on other operating systems.

We could potentially improve this, you can pass in a specific CPU in to the LLVM disassembler. This would probably affect latency times that are
reported by LLVM's disassembly? This needs to be further investigated later.
2014-10-24 18:10:21 -05:00
Chris Ballinger ffe976659e Fix OpenGL linker error on OS X 2014-10-22 00:34:31 -07:00
Ryan Houdek b3a79f00d4 Removes Android cmake option.
We auto detect if we are building for Android. No need to have this option.
2014-10-21 08:47:25 -05:00
Augustin Cavalier 16c6a19190 DolphinQt: initial commit.
This adds the beginning of the DolphinQt user interface. It doesn't
do anything useful yet and only builds via CMake.
2014-09-15 15:06:05 -07:00
Augustin Cavalier a15d9ed0b6 Migrate PNGs from DolphinWX to the Data/Sys/Resources directory.
* Aren't used by anything (yet) as DolphinWX compiles XPM versions into the build
 * Moved the .desktop file as well, adjusted INSTALL rule accordingly
2014-09-06 11:47:21 -04:00
Ryan Houdek 7a1eca149f Merge pull request #841 from AMDmi3/bundled-smfl-include-order
Place bundled SFML include paths before others
2014-09-06 02:17:37 -05:00
Dmitry Marakasov 99df57a35e Place bundled SFML include paths before others
This allows to build with bundled SFML when system SFML (of another
version) is installed
2014-08-20 17:44:18 +04:00
Jasper St. Pierre 8bd4b9d2f9 Remove support for Wayland
Yes, this is a fancy new feature, but our Wayland support was
particularly bitrotten, and ideally this would be handled by a platform
layer like SDL. If not, we can always add this back in when GLInterface
has caught up. We might be able to even support wxWidgets and GL
together with subsurfaces!
2014-08-19 10:05:56 -04:00
Jasper St. Pierre b84fd718a7 CMakeLists: Try to fix the X11 detection on OS X 2014-08-06 21:38:57 -04:00
Lioncash e34f7f112d CMakeLists: Increment the minimum required version of wxWidgets 2014-07-14 19:07:10 -04:00
degasus 9560ecdbec CMake: warn on missing variable declarations 2014-07-11 16:07:23 +02:00
degasus 3ff1c538ee CMake: warn on missing declarations 2014-07-11 16:07:22 +02:00
Tillmann Karras 95eade2a47 CMake: remove unused/duplicate definitions 2014-06-27 19:48:36 +02:00
Tony Wasserka a8f32adcab Merge pull request #470 from pauldacheez/s-Gamecube-GameCube
Fix the capitalization of "GameCube" throughout the project.
2014-06-13 21:52:08 +02:00
Paul Olszewski 5d793881b0 Fix the capitalization of "GameCube" throughout the project. 2014-06-08 11:24:49 +09:00
Ryan Houdek 6e1d312091 Make it so ARMv7 isn't a generic target.
Rearranges a bit of code so that ARM isn't a generic build anymore. Because it obviously isn't
2014-06-07 20:26:31 -05:00
Ryan Houdek b7519fdde1 Merge pull request #337 from Tilka/lto
Fix LTO with GCC 4.9
2014-06-07 00:54:28 -05:00
shuffle2 e25c9fef46 Merge pull request #418 from Sonicadvance1/x86_32-cmake-removal
Add a Cmake generic build option and remove x86_32 build capabilities.
2014-05-26 13:36:05 -07:00
Ryan Houdek 28e643c384 Add a Cmake generic build option and remove x86_32 build capabilities.
Adds the ability to build our generic build option without manually enabling it in the cmake file.
If trying to build on a x86_32 host, throw a fatal error but say that a binary can be built as a generic build if one wants.
2014-05-25 20:52:52 -05:00
Jordan Woyak 9af18d1b96 Remove SDL from Externals. 2014-05-04 19:41:02 -05:00
Tillmann Karras e22be59f82 Fix LTO with GCC 4.9
For LTO to work, GCC 4.9 requires using the wrappers gcc-ar and gcc-ranlibs:
http://gcc.gnu.org/gcc-4.9/changes.html

CMake doesn't account for this yet:
http://public.kitware.com/pipermail/cmake-developers/2014-January/009344.html
2014-05-03 11:54:31 +02:00
Ryan Houdek cc2dac6722 Adds Link Time Optimization cmake option.
Adds a LTO option that isn't enabled by default.
Allows building release binaries with link time optimizations without generating a -dirty build.
Not enabled by default due to concerns of memory usage and increased build time.
2014-04-23 04:15:25 -05:00
Ryan Houdek c44df3d932 Moves a few Cmake options so that debug options are near one another.
Moves GDBSTUB to the top as well where it should be.
2014-04-23 04:15:08 -05:00
Ryan Houdek 8ecb7524bc Fix arch detection on x86. 2014-03-17 11:46:19 -05:00
Ryan Houdek d4c53eed01 Fix arch detection on x86. 2014-03-17 11:36:27 -05:00
Ryan Houdek a6ee74b58d Fix arch detection on x86. 2014-03-17 11:33:11 -05:00
Guilherme Espada dacd2431d3 Fix building on mac without a c/c++ compiler set. 2014-03-10 15:58:50 +00:00
Matthew Parlane 79ae3c1510 Use correct capitalization for SoundTouch.h in CMakeLists.txt
Fixes Issue 7074:	Typo in CMakeLists.txt
2014-03-11 00:39:30 +13:00
Ryan Houdek 4dc2d71e34 OS X likes to be different. It reports the host processor type as i386 instead of x86 or x86_64 like a typical sane system. 2014-03-04 14:45:50 -06:00
Ryan Houdek 4f02132f93 Make our architecture defines less stupid.
Our defines were never clear between what meant 64bit or x86_64
This makes a clear cut between bitness and architecture.
This commit also has the side effect of bringing up aarch64 compiling support.
2014-03-04 09:36:59 -06:00
Pierre Bourdon 9ea845310d Unittests: Always use GTest from Externals (recommended way from GTest FAQ). 2014-03-03 03:38:46 +01:00
Pierre Bourdon 2d71571be5 Do not hard fail when running 'make unittests' without GTest. 2014-03-03 03:12:58 +01:00
Pierre Bourdon d4ed4adace Add the infrastructure required to easily add unit tests and test it with a very simple test file. 2014-03-03 00:25:41 +01:00
Pierre Bourdon 747021e0c8 CMake: detect GTest if it is installed 2014-03-02 04:15:33 +01:00
Pierre Bourdon 0f89060cf3 Remove Source/{Unittests,TestSuite}.
These directories have been unused for several years and without any automated
way of running the tests, they are pretty much useless.

While they might be useful as a reference, in their present state they should
not be kept in the repository.
2014-02-23 22:36:32 +01:00
Pierre Bourdon 362dec9c7c Dolphin now builds on Linux with only Source/Core as include dir 2014-02-18 12:18:47 +01:00
Pierre Bourdon dc1db82f70 Fix Linux build 2014-02-18 12:09:38 +01:00
Pierre Bourdon 9da6900595 Merge pull request #12 from Armada651/osx_rumble
OS X Rumble Support
2014-02-09 16:10:07 +01:00
Jules Blok c6d650c058 ForceFeedback: Add OSX rumble support 2014-02-09 17:01:45 +09:00
degasus 5c646d334a Pulseaudio: rewrite the pa backend with the async api
The default async api allow us to set some latency options. The old one (simple API) was the lazy way to go for usual audio where latency doesn't matter.

This also streams audio, so it should be a bit faster then the old one.
2014-02-07 00:20:10 +01:00
Ryan Houdek 839df31347 Merge of GL-AutoChoose.
This branch is the final step of fully supporting both OpenGL and OpenGL ES in the same binary.
This of course only applies to EGL and won't work for GLX/AGL/WGL since they don't really support GL ES.
The changes here actually aren't too terrible, basically change every #ifdef USE_GLES to a runtime check.

This adds a DetectMode() function to the EGL context backend.
EGL will iterate through each of the configs and check for GL, GLES3_KHR, and GLES2 bits
After that it'll change the mode from _DETECT to whichever one is the best supported.
After that point we'll just create a context with the mode that was detected
2014-01-18 04:11:59 +00:00
Ryan Houdek cd145cb63e [GLExtensions] Refix GLES3 build. Until we clean up the platform detection this'll need to be here. 2014-01-17 16:06:40 +01:00
Ryan Houdek c744aca323 [GLExtensions] Move the include directory location for Externals/GL so no other library includes global GL folder first. 2014-01-17 16:06:35 +01:00
Ryan Houdek 3d4d3f6b11 [GLExtensions] Remove a bunch of unneeded headers. Fix Linux+EGL compiling. Move include to glx.h around to work around it including global GL/gl.h 2014-01-17 16:06:29 +01:00
Ryan Houdek 71681de81a [GLExtensions] Initial code drop for GLExtensions. This drops GLEW entirely from the codebase. This has been tested on Android and Linux+ATI. Of course untested on Windows and Apple. Also untested with Linux + EGL but should be fine there. There are most likely a couple of extensions I'm missing which would result in null pointer runs but not bad for the initial commit.
Conflicts:
	CMakeLists.txt
	Externals/GLew/glew.vcxproj
	Externals/GLew/glew.vcxproj.filters
	Source/Core/VideoBackends/OGL/CMakeLists.txt
	Source/Core/VideoBackends/OGL/GLFunctions.cpp
	Source/Core/VideoBackends/OGL/GLFunctions.h
	Source/Core/VideoBackends/OGL/GLUtil.h
	Source/Core/VideoBackends/OGL/Render.cpp
	Source/VSProps/Base.props
2014-01-17 15:50:51 +01:00
Ryan Houdek 1118226f27 Merge branch 'master' into buffer_storage 2013-12-31 19:18:30 -06:00