Commit Graph

53 Commits

Author SHA1 Message Date
Neui a1c54063d0 CMake: CCache: Always make clang happy
When we are using ccache anyway, always add the flags to make clang
happy. Also, fix copy-paste error regarding what variable to modify for
it.
2024-06-10 23:44:46 +02:00
Neui f91413db8f CMake: Fix CCache support when already using _LAUNCHER
The official ccache documentation[1] recommends to set
`CMAKE_C(XX)_COMPILER_LAUNCHER` to ccache to enable ccache.
These also work as envionment variables (supported by CMake itself).
However, using these instructions generates the following error during
building:

    ccache: error: Recursive invocation (the name of the ccache binary must be "ccache")

This is because Dolphin adds an additional command ccache layer (ccache
ccache compiler ...).

This fixes that issue by checking for `CMAKE_C(XX)_COMPILER_LAUNCHER`
before inserting our own. Also, use `CMAKE_C(XX)_COMPILER_LAUNCHER`
to add ccache because the CMake docs discourages the use of
`RULE_LAUNCH_COMPILE` in favour of `CMAKE_C(XX)_COMPILER_LAUNCHER`.

[1]: https://github.com/ccache/ccache/wiki/CMake
2024-06-08 16:05:14 +02: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
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
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
OatmealDome 1cb6ce6057 ScmRevGen: Refactor file configuration into a function 2024-04-21 13:28:18 -04:00
Jordan Woyak 02f57a4778 Replace SCM_IS_MASTER with SCM_COMMITS_AHEAD_MASTER 2024-03-23 16:48:52 -05:00
Jordan Woyak 25833cfd62 CMake: Hide warnings in Externals also for non-msvc. 2024-03-19 01:12:52 -05: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
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
Admiral H. Curtiss 2a9616d0a2
Fix lingering CMAKE_REQUIRED_INCLUDES variable from FindMBEDTLS, this breaks any further can-compile checks. 2023-06-06 19:09:31 +02:00
Alexandre Bouvier 4d61ec1f4f
CMake: Fix build with system Mbed TLS 2023-05-26 01:59:51 +00: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
TellowKrinkle eb6bf08170 CMake: Add custom FindIconv
Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/24695
2023-04-08 21:43:03 -05:00
TellowKrinkle 0d4a5274f1 CMake: Remove custom SDL2 find script
It doesn't properly set the include paths for macos framework builds of SDL, and SDL has had its own find script since 2.0.10
2023-03-30 21:17:10 -05:00
Valeri 6aafbaf66f
Fix build when using mGBA in unorthodox location
Includes use `mgba/` and `mgba-util/` as part of path, making compilation fail when relying on include directory supplied here was actually needed.
2023-02-14 22:24:02 +03:00
Admiral H. Curtiss 1eb69ea0a0
Merge pull request #10936 from TellowKrinkle/FixIncludeDirs
CMake: Actually use the include directories specified by dependencies
2023-01-30 09:19:06 +01:00
Maxime Gauduin afde3a0e0d try for system libmgba first 2022-12-22 19:18:07 +01:00
Shawn Hoffman 717c36bc43 WinUpdater: Check OS and VC++ Redist versions. 2022-09-20 15:57:50 -07:00
TellowKrinkle 1bc133f3ae CMake: Properly include lzma include directories 2022-08-18 21:06:57 -05:00
TellowKrinkle 048f6fac52 CMake: Properly include zstd include directories 2022-08-18 21:06:57 -05:00
TellowKrinkle b5da4e9d48 CMake: Don't omit frame pointer on RelWithDebInfo builds 2022-08-10 23:48:56 -05:00
Admiral H. Curtiss 6ea7af13e8
cmake: Disable warnings for most externals on MSVC, like we do in the VS project files. 2022-05-22 00:30:56 +02:00
Admiral H. Curtiss a5e85627b0
cmake: Use Policy CMP0117 for more sensible RTTI flag configuration on MSVC. 2022-05-22 00:30:56 +02:00
OatmealDome d8a5a8827e Externals: Update mbedtls to 2.28.0 2022-04-02 19:30:22 -04:00
Léo Lam d0484a9ea9
CMake: Fix MSVC flags for Release/RelWithDebInfo
See https://gitlab.kitware.com/cmake/cmake/-/issues/20812

Manually redefine MSVC flags to match Visual Studio defaults
and ensure that Release builds generate debug info.
2021-04-27 12:54:18 +02:00
Florent Castelli 6910fab63f
cmake: Replace /Zi with /Z7 for sccache support
Also allows better parallelization since there's no contention on a PDB
file with compiling.
2021-04-24 17:59:34 +02:00
Florent Castelli 712b078a5b
cmake: Search for sccache too in CCache module
sccache is a ccache rewrite that supports GCC, Clang and MSVC.
2021-04-24 17:59:34 +02:00
Norbert Lange 439e2e3fc2 Stricter test for compiler flags
Some flags do nothing but generate dozens of warnings later,
add '-Werror' during testing to catch those early.

Main culprit is '-fvisibility-inlines-hidden' which is invalid for C files
2021-02-22 10:47:12 +01:00
orbea 2bfbc4d79f cmake: Silence warnings. 2020-09-08 21:18:40 -07:00
Pierre Bourdon 143131a6a1
cmake: add an option to control dependencies vendoring
Disable by default, to be used by distributions who care to try and
prefer system-wide libraries when available. It makes sense for us to
keep using vendored libs by default when possible to make it easier for
users to compile, but we should provide appropriate tools for distro to
figure out which dependencies they can share with the rest of the
system.
2020-05-10 09:34:14 +02:00
Tellow Krinkle f04f5fe930 Match path type to BundleUtilities when running fixup_bundle
BundleUtilities uses `ABSOLUTE`, and if you use `REALPATH` (which removes symlinks) and compile from a path that contains symlinks, BundleUtilities will complain about things not being inside the main app bundle because some paths don't match
2020-03-29 20:04:03 -05:00
Stenzek c95802afeb CMake: Make X11 and EGL optional 2018-10-20 21:11:34 +10:00
orbea 227807df36 cmake: Support system cubeb builds. 2018-08-08 07:36:19 -07:00
Rémi Verschelde d37ccc844e CMake: Fix case in FindPugixml resulting in false negative
As mentioned in GH-6652.
2018-05-30 09:12:24 +02:00
Léo Lam f4ec261719 CMake: Use system-wide pugixml if available
Makes it possible to use a system-wide pugixml instead of always
using Externals. This is nicer for distro packagers.
2018-04-15 18:57:39 +02:00
Lioncash b31281527a
CMakeLists: Define an OProfile target and use it
Allows us to bring includes and relevant libraries into scope by explicitly declaring linkage against the target
as opposed to using a variable. Also removes the dumping of OProfile includes into the top-level directory.
2018-04-13 19:35:17 -04:00
Pierre Bourdon f221fac02e cmake: check for optional libsystemd presence 2018-03-08 06:00:40 +00:00
Ryan Meredith 1f226ec14f Update Readme.md and various fixes 2017-12-20 10:54:51 +01:00
Michael M 26f5d500b9 FindMiniupnpc: expose imported library target 2017-08-17 13:15:02 -07:00
Michael Maltese 9dfd8bbf38 CMake: fix FindFFmpeg when ffmpeg isn't found 2017-05-26 00:53:58 -07:00
Michael Maltese d951d2e4c4 CMake: libav/ffmpeg cleanups
Use @Orphis's FindFFmpeg module from ppsspp:
2149d3db7f

From that commit:

> This new module should be able to handle both libraries in the regular
> paths and fallback to pkg-config.
> It is also able to find dynamic libraries, not just static libraries.
> It will generate imported targets with the name FFmpeg::<lib> that you
> can use in your scripts.
2017-05-26 00:53:58 -07:00
Michael Maltese 655ab9b4e2 CMake: clean up HIDAPI build 2017-04-27 02:41:00 -07:00
Michael Maltese af63235dc4 Remove libao sound backend
A single person uses it[0], and it sometimes messes up the Linux
buildbots ("ninja: error: 'ao', needed by 'Binaries/dolphin-emu', missing
and no known rule to make it").

[0]: https://analytics.dolphin-emu.org/stats/popular-audio-backends.txt
2017-03-31 14:59:57 -07:00
Florent Castelli d2119d35fb cmake: Find bundled ffmpeg even if you have pkg-config on Win32 2017-03-10 14:45:52 +01:00
Florent Castelli 5514680bc8 cmake: Fix typo in dolphin_compile_definitions 2017-03-08 06:47:00 +01:00