@@ -413,36 +413,28 @@ set func_cmake "function\\\(module\\\)
413413\\s*foreach\\\(_mlv \\\${_mlv_list}\\\)
414414\\s*if\\\(\\\${_mlv} MATCHES \"\\\^\\\[A-Za-z_\\\]\\\[A-Za-z0-9_\\\]\\\*\\\$\"\\\)
415415\\s*if\\\(DEFINED ENV{\\\${_mlv}}\\\)
416- \\s*set\\\(_mlre \"\\\${_mlre}__MODULES_QUAR_\\\${_mlv}=\\\$ENV{\\\${_mlv}};\"\\\)
416+ \\s*string\\\(APPEND _mlre
417+ \\s*\" \\\[===\\\[__MODULES_QUAR_\\\${_mlv}=\\\$ENV{\\\${_mlv}}\\\]===\\\]\"\\\)
417418\\s*endif\\\(\\\)
418419\\s*set\\\(_mlrv \"MODULES_RUNENV_\\\${_mlv}\"\\\)
419- \\s*set \\\(_mlre \"\\\${_mlre} \\\${_mlv}=\\\$ENV{\\\${_mlrv}}; \"\\\)
420+ \\s*string \\\(APPEND _mlre \" \\\[=== \\\[\\\ ${_mlv}=\\\$ENV{\\\${_mlrv}}\\\]===\\\] \"\\\)
420421\\s*endif\\\(\\\)
421422\\s*endforeach\\\(\\\)
422423\\s*if \\\(NOT \"\\\${_mlre}\" STREQUAL \"\"\\\)
423- \\s*set\\\(_mlre \"env; \\\${_mlre}__MODULES_QUARANTINE_SET=1; \"\\\)
424+ \\s*set\\\(_mlre \"env \\\${_mlre} __MODULES_QUARANTINE_SET=1\"\\\)
424425\\s*endif\\\(\\\)
425426\\s*endif\\\(\\\)
426427\\s*set\\\(_mlstatus TRUE\\\)
427428\\s*execute_process\\\(COMMAND mktemp -t moduleinit.cmake.XXXXXXXXXXXX
428429\\s*OUTPUT_VARIABLE tempfile_name
429430\\s*OUTPUT_STRIP_TRAILING_WHITESPACE\\\)
430- \\s*if\\\(\\\${ARGC} EQUAL 1\\\)
431- \\s*execute_process\\\(COMMAND \\\${_mlre} $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\"
432- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
433- \\s*elseif\\\(\\\${ARGC} EQUAL 2\\\)
434- \\s*execute_process\\\(COMMAND \\\${_mlre} $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\" \"\\\${ARGV1}\"
435- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
436- \\s*elseif\\\(\\\${ARGC} EQUAL 3\\\)
437- \\s*execute_process\\\(COMMAND \\\${_mlre} $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\" \"\\\${ARGV1}\" \"\\\${ARGV2}\"
438- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
439- \\s*elseif\\\(\\\${ARGC} EQUAL 4\\\)
440- \\s*execute_process\\\(COMMAND \\\${_mlre} $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\" \"\\\${ARGV1}\" \"\\\${ARGV2}\" \"\\\${ARGV3}\"
441- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
442- \\s*else\\\(\\\)
443- \\s*execute_process\\\(COMMAND \\\${_mlre} $tclshlocre \"$modulecmd_pathre\" cmake \\\${ARGV}
444- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
445- \\s*endif\\\(\\\)
431+ \\s*set\\\(quotedArgs \"COMMAND \\\${_mlre} $tclshlocre \\\\\"$modulecmd_pathre\\\\\" cmake \"\\\)
432+ \\s*cmake_parse_arguments\\\(PARSE_ARGV 0 FWD \"\" \"\" \"\"\\\)
433+ \\s*foreach\\\(arg IN LISTS FWD_UNPARSED_ARGUMENTS\\\)
434+ \\s*string\\\(APPEND quotedArgs \" \\\[===\\\[\\\${arg}\\\]===\\\]\"\\\)
435+ \\s*endforeach\\\(\\\)
436+ \\s*string\\\(APPEND quotedArgs \" OUTPUT_FILE \\\${tempfile_name}\"\\\)
437+ \\s*cmake_language\\\(EVAL CODE \"execute_process\\\(\\\${quotedArgs}\\\)\"\\\)
446438\\s*if\\\(EXISTS \\\${tempfile_name}\\\)
447439\\s*include\\\(\\\${tempfile_name}\\\)
448440\\s*file\\\(REMOVE \\\${tempfile_name}\\\)
@@ -619,22 +611,13 @@ set func_cmake "function\\\(module\\\)
619611\\s*execute_process\\\(COMMAND mktemp -t moduleinit.cmake.XXXXXXXXXXXX
620612\\s*OUTPUT_VARIABLE tempfile_name
621613\\s*OUTPUT_STRIP_TRAILING_WHITESPACE\\\)
622- \\s*if\\\(\\\${ARGC} EQUAL 1\\\)
623- \\s*execute_process\\\(COMMAND $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\"
624- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
625- \\s*elseif\\\(\\\${ARGC} EQUAL 2\\\)
626- \\s*execute_process\\\(COMMAND $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\" \"\\\${ARGV1}\"
627- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
628- \\s*elseif\\\(\\\${ARGC} EQUAL 3\\\)
629- \\s*execute_process\\\(COMMAND $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\" \"\\\${ARGV1}\" \"\\\${ARGV2}\"
630- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
631- \\s*elseif\\\(\\\${ARGC} EQUAL 4\\\)
632- \\s*execute_process\\\(COMMAND $tclshlocre \"$modulecmd_pathre\" cmake \"\\\${ARGV0}\" \"\\\${ARGV1}\" \"\\\${ARGV2}\" \"\\\${ARGV3}\"
633- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
634- \\s*else\\\(\\\)
635- \\s*execute_process\\\(COMMAND $tclshlocre \"$modulecmd_pathre\" cmake \\\${ARGV}
636- \\s*OUTPUT_FILE \\\${tempfile_name}\\\)
637- \\s*endif\\\(\\\)
614+ \\s*set\\\(quotedArgs \"COMMAND $tclshlocre \\\\\"$modulecmd_pathre\\\\\" cmake \"\\\)
615+ \\s*cmake_parse_arguments\\\(PARSE_ARGV 0 FWD \"\" \"\" \"\"\\\)
616+ \\s*foreach\\\(arg IN LISTS FWD_UNPARSED_ARGUMENTS\\\)
617+ \\s*string\\\(APPEND quotedArgs \" \\\[===\\\[\\\${arg}\\\]===\\\]\"\\\)
618+ \\s*endforeach\\\(\\\)
619+ \\s*string\\\(APPEND quotedArgs \" OUTPUT_FILE \\\${tempfile_name}\"\\\)
620+ \\s*cmake_language\\\(EVAL CODE \"execute_process\\\(\\\${quotedArgs}\\\)\"\\\)
638621\\s*if\\\(EXISTS \\\${tempfile_name}\\\)
639622\\s*include\\\(\\\${tempfile_name}\\\)
640623\\s*file\\\(REMOVE \\\${tempfile_name}\\\)
0 commit comments