mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
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
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user