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