Merge topic 'ExternalProject-env-mod'

8afe5f227c ExternalProject: Fix environment modification ops named with underscores

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11442
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index bae238d..fefcd27 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -2285,7 +2285,7 @@
   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 7fc3cbc..f34c3e4 100644
--- a/Tests/RunCMake/ExternalProject/EnvVars.cmake
+++ b/Tests/RunCMake/ExternalProject/EnvVars.cmake
@@ -67,7 +67,7 @@
   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 6186292..3848d77 100644
--- a/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake
+++ b/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake
@@ -261,6 +261,8 @@
 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)