diff options
author | Brad King <brad.king@kitware.com> | 2022-06-21 20:11:48 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-06-21 22:26:22 (GMT) |
commit | 7b622f3e806d6e655aab10de87dff7be201cd1c4 (patch) | |
tree | 48452a4de956cdea24b91e3192080b2e48058010 | |
parent | 27874273061fa74d3bcc860769fb1eae42eba0fe (diff) | |
download | CMake-7b622f3e806d6e655aab10de87dff7be201cd1c4.zip CMake-7b622f3e806d6e655aab10de87dff7be201cd1c4.tar.gz CMake-7b622f3e806d6e655aab10de87dff7be201cd1c4.tar.bz2 |
ExternalProject: Fix regression in stamp creation for Xcode+iOS
The change to `_ep_add_mkdir_command` in commit 5fbac2bb24
(ExternalProject: Move inline scripts to separate files, 2022-01-22,
v3.23.0-rc1~101^2) did not account for the possibility that
`CMAKE_CFG_INTDIR` is `$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`
instead of just the configuration name. Pass the value into the helper
script on the command line so that the native buildsystem placeholders
are evaluated.
Fixes: #23645
-rw-r--r-- | Modules/ExternalProject.cmake | 4 | ||||
-rw-r--r-- | Modules/ExternalProject/mkdirs.cmake.in | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 701e5fb..c7948cd 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 d30a2e7..bb835cf 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() |