Merge topic 'static-libraries-deduplication'

cd418d4bb6 Static libraries de-duplication: keep first occurrence
9b5c805bf6 Tests/RunCMake/LinkLibrariesStrategy: Check ordering results more strongly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9864
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index f9129b3..14cd39f 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@
 # CMake version number components.
 set(CMake_VERSION_MAJOR 3)
 set(CMake_VERSION_MINOR 30)
-set(CMake_VERSION_PATCH 20241002)
+set(CMake_VERSION_PATCH 20241003)
 #set(CMake_VERSION_RC 0)
 set(CMake_VERSION_IS_DIRTY 0)
 
diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx
index 2003ce6..ed567d4 100644
--- a/Source/CTest/cmCTestScriptHandler.cxx
+++ b/Source/CTest/cmCTestScriptHandler.cxx
@@ -139,10 +139,10 @@
 {
   // execute the script passing in the arguments to the script as well as the
   // arguments from this invocation of cmake
-  std::vector<const char*> argv;
-  argv.push_back(cmSystemTools::GetCTestCommand().c_str());
+  std::vector<std::string> argv;
+  argv.push_back(cmSystemTools::GetCTestCommand());
   argv.push_back("-SR");
-  argv.push_back(total_script_arg.c_str());
+  argv.push_back(total_script_arg);
 
   cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
              "Executable for CTest is: " << cmSystemTools::GetCTestCommand()
@@ -151,10 +151,14 @@
   // now pass through all the other arguments
   std::vector<std::string>& initArgs =
     this->CTest->GetInitialCommandLineArguments();
+  //*** need to make sure this does not have the current script ***
+  for (size_t i = 1; i < initArgs.size(); ++i) {
+    argv.push_back(initArgs[i]);
+  }
 
   // Now create process object
   cmUVProcessChainBuilder builder;
-  builder.AddCommand(initArgs)
+  builder.AddCommand(argv)
     .SetBuiltinStream(cmUVProcessChainBuilder::Stream_OUTPUT)
     .SetBuiltinStream(cmUVProcessChainBuilder::Stream_ERROR);
   auto process = builder.Start();
@@ -210,13 +214,10 @@
     std::ostringstream message;
     message << "Error running command: [";
     message << static_cast<int>(result.first) << "] ";
-    for (const char* arg : argv) {
-      if (arg) {
-        message << arg << " ";
-      }
+    for (std::string const& arg : argv) {
+      message << arg << " ";
     }
-    cmCTestLog(this->CTest, ERROR_MESSAGE,
-               message.str() << argv[0] << std::endl);
+    cmCTestLog(this->CTest, ERROR_MESSAGE, message.str() << std::endl);
     return -1;
   }
   return retVal;