Commit Graph

733 Commits

Author SHA1 Message Date
Reilly Brogan
b06b816d4c
cmake: Fix building with system minizip-ng
Dolphin currently fails to build when the Linux system building it includes headers/pkgconfigs for minizip-ng built in both minizip-ng mode and legacy compat mode (the minizip API).

This is because minizip-ng is checked for in cmake however the code is not actually compatible against minizip-ng built in non-legacy mode. Until that is rectified Dolphin should just check for a pkgconfig for minizip. If the system has a pkgconfig for minizip with a version >= 4 then the system package is minizip-ng built in compat mode which is exactly what we want.
2024-07-02 13:15:11 -05:00
OatmealDome
c3e0aeb184
Merge pull request #12728 from OatmealDome/mac-version-numbers-2
ScmRevGen: Generate Info.plist files containing the current version
2024-05-30 01:13:32 -04:00
Tilka
8167a046ef
Merge pull request #12793 from Pokechu22/minimum-compilers-for-bitcast
CMake: update required compiler versions for std::bitcast support
2024-05-25 23:23:58 +01:00
Admiral H. Curtiss
c8ea116658
Merge pull request #12768 from guijan/fmt-pc
use pkg-config to find libfmt
2024-05-21 22:36:56 +02:00
Admiral H. Curtiss
2ba6093b30
Merge pull request #12767 from guijan/libusb-pc
use pkg-config to find libusb
2024-05-21 22:36:45 +02:00
Admiral H. Curtiss
35ee08ba9f
Merge pull request #12736 from mitaclaw/minizip-ng-update
Externals: Update minizip-ng to 4.0.5 and convert to submodule
2024-05-21 22:21:56 +02:00
Pokechu22
e98a0859b9 CMake: update required compiler versions for std::bitcast support
This is based on https://en.cppreference.com/w/cpp/compiler_support. I'm not actually entirely sure what the needed Xcode version is.
2024-05-20 22:13:43 -07:00
Guilherme Janczak
cd25e91ca2
use pkg_search_module to find minizip-ng or minizip
OpenBSD calls minizip-ng's .pc file minizip.pc
Others call   minizip-ng's .pc file minizip-ng.pc
2024-05-07 04:25:04 +00:00
Guilherme Janczak
d619307a6d
use pkg-config to find libfmt
This allows using the system libfmt on OpenBSD and NetBSD.
Unfortunately, the system libfmt is too old on OpenBSD at the moment,
and Dolphin doesn't currently compile on NetBSD for other reasons.
2024-05-06 19:33:37 +00:00
Guilherme Janczak
c1e6316bdc
use pkg-config to find libusb
This makes more (but not all) of the compilation process succeed on
NetBSD.
2024-05-06 17:44:32 +00:00
mitaclaw
ba462578ac Externals: Update minizip-ng to 4.0.5
Also update unzLocateFile to the minizip-ng 4.0.4+ signature and document new unused files.
2024-05-03 12:43:55 -07:00
mitaclaw
0acdd404e3 Externals: Convert minizip-ng To Submodule
Due to an oversight in our CMakeLists, pkg-config would attempt to find *minizip* 3.0.0 (which doesn't exist) instead of *minizip-ng* 3.0.0, or at least it was on my Manjaro Linux machine. This has been fixed. The new submodule is using minizip-ng 3.0.4, the same version that was being used before.
2024-05-03 12:43:33 -07:00
mitaclaw
6bee21e272 Revert "Externals: minizip-ng Forward Compatibility"
This reverts commit 0a48a3b3ad.
2024-05-03 12:41:53 -07:00
Guilherme Janczak
0859d2c472
improve NetBSD-specific code
NetBSD doesn't put packages in /usr/local like /CMakeLists.txt thought.
The `#ifdef __NetBSD__` around iconv was actually breaking compilation
on NetBSD when using the system libiconv (there's also a GNU iconv
package)
A C program included from C++ source broke on NetBSD specifically, work
around it.

This doesn't fix compilation on NetBSD, which is currently broken, but
is closer to correct.
2024-05-03 15:12:29 +00:00
Guilherme Janczak
50dc0ffbce
port to OpenBSD 2024-04-22 20:50:47 +00:00
OatmealDome
c154134e28 ScmRevGen: Generate Info.plist for MacUpdater 2024-04-21 13:28:21 -04:00
OatmealDome
3ad1037d7f ScmRevGen: Generate Info.plist for DolphinQt 2024-04-21 13:28:21 -04:00
mitaclaw
0a48a3b3ad Externals: minizip-ng Forward Compatibility 2024-04-21 09:38:53 -07:00
Jesse Talavera
a84dc3123e Use CMAKE_CURRENT_SOURCE_DIR for the CMake module path 2024-02-20 08:09:06 -05:00
Jesse Talavera
edaafaae2f Have dolphin_scmrev run ScmRevGen from CMAKE_CURRENT_SOURCE_DIR 2024-02-19 11:41:01 -05:00
Jesse Talavera
acb18a58cf Make the path given to CMAKE_USER_MAKE_RULES_OVERRIDE absolute 2024-02-17 20:36:17 -05:00
iwubcode
ecfcae8718 Externals: add tinygltf, a library used to load or save GLTF mesh files 2024-02-11 13:26:39 -06:00
Martino Fontana
7baedc3ec4 CMake: Enable SDL on Linux by default 2024-01-13 16:10:28 +01:00
Martino Fontana
51e05f468a SDL: Add GameController API, cleanup 2024-01-13 16:10:25 +01:00
Tillmann Karras
6a0b17f8fe CMake: update required enet version
Dolphin now relies on ENET_SOCKOPT_TTL which was merged upstream but not
released yet. This fix assumes that enet continues its current
versioning scheme.
2023-12-01 14:13:07 +00:00
Zopolis4
f0d2ce4683
Remove _M_X86 in favour of _M_X86_64 2023-11-28 23:03:20 +11:00
Tillmann Karras
2b9aee5c8f CMake: allow using system xxhash 2023-11-27 06:02:39 +00:00
sowens99
69ec239a1f Add lz4 submodule 2023-10-02 17:28:23 -04:00
rsgnz
1a9d946a33
Require system fmt >= 10.1 2023-09-24 15:46:39 +02:00
Martino Fontana
c43c9101c0 CMake: use version flags if Git isn't found 2023-08-14 11:27:39 +02:00
Jeremy Newton
6dad8f8372 Allow shared zlib-ng 2023-07-14 09:29:04 -04:00
Admiral H. Curtiss
fa81006b51
Merge pull request #11955 from TellowKrinkle/CMakeDependencies
CMake: Allow ignoring system packages
2023-06-30 19:06:04 +02:00
Admiral H. Curtiss
2a6f4d879c
CMake: Generate scmrev.h at build time instead of configure time. 2023-06-29 03:23:31 +02:00
Jordi Mallach
51d4eea7c5 Allow building against system gtest 2023-06-15 10:32:05 +02:00
TellowKrinkle
ade40650f5 CMake: Support using bundled libraries even if system libraries exist 2023-06-15 01:41:41 -05:00
TellowKrinkle
5b10a80401 CMake: Use targets for all optionally-external dependencies 2023-06-15 01:41:41 -05:00
OatmealDome
1a0a1e8f12
Merge pull request #10976 from TellowKrinkle/StackFrames
Improve stack frames for profilers
2023-06-12 05:00:08 +02:00
Robin Kertels
23bebc5270
VideoBackends:Vulkan: Allow loading custom drivers on Android
... using libadrenotools
2023-06-11 13:52:34 +02:00
Admiral H. Curtiss
86f1ef1e33
Merge pull request #11707 from TellowKrinkle/CMakeIconv
CMake: Use find_package and imported targets for Iconv
2023-05-19 19:27:16 +02:00
Admiral H. Curtiss
b514df1227
Merge pull request #10969 from phire/minimum_compilers
Enforce minimum supported versions of GCC and Clang
2023-05-01 03:03:05 +02:00
Pierre Bourdon
af52b5a2d9
Merge pull request #11710 from TellowKrinkle/SDL2Framework
CMake: Fix building against macOS framework builds of SDL
2023-04-11 04:30:17 +02:00
TellowKrinkle
b9595a2230 CMake: Use find_package and imported targets for Iconv
Fixes us forgetting to add its include directories, which could result in linking to a dylib from MacPorts while using the system's header, and failing to link because they use different function names
2023-04-08 21:43:03 -05:00
Pokechu22
969d5e0fbe CMake: Don't include SPIRV-Cross except on Windows and macOS
Building it on Linux is unnecessary as Direct3D and Metal are unavailable.
2023-04-06 18:37:50 -07:00
LillyJadeKatrin
f3114b59f4 Added USE_RETRO_ACHIEVEMENTS compiler flag
Added a flag to VS and CMake for enabling RetroAchievements integration.
2023-04-02 08:28:25 -04:00
LillyJadeKatrin
2836feac71 Added rcheevos to Externals
Adds the rcheevos library from RetroAchievements to the Dolphin Externals as a submodule. Change was verified to import correctly and build both via Visual Studio and via cmake ninja.
2023-04-02 08:28:23 -04:00
TellowKrinkle
38b8547055 CMake: Enable CMP0099
Allows INTERFACE_LINK_OPTIONS to propagate through private dependencies, required by MacOS framework builds of SDL2
2023-03-30 21:16:27 -05:00
Shawn Hoffman
5bf9ad7d82 msvc: enable compiler checks added in vs 17.5 2023-03-04 14:18:18 -08:00
Scott Mansell
a306da2f80 Bump requried Clang to 12 (AppleClang 13.0.0) 2023-02-23 15:27:57 +13:00
Scott Mansell
f34a09b39f Enforce minimum supported versions of GCC and Clang
We already have a minimum required version of MSVC
2023-02-23 15:18:38 +13:00
JosJuice
90b676d368 Android: Fix armeabi-v7a build
This very much isn't a build configuration that we're going to ship,
but I want to be able to tell people that they can build it on their
own if they really want to see how terribly it performs :)

Just like before, you'll need to edit two lines in app/build.gradle to
define ENABLE_GENERIC=ON and actually enable armeabi-v7a if you want an
armeabi-v7a build. This commit just fixes some compilations errors that
crop up if you do so.
2023-02-17 16:58:24 +01:00