Commit Graph

434 Commits

Author SHA1 Message Date
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
JosJuice
3bb0e7e3f5 Remove AM Baseboard
Let's stop pretending that we support Triforce emulation.
Keeping this code around just in case someone will make
major improvements in the future isn't really worth it.

I'm keeping the Triforce game INIs so users will know that
the compatibility rating for Triforce games is 1 star (broken).
2016-08-11 12:53:44 +02:00
Alex Wang
77ed5756dc Capitalize Foundation library name
On a case-sensitive filesystem, the "foundation" library can not be
found, as the framework starts with a capital "F". Because the
Foundation framework is required by other parts of the build, this
causes the build to fail.

Should help with future builds, too, as the upcoming APFS is
case-sensitive.
2016-07-23 15:10:55 -04:00
EmptyChaos
f57cb1bb31 CMake: Bundle FindBacktrace since its missing from older versions. 2016-07-19 13:15:28 +10:00
JDV
b6fa1f5f0b Remove Backtrace as it is not actually needed 2016-07-18 15:23:05 -06:00
Anthony J. Bentley
fb1627a696 Install manpages and XDG files on OpenBSD and FreeBSD. 2016-07-17 20:32:25 -06:00
Matthew Parlane
4b9173ca62 Merge pull request #4017 from bentley/openbsd-libs
OpenBSD neither provides nor requires libdl and librt.
2016-07-18 12:42:14 +12:00
Anthony J. Bentley
eb4cae78aa OpenBSD neither provides nor requires libdl and librt. 2016-07-17 18:06:38 -06:00
Anthony J. Bentley
5bab6210ef Use the standard stat()/fstat() interfaces, not nonstandard *64().
Most modern Unix environments use 64-bit off_t by default: OpenBSD,
FreeBSD, OS X, and Linux libc implementations such as Musl.

glibc is the lone exception; it can default to 32 bits but this is
configurable by setting _FILE_OFFSET_BITS.

Avoiding the stat64()/fstat64() interfaces is desirable because they
are nonstandard and not implemented on many systems (including
OpenBSD and FreeBSD), and using 64 bits for stat()/fstat() is either
the default or trivial to set up.
2016-07-17 04:30:00 -06:00
Mat M
fac7d09091 Merge pull request #3737 from EmptyChaos/update-wx
Externals: Update wxWidgets to 3.1.0
2016-07-15 09:48:14 -04:00
EmptyChaos
822326eea9 Update wxWidgets to 3.1.0
From wxWidgets master 81570ae070b35c9d52de47b1f14897f3ff1a66c7.

include/wx/defs.h -- __w64 warning disable patch by comex brought forward.

include/wx/msw/window.h -- added GetContentScaleFactor() which was not implemented on Windows but is necessary for wxBitmap scaling on Mac OS X so it needs to work to avoid #ifdef-ing the code.

src/gtk/window.cpp -- Modified DoSetClientSize() to direct call wxWindowGTK::DoSetSize() instead of using public wxWindowBase::SetSize() which now prevents derived classes (like wxAuiToolbar) intercepting the call and breaking it. This matches Windows which does NOT need to call DoSetSize internally. End result is this fixes Dolphin's debug tools toolbars on Linux.

src/osx/window_osx.cpp -- Same fix as for GTK since it has the same issue.

src/msw/radiobox.cpp -- Hacked to fix display in HiDPI (was clipping off end of text).

Updated CMakeLists for Linux and Mac OS X. Small code changes to Dolphin to fix debug error boxes, deprecation warnings, and retain previous UI behavior on Windows.
2016-06-26 15:25:29 +10:00
comex
659d079d5c Fix in-tree build (cmake .) on OS X.
OS X uses a case insensitive filesystem by default: when I try to build,
a system header does #include <assert.h>, which picks up
Source/Core/Common/Assert.h.  This only happens because CMakeLists adds
'${PROJECT_BINARY_DIR}/Source/Core/Common' as an include directory: in
an out-of-tree build, that directory contains no other source files, but
in an in-tree build PROJECT_BINARY_DIR is just the source root.

This is only used for scmrev.h.  Change the include directory to
'${PROJECT_BINARY_DIR}/Source/Core' and the include to
"Common/scmrev.h", which is more consistent with normal headers anyway.
2016-06-25 23:57:17 -04:00
Pierre Bourdon
ac267a2940 5.0 release 2016-06-24 10:09:07 +02:00
Chris Burgener
09dbe2337c Merge pull request #3904 from dhustkoder/master
_DEFAULT_SOURCE flag added, and clang check version for IsTriviallyCopyable m…
2016-06-22 10:54:39 -04:00
dhust
19fed720ff _DEFAULT_SOURCE flag added, and clang check for IsTriviallyCopyable macro
fix clang ver check for 4.0 +

using clang macro __has_feature

__GLIBCXX__ check added

fix __has_feature
2016-06-19 18:32:19 -03:00
Pierre Bourdon
49ce9b153d scmrev: Add "distributor" option.
Used to distinguish between Dolphin distributions (e.g. "dolphin-emu.org",
"Ishiiruka", etc.).
2016-06-18 18:31:40 +02:00
Pierre Bourdon
c4f5c471bb Externals: Add libcurl. 2016-06-18 18:31:40 +02:00
Pierre Bourdon
96acd3e7ff Merge pull request #3869 from delroth/out-of-git
Provide better scmrev defaults without .git
2016-06-05 09:27:57 +02:00
Pierre Bourdon
bae4f2c7db Provide better scmrev defaults without .git
Use the default values from CMakeLists.txt (previously used for CPack). We
usually update these when tagging a new major version.
2016-05-29 18:29:40 +02:00
Pierre Bourdon
2a79ac0d28 Merge pull request #3734 from Sonicadvance1/no_x86_pie
Make sure x86_64 isn't compiled with PIE.
2016-05-29 17:32:20 +02:00
orbea
2b59b1ac45 mandir added 2016-04-02 13:16:29 -07:00
Ryan Houdek
8b01158c95 Make sure x86_64 isn't compiled with PIE.
Our x86_64 recompilers don't support PIE and fail amazingly if enabled.
Disable it so package maintainers(!) or other randoms don't accidently enable it when we don't support it.
2016-03-14 13:31:55 -05:00
Tillmann Karras
d007711eb6 CMake: fix warning 2016-03-13 04:02:27 +00:00
Jeremy Newton
feae5ff3d8 Move linux files to Data 2016-03-09 10:58:54 -05:00
Mystro256
84483a1076 Add manpages for Linux and include them in spec file
Note that the manpages are placed in Data
2016-03-09 10:58:03 -05:00
Mystro256
2e367fb052 Add option to use shared gtest library if available 2016-03-05 11:54:17 -05:00
James Cowgill
8c19e80450 Replace the XPM desktop icon with an SVG
This PR installs an SVG icon to use as the main icon for dolphin in Linux
desktop environments (through the .desktop file) and removes the currently used
XPM icon. I've also added a 48x48 PNG for any desktops which don't support SVG
icons.

This has been the recommended way to ship application icons since forever
according to the Icon Theme Spec:
https://www.freedesktop.org/wiki/Specifications/icon-theme-spec/

This is also a prerequisite for dolphin appearing in the GNOME Software Centre
which does not support XPM icons.
2016-02-20 15:32:52 +00:00
Ryan Houdek
2f7e3ae58e CMakeLists cleanup and enable Android headless building. 2016-02-05 11:24:11 -06:00
Ryan Houdek
628e9bad92 Support a headless EGL option.
This is a new option to support completely headless running of Dolphin without X11 on systems that can properly support it.
2016-01-27 15:04:14 -06:00
Ryan Houdek
74478addeb Move Android JNI bits from DolphinWX to the Android folder. 2016-01-06 15:36:44 -06:00
Anthony Serna
82c72cf76b [UI] More DQt removals 2016-01-05 20:02:40 -06:00
spxtr
2f50560602 Add support for sending game memory changes to outside processes 2015-12-29 17:59:16 -08:00
spxtr
949f25175b DolphinQt2 2015-11-27 00:33:07 -08:00
Markus Wick
a498c684a2 Merge pull request #2304 from linkmauve/xdg-basedir
UICommon: Respect XDG Base Directory Specification on POSIX systems
2015-11-12 12:31:24 +01:00
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