From 712b078a5bb361aa294bb4fb8ea4e022f07d746b Mon Sep 17 00:00:00 2001 From: Florent Castelli Date: Thu, 15 Jun 2017 18:23:30 +0200 Subject: [PATCH 1/2] cmake: Search for sccache too in CCache module sccache is a ccache rewrite that supports GCC, Clang and MSVC. --- CMake/CCache.cmake | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMake/CCache.cmake b/CMake/CCache.cmake index 9388b0a28f..775256cd3b 100644 --- a/CMake/CCache.cmake +++ b/CMake/CCache.cmake @@ -1,7 +1,6 @@ -find_program(CCACHE_BIN ccache) +find_program(CCACHE_BIN NAMES ccache sccache) if(CCACHE_BIN) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_BIN}) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_BIN}) # ccache uses -I when compiling without preprocessor, which makes clang complain. if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") From 6910fab63f571750a18d707bb3c26f3e08bce069 Mon Sep 17 00:00:00 2001 From: Florent Castelli Date: Thu, 15 Jun 2017 18:24:41 +0200 Subject: [PATCH 2/2] cmake: Replace /Zi with /Z7 for sccache support Also allows better parallelization since there's no contention on a PDB file with compiling. --- CMake/FlagsOverride.cmake | 7 +++++++ CMakeLists.txt | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 CMake/FlagsOverride.cmake diff --git a/CMake/FlagsOverride.cmake b/CMake/FlagsOverride.cmake new file mode 100644 index 0000000000..39c55aa62a --- /dev/null +++ b/CMake/FlagsOverride.cmake @@ -0,0 +1,7 @@ +if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + foreach(f CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RELWITHDEBINFO) + if("${${f}}" MATCHES "/Zi") + string(REGEX REPLACE "/Zi" "/Z7" "${f}" "${${f}}") + endif() + endforeach() +endif() \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index dfccece1d5..2ce7c445b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,8 @@ set(CMAKE_OSX_ARCHITECTURES "x86_64") # handle configuration options set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12.0" CACHE STRING "") +set(CMAKE_USER_MAKE_RULES_OVERRIDE "CMake/FlagsOverride.cmake") + project(dolphin-emu) # Name of the Dolphin distributor. If you redistribute Dolphin builds (forks,