diff options
| author | Shauren <shauren.trinity@gmail.com> | 2019-06-02 21:09:53 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2019-06-02 21:09:53 +0200 |
| commit | 9b1dfe5e5e968c6ee3a2682ae2106735daeccbd7 (patch) | |
| tree | 07cd6089adc7a636eca20f7677e30e0f614eee7d | |
| parent | 345133d75ea72b5361835e25fd4b10a8ae4fe3da (diff) | |
Build: Fixed VS always triggering a full build when PCH is enabled, even if only a source file was edited
| -rw-r--r-- | dep/cotire/CMake/cotire.cmake | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/dep/cotire/CMake/cotire.cmake b/dep/cotire/CMake/cotire.cmake index 62cd23db987..b2c2d391142 100644 --- a/dep/cotire/CMake/cotire.cmake +++ b/dep/cotire/CMake/cotire.cmake @@ -2867,8 +2867,18 @@ function (cotire_process_target_language _language _configurations _target _whol # check for user provided prefix header files get_property(_prefixHeaderFiles TARGET ${_target} PROPERTY COTIRE_${_language}_PREFIX_HEADER_INIT) if (_prefixHeaderFiles) - cotire_setup_prefix_generation_from_provided_command( - ${_language} ${_target} "${_targetConfigScript}" "${_prefixFile}" _cmds ${_prefixHeaderFiles}) + list (LENGTH _prefixHeaderFiles _numberOfprefixHeaderFiles) + # if there is only one header specified in COTIRE_${_language}_PREFIX_HEADER_INIT then use it directly + # this works around a bug/change that causes Visual Studio to always rebuild entire project + # even if only one source file changed + # custom commands in cmake are designed to be always "out of date" so generation always happens + # Visual Studio determines "out of date" status by last modification timestamp, not content + if (_numberOfprefixHeaderFiles GREATER 1) + cotire_setup_prefix_generation_from_provided_command( + ${_language} ${_target} "${_targetConfigScript}" "${_prefixFile}" _cmds ${_prefixHeaderFiles}) + else() + list (GET _prefixHeaderFiles 0 _prefixFile) + endif() else() cotire_setup_prefix_generation_from_unity_command( ${_language} ${_target} "${_targetConfigScript}" "${_prefixFile}" "${_unityFile}" _cmds ${_unitySourceFiles}) |
