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