From a4605973ff116d11ca96c7b06aa6516bd638429a Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 23 Jan 2015 13:28:49 -0500 Subject: [PATCH] ExternalProject: Allow ALWAYS step property to be switched (#15368) Within an existing build tree, if the stamp for a step already exists when one activates the ALWAYS option, we still want it to always build. Remove the step stamp file during CMake configuration to ensure it does not exist when the ALWAYS option is enabled. --- Modules/ExternalProject.cmake | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 52d41eb19..74e8ae27f 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -1456,6 +1456,15 @@ function(ExternalProject_Add_Step name step) if(always) set_property(SOURCE ${stamp_file} PROPERTY SYMBOLIC 1) set(touch) + # Remove any existing stamp in case the option changed in an existing tree. + if(CMAKE_CONFIGURATION_TYPES) + foreach(cfg ${CMAKE_CONFIGURATION_TYPES}) + string(REPLACE "/${CMAKE_CFG_INTDIR}" "/${cfg}" stamp_file_config "${stamp_file}") + file(REMOVE ${stamp_file_config}) + endforeach() + else() + file(REMOVE ${stamp_file}) + endif() else() set(touch ${CMAKE_COMMAND} -E touch ${stamp_file}) endif()