This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  ca24bb4eff3c972fdb38ef8958264a987b592284 (commit)
       via  78077d705000986decbd0282014c09b214461d45 (commit)
       via  7df92ec78dc22692f89a12ad6feec4e193c7edaa (commit)
      from  46007cb42fda49cbdf012ed35c728749c1f27a1b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ca24bb4eff3c972fdb38ef8958264a987b592284
commit ca24bb4eff3c972fdb38ef8958264a987b592284
Merge: 46007cb 78077d7
Author:     Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com>
AuthorDate: Fri Apr 15 12:07:00 2016 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Fri Apr 15 12:07:00 2016 -0400

    Merge topic 'fix-addtest-and-crosscompiling-emulator-to-work-globally' into 
next
    
    78077d70 TestGenerator: Fix CROSSCOMPILING_EMULATOR support.
    7df92ec7 TestGenerator: Extend crosscompiling emulator test case


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=78077d705000986decbd0282014c09b214461d45
commit 78077d705000986decbd0282014c09b214461d45
Author:     Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com>
AuthorDate: Thu Apr 14 14:17:10 2016 -0400
Commit:     Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com>
CommitDate: Thu Apr 14 14:17:10 2016 -0400

    TestGenerator: Fix CROSSCOMPILING_EMULATOR support.
    
    Improve support originally added in 9160d6c by ensuring test commands are
    now consistently prefixed with the CROSSCOMPILING_EMULATOR property for
    target executables.

diff --git 
a/Help/release/dev/fix-CROSSCOMPILING_EMULATOR-TestGenerator-support.rst 
b/Help/release/dev/fix-CROSSCOMPILING_EMULATOR-TestGenerator-support.rst
new file mode 100644
index 0000000..5be2e27
--- /dev/null
+++ b/Help/release/dev/fix-CROSSCOMPILING_EMULATOR-TestGenerator-support.rst
@@ -0,0 +1,6 @@
+Fix CROSSCOMPILING_EMULATOR TestGenerator support
+-------------------------------------------------
+
+If specified, emulator is now consistently added as a prefix
+to :command:`add_test` test commands for built target system
+executables. It works for tests added in a parent directory.
diff --git a/Source/cmTestGenerator.cxx b/Source/cmTestGenerator.cxx
index b411f15..152d48a 100644
--- a/Source/cmTestGenerator.cxx
+++ b/Source/cmTestGenerator.cxx
@@ -83,6 +83,8 @@ void cmTestGenerator::GenerateScriptForConfig(std::ostream& 
os,
   // Get the test command line to be executed.
   std::vector<std::string> const& command = this->Test->GetCommand();
 
+  const char * emulator = 0;
+
   // Check whether the command executable is a target whose name is to
   // be translated.
   std::string exe = command[0];
@@ -93,30 +95,45 @@ void cmTestGenerator::GenerateScriptForConfig(std::ostream& 
os,
     // Use the target file on disk.
     exe = target->GetFullPath(config);
 
-    // Prepend with the emulator when cross compiling if required.
-    const char * emulator =
-      target->GetProperty("CROSSCOMPILING_EMULATOR");
-    if (emulator != 0)
+    // Lookup emulator
+    emulator = target->GetProperty("CROSSCOMPILING_EMULATOR");
+    }
+  else
+    {
+    // Use the command name given.
+    cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(exe.c_str());
+    exe = cge->Evaluate(this->LG, config);
+    cmSystemTools::ConvertToUnixSlashes(exe);
+
+    // Lookup emulator
+    for(std::set<cmGeneratorTarget*>::const_iterator ci =
+        cge->GetTargets().begin();
+        ci != cge->GetTargets().end(); ++ci)
       {
-      std::vector<std::string> emulatorWithArgs;
-      cmSystemTools::ExpandListArgument(emulator, emulatorWithArgs);
-      std::string emulatorExe(emulatorWithArgs[0]);
-      cmSystemTools::ConvertToUnixSlashes(emulatorExe);
-      os << cmOutputConverter::EscapeForCMake(emulatorExe) << " ";
-      for(std::vector<std::string>::const_iterator ei =
-          emulatorWithArgs.begin()+1;
-          ei != emulatorWithArgs.end();
-          ++ei)
+      target = (*ci);
+      emulator = target->GetProperty("CROSSCOMPILING_EMULATOR");
+      if (emulator != 0)
         {
-        os << cmOutputConverter::EscapeForCMake(*ei) << " ";
+        break;
         }
       }
     }
-  else
+
+  // Prepend with the emulator when cross compiling if required.
+  if (emulator != 0)
     {
-    // Use the command name given.
-    exe = ge.Parse(exe.c_str())->Evaluate(this->LG, config);
-    cmSystemTools::ConvertToUnixSlashes(exe);
+    std::vector<std::string> emulatorWithArgs;
+    cmSystemTools::ExpandListArgument(emulator, emulatorWithArgs);
+    std::string emulatorExe(emulatorWithArgs[0]);
+    cmSystemTools::ConvertToUnixSlashes(emulatorExe);
+    os << cmOutputConverter::EscapeForCMake(emulatorExe) << " ";
+    for(std::vector<std::string>::const_iterator ei =
+        emulatorWithArgs.begin()+1;
+        ei != emulatorWithArgs.end();
+        ++ei)
+      {
+      os << cmOutputConverter::EscapeForCMake(*ei) << " ";
+      }
     }
 
   // Generate the command line with full escapes.
diff --git a/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake 
b/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake
index 2dd6e85..750fcbf 100644
--- a/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake
+++ b/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake
@@ -14,3 +14,6 @@ endif()
 if(NOT testfile_contents MATCHES 
"add_test[(]UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex 
.+pseudo_emulator.+$")
   message(SEND_ERROR "Did not use emulator when it should be used. 
${error_details}")
 endif()
+if(NOT testfile_contents MATCHES 
"add_test[(]UsesEmulatorWithExecTargetFromSubdirAddedWithGenex 
.+pseudo_emulator.+$")
+  message(SEND_ERROR "Did not use emulator when it should be used. 
${error_details}")
+endif()
diff --git a/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake 
b/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake
index b6eacf1..53a8544 100644
--- a/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake
+++ b/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake
@@ -11,3 +11,6 @@ add_subdirectory(AddTest)
 
 add_test(NAME UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex
   COMMAND generated_exe_in_subdir_added_to_test_without_genex)
+
+add_test(NAME UsesEmulatorWithExecTargetFromSubdirAddedWithGenex
+  COMMAND $<TARGET_FILE:generated_exe_in_subdir_added_to_test_with_genex>)
diff --git a/Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt 
b/Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt
index a10a694..f3d11d5 100644
--- a/Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt
+++ b/Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt
@@ -1 +1,3 @@
 add_executable(generated_exe_in_subdir_added_to_test_without_genex 
${CMAKE_CURRENT_SOURCE_DIR}/../simple_src.cxx)
+
+add_executable(generated_exe_in_subdir_added_to_test_with_genex 
${CMAKE_CURRENT_SOURCE_DIR}/../simple_src.cxx)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7df92ec78dc22692f89a12ad6feec4e193c7edaa
commit 7df92ec78dc22692f89a12ad6feec4e193c7edaa
Author:     Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com>
AuthorDate: Thu Apr 14 13:21:15 2016 -0400
Commit:     Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com>
CommitDate: Thu Apr 14 13:21:15 2016 -0400

    TestGenerator: Extend crosscompiling emulator test case

diff --git a/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake 
b/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake
index 0aae06c..2dd6e85 100644
--- a/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake
+++ b/Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake
@@ -4,9 +4,13 @@ if(EXISTS "${testfile}")
 else()
   message(FATAL_ERROR "Could not find expected CTestTestfile.cmake.")
 endif()
+set(error_details "There is a problem with generated test file: ${testfile}")
 if(testfile_contents MATCHES "add_test[(]DoesNotUseEmulator 
^(pseudo_emulator)+$")
-  message(SEND_ERROR "Used emulator when it should not be used.")
+  message(SEND_ERROR "Used emulator when it should not be used. 
${error_details}")
 endif()
 if(NOT testfile_contents MATCHES "add_test[(]UsesEmulator 
.+pseudo_emulator.+$")
-  message(SEND_ERROR "Did not use emulator when it should be used.")
+  message(SEND_ERROR "Did not use emulator when it should be used. 
${error_details}")
+endif()
+if(NOT testfile_contents MATCHES 
"add_test[(]UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex 
.+pseudo_emulator.+$")
+  message(SEND_ERROR "Did not use emulator when it should be used. 
${error_details}")
 endif()
diff --git a/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake 
b/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake
index 41850f2..b6eacf1 100644
--- a/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake
+++ b/Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake
@@ -6,3 +6,8 @@ add_test(NAME DoesNotUseEmulator
 add_executable(generated_exe simple_src.cxx)
 add_test(NAME UsesEmulator
   COMMAND generated_exe)
+
+add_subdirectory(AddTest)
+
+add_test(NAME UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex
+  COMMAND generated_exe_in_subdir_added_to_test_without_genex)
diff --git a/Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt 
b/Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt
new file mode 100644
index 0000000..a10a694
--- /dev/null
+++ b/Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt
@@ -0,0 +1 @@
+add_executable(generated_exe_in_subdir_added_to_test_without_genex 
${CMAKE_CURRENT_SOURCE_DIR}/../simple_src.cxx)

-----------------------------------------------------------------------

Summary of changes:
 ...OSSCOMPILING_EMULATOR-TestGenerator-support.rst |    6 +++
 Source/cmTestGenerator.cxx                         |   53 +++++++++++++-------
 .../CrosscompilingEmulator/AddTest-check.cmake     |   11 +++-
 .../RunCMake/CrosscompilingEmulator/AddTest.cmake  |    8 +++
 .../CrosscompilingEmulator/AddTest/CMakeLists.txt  |    3 ++
 5 files changed, 61 insertions(+), 20 deletions(-)
 create mode 100644 
Help/release/dev/fix-CROSSCOMPILING_EMULATOR-TestGenerator-support.rst
 create mode 100644 Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to