mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 13:27:45 -07:00
f91413db8f
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
20 lines
919 B
CMake
20 lines
919 B
CMake
find_program(CCACHE_BIN NAMES ccache sccache)
|
|
if(CCACHE_BIN)
|
|
# Official ccache recommendation is to set CMAKE_C(XX)_COMPILER_LAUNCHER
|
|
if (NOT CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache")
|
|
list(INSERT CMAKE_C_COMPILER_LAUNCHER 0 "${CCACHE_BIN}")
|
|
# ccache uses -I when compiling without preprocessor, which makes clang complain.
|
|
if("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -fcolor-diagnostics")
|
|
endif()
|
|
endif()
|
|
|
|
if (NOT CMAKE_CXX_COMPILER_LAUNCHER MATCHES "ccache")
|
|
list(INSERT CMAKE_CXX_COMPILER_LAUNCHER 0 "${CCACHE_BIN}")
|
|
# ccache uses -I when compiling without preprocessor, which makes clang complain.
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -fcolor-diagnostics")
|
|
endif()
|
|
endif()
|
|
endif()
|