diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index bae238de9d..fefcd27159 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -2285,7 +2285,7 @@ function(ExternalProject_Add_Step name step) if(environment) set(env_args "") foreach(env_mod IN LISTS environment) - if(env_mod MATCHES [[^([^=:]+)=([a-z]+):(.*)$]]) + if(env_mod MATCHES [[^([^=:]+)=([a-z_]+):(.*)$]]) set(_value "${CMAKE_MATCH_3}") # Replace the separator only in the value in case it is `:`. if(sep) diff --git a/Tests/RunCMake/ExternalProject/EnvVars.cmake b/Tests/RunCMake/ExternalProject/EnvVars.cmake index 7fc3cbcb3c..f34c3e4884 100644 --- a/Tests/RunCMake/ExternalProject/EnvVars.cmake +++ b/Tests/RunCMake/ExternalProject/EnvVars.cmake @@ -67,7 +67,7 @@ ExternalProject_Add(DefaultCommand CMAKE_ARGS -DVARIABLE=ConfigVar CONFIGURE_ENVIRONMENT_MODIFICATION - ConfigVar=set:config + ConfigVar=string_append:fig # RunCMakeTest.cmake sets to "con" ListVar=set:7,8,9 ListSeparator=set:, BUILD_ENVIRONMENT_MODIFICATION diff --git a/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake b/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake index 61862922a1..3848d77886 100644 --- a/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake @@ -261,6 +261,8 @@ if(GIT_EXECUTABLE) endif() set(RunCMake_TEST_OUTPUT_MERGE 1) +set(ENV{ConfigVar} "con") __ep_test_with_build(EnvVars) +unset(ENV{ConfigVar}) unset(RunCMake_TEST_OUTPUT_MERGE) run_cmake(InvalidEnvModification)