diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 701e5fb4f7..c7948cddfa 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -1669,6 +1669,7 @@ function(_ep_set_directories name) ${script_filename} @ONLY ) + unset(cfgdir) # do not leak into mkdirs.cmake script include(${script_filename}) endfunction() @@ -2624,11 +2625,12 @@ endfunction() function(_ep_add_mkdir_command name) ExternalProject_Get_Property(${name} tmp_dir) set(script_filename "${tmp_dir}/${name}-mkdirs.cmake") + _ep_get_configuration_subdir_genex(cfgdir) ExternalProject_Add_Step(${name} mkdir INDEPENDENT TRUE COMMENT "Creating directories for '${name}'" - COMMAND ${CMAKE_COMMAND} -P ${script_filename} + COMMAND ${CMAKE_COMMAND} -Dcfgdir=${cfgdir} -P ${script_filename} ) endfunction() diff --git a/Modules/ExternalProject/mkdirs.cmake.in b/Modules/ExternalProject/mkdirs.cmake.in index d30a2e7b69..bb835cf4cb 100644 --- a/Modules/ExternalProject/mkdirs.cmake.in +++ b/Modules/ExternalProject/mkdirs.cmake.in @@ -17,3 +17,6 @@ set(configSubDirs @CMAKE_CONFIGURATION_TYPES@) foreach(subDir IN LISTS configSubDirs) file(MAKE_DIRECTORY "@stamp_dir@/${subDir}") endforeach() +if(cfgdir) + file(MAKE_DIRECTORY "@stamp_dir@${cfgdir}") # cfgdir has leading slash +endif()