812 Commits
Author SHA1 Message Date
Scott Mansell 94eceb35e8 Enable fallthrough warnings for msvc++ 2026-08-08 13:18:32 +12:00
OatmealDome e463c64b7a Merge pull request #14779 from phire/cmake_osx_sysroot
Make sure CMAKE_OSX_SYSROOT is set
2026-07-30 19:54:12 -04:00
Scott Mansell dbbe5c403e Make sure CMAKE_OSX_SYSROOT is set
Otherwise we can get some really weird build issues
2026-07-30 23:36:01 +12:00
Joshua Vandaële d5e3c2bcfc AboutDialog: Fix compilation with ENABLE_SDL=OFF 2026-07-29 21:27:06 +02:00
Joshua Vandaële 24361f49d1 CMake: Enforce minimum stdlib versions 2026-07-25 06:10:43 +02:00
Joshua Vandaële 13238340ae CMake: Enforce minimum toolset versions 2026-07-25 04:32:28 +02:00
Joshua Vandaële f98c974a0d CMake: Update compiler version checking
We now only show the minimum version of the compiler being used to build Dolphin instead of all supported compilers.
2026-07-25 04:32:28 +02:00
Joshua Vandaële c7b621ad08 CMake: Set VS startup project to dolphin-emu 2026-07-24 03:45:13 +02:00
Joshua Vandaële 8366609fc1 CMake: Error out if trying to build generic builds on Windows
Generic builds have never been supported on Windows.
2026-07-24 03:45:13 +02:00
Joshua Vandaële 808a82d5dd CMake: Bump minimum requirement to 3.25 2026-07-24 03:45:13 +02:00
Joshua Vandaële 6da4bc38e1 CMake: Unify output directory 2026-07-24 03:45:13 +02:00
Joshua Vandaële 3d9f46cd64 CMake: Remove LINUX_LOCAL_DEV and symlink required files 2026-07-24 03:45:13 +02:00
Joshua Vandaële fa2a250f01 CMake: Unify sys directories 2026-07-24 03:45:13 +02:00
Joshua Vandaële 20bded8066 CMake: PDBs outside of Binaries 2026-07-24 03:45:13 +02:00
Scott Mansell fd8391a852 Merge pull request #14263 from JoshuaVandaele/ccache-toggle
CCache: Set as opt-in by default
2026-07-15 17:48:30 +12:00
Tom Pratt 6825a4a954 Enable USE_UPNP in android builds
The UI already exists in the Android netplay menu so just need to enable it in the build.
2026-07-01 15:59:46 +02:00
Joshua Vandaële 8200d93199 CMakeLists: Remove redundant clang version check
The minimum clang version is currently 15
2026-06-23 22:45:26 +02:00
JosJuice 606bcbe3ed CMakeLists: Enable mGBA on Android 2026-03-31 23:40:54 -05:00
OatmealDome a28fff3f00 Merge pull request #14224 from JoshuaVandaele/windows-mz-ng-fix
Externals: Fix clashing dependencies
2026-03-15 12:27:02 -04:00
Joshua Vandaële c6411a2952 SDL: Use bundled LibUSB when desirable
Previously, SDL would `find_package(libusb)` which would actually overwrite the user preference in the case where both USE_SYSTEM_LIBUSB and USE_SYSTEM_SDL were OFF. This coincidentally also allows SDL to use libusb on Windows.
2026-02-25 07:26:10 +01:00
Joshua Vandaële 3cea68c2e5 LibUSB: Improve library detection
Our FindLibUSB.cmake was previously entirely unused unless SDL was being built from Externals, we now rely on it again. It will use PkgConfig if applicable or fall back to looking around on the system, and more importantly it will always create an imported target.
2026-02-25 07:25:29 +01:00
Joshua Vandaële 4af06fd487 minizip-ng: Properly use libraries from Externals
This also fixes the CMake build on Windows, since it would fail to find our target defined in Externals and would fall back to trying to redefine it, which produces an error.
2026-02-25 07:25:29 +01:00
JosJuice 36f45dce44 Move RangeSet from Externals to Common
This is a very small libary, and as I understand it, it was more or less
developed for Dolphin.

This moves the two relevant files from Externals to Common, changes the
namespace to Common, reformats the code, and adds Dolphin copyright
notices. The change in copyright notice and license was approved by
AdmiralCurtiss.
2026-02-23 22:55:38 +01:00
OatmealDome 164110d370 Merge pull request #14036 from TellowKrinkle/SkipPostprocess
CMake: Default SKIP_POSTPROCESS_BUNDLE to ON
2026-01-25 22:01:29 -05:00
OatmealDome 74ff1f76c5 Merge pull request #14299 from SuperSamus/cmake-ipo-modern
CMakeLists: Use `CMAKE_INTERPROCEDURAL_OPTIMIZATION` for LTO
2026-01-25 22:00:14 -05:00
Dentomologist 1b6a45df69 Merge pull request #14214 from JoshuaVandaele/cmake-nonbreaking-improvements
CMake: Various improvements
2026-01-25 18:33:46 -08:00
Martino Fontana eec35a214d CMakeLists: Use CMAKE_INTERPROCEDURAL_OPTIMIZATION for LTO
Just a simple modernization. LTO is still disabled by default.
2026-01-23 17:56:06 +01:00
Joshua Vandaële 67f27cb0ef Make WIL a submodule and update it 2026-01-21 19:51:45 +01:00
Joshua Vandaële e822cc3715 c++23: Replace Common::Unreachable with std::unreachable
Requires at least GCC 12, Clang 15, MSVC 19.32, or AppleClang 14.0.3.
2026-01-17 23:53:21 +01:00
iwubcode b556bd99d7 Merge pull request #14268 from JoshuaVandaele/std-tounderlying
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-17 16:49:57 -06:00
JMC47 79a4034aa0 Merge pull request #14251 from JoshuaVandaele/cmake-editorconfig
.editorconfig: Update CMake style
2026-01-11 16:28:03 -05:00
JMC47 823d111922 Merge pull request #14255 from JoshuaVandaele/bsd-fix
cpp-ipc: Fix builds on non-FreeBSD BSDs
2026-01-11 16:27:29 -05:00
Joshua Vandaële 55f0715ad4 c++23: Replace Common::ToUnderlying with std::to_underlying
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
2026-01-09 23:49:10 +01:00
Joshua Vandaële 271a140715 CCache: Set as opt-in by default 2026-01-09 17:49:51 +01:00
Dentomologist ba32260c29 Set CMake version range to 3.20...4.2.1
CMake support for c++23 was added in 3.20.

Remove statements explicitly setting the following policies to NEW.
These policies were introduced in or before 3.20, and now that 3.20 is
the minimum version they will automatically have the NEW behavior.

Policy:  Introduced in
CMP0079: 3.13
CMP0084: 3.14
CMP0091: 3.15
CMP0092: 3.15
CMP0099: 3.17
CMP0117: 3.20

Disable scanning c++ source files for module imports (introduced as
CMP0155 in 3.28) since we don't use modules and that policy triggers
build errors with Clang if the clang-scan-deps tool isn't installed.
2026-01-06 14:44:20 -08:00
Joshua Vandaële 2005b0365e cpp-ipc: Fix builds on non-FreeBSD BSDs
cpp-ipc is explicitely only available on Windows, Linux, QNX, and FreeBSD. Trying to build dolphin on any another BSD such as OpenBSD or Haiku currently leads to failure because of this.
2026-01-06 21:46:33 +01:00
Joshua Vandaële 7f6bf67182 CMake: Apply editorconfig formatting 2026-01-04 12:59:56 +01:00
Jordan Woyak d84dd20991 Merge pull request #14208 from cristian64/broadband_adapter_ipc_freebsd
Core/HW: Enable BBA (IPC) in FreeBSD.
2025-12-30 17:59:59 -06:00
Joshua Vandaële ee8a27d13c CMake: Better architecture detection 2025-12-11 04:23:04 +01:00
Joshua Vandaële da22171c80 Build: Remove license.txt
Follow up to #10039 and #9862
2025-12-11 04:23:00 +01:00
cristian64 bd6ea9a9a1 Core/HW: Enable BBA (IPC) in FreeBSD.
Since v1.4.0, cpp-ipc now supports FreeBSD. This was a limitation that
prevented us from enabling compilation on FreeBSD in #13870.

Full changelog: https://github.com/mutouyun/cpp-ipc/releases/tag/v1.4.0
2025-12-10 21:26:43 +00:00
Joshua Vandaële 025ff87a27 Use minizip-ng's CMakeLists instead of relying on our own implementation
This is a carry over from back when we used `minizip` and had our own CMakeLists for it.
2025-11-27 00:18:31 +01:00
Jordan WoyakandJoshua Vandaële 6d5e8b9ed8 Externals: Update mGBA to latest master.
Co-authored-by: Joshua Vandaële <[email protected]>
2025-11-13 17:03:31 -06:00
TellowKrinkle 1804608d2f CMake: Switch from SKIP_POSTPROCESS_BUNDLE to POSTPROCESS_BUNDLE 2025-11-09 22:35:16 -06:00
TellowKrinkle 143fac254e CMake: Allow both glslang 15 and 16 2025-11-08 02:32:47 -06:00
Jordan Woyak 1e144a7cfd CMakeLists: Fix build on Linux with CMake versions less than 3.25. 2025-11-06 02:41:55 -06:00
JosJuice 828e72d604 Merge pull request #14034 from JoshuaVandaele/byeprofile
JitRegister: Remove OProfile profiler
2025-11-01 10:05:11 +01:00
cristian64 a74e736d29 Core/HW: Add cpp-ipc subdirectory in main CMake file. 2025-10-28 18:50:58 +00:00
TellowKrinkle a1bdc40245 CMake: Default SKIP_POSTPROCESS_BUNDLE to ON
Most users do not need it
2025-10-26 23:24:45 -05:00
Joshua Vandaële 713dfb41df JitRegister: Remove OProfile profiler
OProfile is not used at all these days, most major distributions do not ship it anymore (Debian, Fedora, and Alpine to name the few I've checked) and following a discussion on Discord, nobody is apparently using it, most devs not even being aware of it. This removes an optional dependency from Dolphin.
2025-10-26 20:48:15 +01:00