summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@gmail.com>2019-08-30 14:21:19 (GMT)
committerCristian Adam <cristian.adam@gmail.com>2019-09-17 09:58:38 (GMT)
commit729d997f1073c7a177da5b46b073a08b95adfa74 (patch)
tree0b419aebe0dcb8a30686861954c4e8515d448a1d /Modules
parent1ac4e0ef1b29affc9e4f2cd86c4fc8c2252f2ab2 (diff)
downloadCMake-729d997f1073c7a177da5b46b073a08b95adfa74.zip
CMake-729d997f1073c7a177da5b46b073a08b95adfa74.tar.gz
CMake-729d997f1073c7a177da5b46b073a08b95adfa74.tar.bz2
Precompile Headers: Add REUSE_FROM signature
Add the ability to share precompiled headers artifacts between targets. Fixes: #19659
Diffstat (limited to 'Modules')
-rw-r--r--Modules/Platform/Windows-MSVC.cmake13
1 files changed, 10 insertions, 3 deletions
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 6ddcaa3..34f5d03 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -333,10 +333,17 @@ macro(__windows_compiler_msvc lang)
set(CMAKE_LINK_PCH ON)
if(MSVC_VERSION GREATER_EQUAL 1910)
# VS 2017 or greater
- set(CMAKE_PCH_PROLOGUE "#pragma system_header")
+ if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
+ set(CMAKE_PCH_PROLOGUE "#pragma system_header")
+ else()
+ set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
+ endif()
+ endif()
+ if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
+ set(CMAKE_PCH_COPY_COMPILE_PDB ON)
endif()
- set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH /Yu<PCH_HEADER> /FI<PCH_HEADER>)
- set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH /Yc<PCH_HEADER> /FI<PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH /Yu<PCH_HEADER> /Fp<PCH_FILE> /FI<PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH /Yc<PCH_HEADER> /Fp<PCH_FILE> /FI<PCH_HEADER>)
if("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC")
set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)