[Cmake-commits] CMake branch, next, updated. v3.1.1-2329-gdbb7339

Brad King brad.king at kitware.com
Mon Jan 26 10:06:48 EST 2015


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  dbb73396e7c7172ae58e42dd9840cf7f89f35da4 (commit)
       via  d0adcccbf4321437f5ecb677c7f88b3e4af484ed (commit)
       via  223c5cb70b30b6a790fd916321f60c86d459e15e (commit)
       via  e2b1f0583f7293bce280dfab397e96acf8a5b26e (commit)
      from  5dce3cf7343b50d95a87f68ed9ffadd936d74c53 (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dbb73396e7c7172ae58e42dd9840cf7f89f35da4
commit dbb73396e7c7172ae58e42dd9840cf7f89f35da4
Merge: 5dce3cf d0adccc
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 26 10:06:47 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jan 26 10:06:47 2015 -0500

    Merge topic 'try-run-link-libraries' into next
    
    d0adcccb try_run: Add tests for LINK_LIBRARIES with mock libraries.
    223c5cb7 try_run: Add test for bad link libraries.
    e2b1f058 try_run: Add support for LINK_LIBRARIES option.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d0adcccbf4321437f5ecb677c7f88b3e4af484ed
commit d0adcccbf4321437f5ecb677c7f88b3e4af484ed
Author:     Matt McCormick <matt.mccormick at kitware.com>
AuthorDate: Thu Jan 22 19:53:16 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 26 10:05:59 2015 -0500

    try_run: Add tests for LINK_LIBRARIES with mock libraries.
    
    Extend the ExportImport test to try using an imported library with
    try_run.

diff --git a/Tests/ExportImport/Import/A/CMakeLists.txt b/Tests/ExportImport/Import/A/CMakeLists.txt
index 9450c82..358776b 100644
--- a/Tests/ExportImport/Import/A/CMakeLists.txt
+++ b/Tests/ExportImport/Import/A/CMakeLists.txt
@@ -311,6 +311,21 @@ if (((CMAKE_C_COMPILER_ID STREQUAL GNU AND CMAKE_C_COMPILER_VERSION VERSION_GREA
       message(SEND_ERROR "EXP_ERROR_VARIABLE try_compile failed, but it was expected to succeed ${OUTPUT}.")
     endif()
 
+    if(NOT CMAKE_CROSSCOMPILING)
+      unset(EXP_RUN_VAR CACHE)
+      unset(EXP_COMPILE_VAR CACHE)
+      try_run(EXP_RUN_VAR EXP_COMPILE_VAR
+        "${CMAKE_CURRENT_SOURCE_DIR}/test_system"
+        "${CMAKE_CURRENT_SOURCE_DIR}/test_system.cpp"
+        COMPILE_DEFINITIONS "-Wunused-variable -Werror=unused-variable"
+        LINK_LIBRARIES exp_systemlib
+        OUTPUT_VARIABLE OUTPUT
+        )
+      if(NOT EXP_COMPILE_VAR)
+        message(SEND_ERROR "try_run compile failed, but it was expected to succeed ${OUTPUT}.")
+      endif()
+    endif()
+
     add_executable(test_system_bld test_system.cpp)
     target_link_libraries(test_system_bld bld_systemlib)
     target_compile_options(test_system_bld PRIVATE -Wunused-variable -Werror=unused-variable)
@@ -326,5 +341,20 @@ if (((CMAKE_C_COMPILER_ID STREQUAL GNU AND CMAKE_C_COMPILER_VERSION VERSION_GREA
     if(NOT BLD_ERROR_VARIABLE)
       message(SEND_ERROR "BLD_ERROR_VARIABLE try_compile failed, but it was expected to succeed.")
     endif()
+
+    if(NOT CMAKE_CROSSCOMPILING)
+      unset(BLD_RUN_VAR CACHE)
+      unset(BLD_COMPILE_VAR CACHE)
+      try_run(BLD_RUN_VAR BLD_COMPILE_VAR
+        "${CMAKE_CURRENT_SOURCE_DIR}/test_system"
+        "${CMAKE_CURRENT_SOURCE_DIR}/test_system.cpp"
+        COMPILE_DEFINITIONS "-Wunused-variable -Werror=unused-variable"
+        LINK_LIBRARIES bld_systemlib
+        OUTPUT_VARIABLE OUTPUT
+        )
+      if(NOT BLD_COMPILE_VAR)
+        message(SEND_ERROR "try_run compile failed, but it was expected to succeed ${OUTPUT}.")
+      endif()
+    endif()
   endif()
 endif()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=223c5cb70b30b6a790fd916321f60c86d459e15e
commit 223c5cb70b30b6a790fd916321f60c86d459e15e
Author:     Matt McCormick <matt.mccormick at kitware.com>
AuthorDate: Thu Jan 22 19:13:56 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 26 10:05:30 2015 -0500

    try_run: Add test for bad link libraries.
    
    Based off the corresponding try_compile test.

diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index b5e41d9..78d375e 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -130,6 +130,7 @@ add_RunCMake_test(project)
 add_RunCMake_test(return)
 add_RunCMake_test(string)
 add_RunCMake_test(try_compile)
+add_RunCMake_test(try_run)
 add_RunCMake_test(set)
 add_RunCMake_test(variable_watch)
 add_RunCMake_test(CMP0004)
diff --git a/Tests/RunCMake/try_run/BadLinkLibraries-result.txt b/Tests/RunCMake/try_run/BadLinkLibraries-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/try_run/BadLinkLibraries-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/try_run/BadLinkLibraries-stderr.txt b/Tests/RunCMake/try_run/BadLinkLibraries-stderr.txt
new file mode 100644
index 0000000..dcd1bfc
--- /dev/null
+++ b/Tests/RunCMake/try_run/BadLinkLibraries-stderr.txt
@@ -0,0 +1,5 @@
+CMake Error at BadLinkLibraries.cmake:2 \(try_run\):
+  Only libraries may be used as try_compile or try_run IMPORTED
+  LINK_LIBRARIES.  Got not_a_library of type UTILITY.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
diff --git a/Tests/RunCMake/try_run/BadLinkLibraries.cmake b/Tests/RunCMake/try_run/BadLinkLibraries.cmake
new file mode 100644
index 0000000..a124bf6
--- /dev/null
+++ b/Tests/RunCMake/try_run/BadLinkLibraries.cmake
@@ -0,0 +1,4 @@
+add_custom_target(not_a_library)
+try_run(RUN_RESULT COMPILE_RESULT
+  ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp ${CMAKE_CURRENT_SOURCE_DIR}/src.c
+  LINK_LIBRARIES not_a_library)
diff --git a/Tests/RunCMake/try_run/CMakeLists.txt b/Tests/RunCMake/try_run/CMakeLists.txt
new file mode 100644
index 0000000..e034780
--- /dev/null
+++ b/Tests/RunCMake/try_run/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8.0)
+project(${RunCMake_TEST} C)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/try_run/RunCMakeTest.cmake b/Tests/RunCMake/try_run/RunCMakeTest.cmake
new file mode 100644
index 0000000..1ec9a55
--- /dev/null
+++ b/Tests/RunCMake/try_run/RunCMakeTest.cmake
@@ -0,0 +1,3 @@
+include(RunCMake)
+
+run_cmake(BadLinkLibraries)
diff --git a/Tests/RunCMake/try_run/src.c b/Tests/RunCMake/try_run/src.c
new file mode 100644
index 0000000..78f2de1
--- /dev/null
+++ b/Tests/RunCMake/try_run/src.c
@@ -0,0 +1 @@
+int main(void) { return 0; }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e2b1f0583f7293bce280dfab397e96acf8a5b26e
commit e2b1f0583f7293bce280dfab397e96acf8a5b26e
Author:     Matt McCormick <matt.mccormick at kitware.com>
AuthorDate: Thu Jan 1 22:30:08 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 26 10:05:26 2015 -0500

    try_run: Add support for LINK_LIBRARIES option.
    
    Most functionality is already implemented in Source/cmCoreTryCompile.{h,cxx}.
    Document and improve argument parsing.
    
    This functionality is already being used by a number of modules, like
    CheckCSourceCompiles.cmake, but it is not documented.

diff --git a/Help/command/try_run.rst b/Help/command/try_run.rst
index 9a17ad9..b8ea0fe 100644
--- a/Help/command/try_run.rst
+++ b/Help/command/try_run.rst
@@ -6,8 +6,9 @@ Try compiling and then running some code.
 ::
 
   try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR
-          bindir srcfile [CMAKE_FLAGS <Flags>]
+          bindir srcfile [CMAKE_FLAGS <flags>]
           [COMPILE_DEFINITIONS <flags>]
+          [LINK_LIBRARIES <libs>]
           [COMPILE_OUTPUT_VARIABLE comp]
           [RUN_OUTPUT_VARIABLE run]
           [OUTPUT_VARIABLE var]
@@ -22,6 +23,12 @@ where the output from the compile step goes.  RUN_OUTPUT_VARIABLE
 specifies the variable where the output from the running executable
 goes.
 
+The srcfile signature also accepts a LINK_LIBRARIES argument which may
+contain a list of libraries or IMPORTED targets which will be linked
+to in the generated project.  If LINK_LIBRARIES is specified as a
+parameter to try_run, then any LINK_LIBRARIES passed as
+CMAKE_FLAGS will be ignored.
+
 For compatibility reasons OUTPUT_VARIABLE is still supported, which
 gives you the output from the compile and run step combined.
 
diff --git a/Help/release/dev/try-run-link-libraries.rst b/Help/release/dev/try-run-link-libraries.rst
new file mode 100644
index 0000000..4f20cbd
--- /dev/null
+++ b/Help/release/dev/try-run-link-libraries.rst
@@ -0,0 +1,5 @@
+try-run-link-libraries
+----------------------
+
+* The :command:`try_run` command learned to honor the ``LINK_LIBRARIES``
+  option just as :command:`try_compile` already does.
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index 0030b84..2f58d96 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -109,7 +109,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
               }
           default:
             this->Makefile->IssueMessage(cmake::FATAL_ERROR,
-              "Only libraries may be used as try_compile IMPORTED "
+              "Only libraries may be used as try_compile or try_run IMPORTED "
               "LINK_LIBRARIES.  Got " + std::string(tgt->GetName()) + " of "
               "type " + tgt->GetTargetTypeName(tgt->GetType()) + ".");
             return -1;
diff --git a/Source/cmTryRunCommand.cxx b/Source/cmTryRunCommand.cxx
index 8f2deeb..8bd33d0 100644
--- a/Source/cmTryRunCommand.cxx
+++ b/Source/cmTryRunCommand.cxx
@@ -48,7 +48,8 @@ bool cmTryRunCommand
       {
       ++i;
       while (i < argv.size() && argv[i] != "COMPILE_DEFINITIONS" &&
-             argv[i] != "CMAKE_FLAGS")
+             argv[i] != "CMAKE_FLAGS" &&
+             argv[i] != "LINK_LIBRARIES")
         {
         runArgs += " ";
         runArgs += argv[i];
diff --git a/Tests/RunCMake/try_compile/BadLinkLibraries-stderr.txt b/Tests/RunCMake/try_compile/BadLinkLibraries-stderr.txt
index eceffec..652bcfc 100644
--- a/Tests/RunCMake/try_compile/BadLinkLibraries-stderr.txt
+++ b/Tests/RunCMake/try_compile/BadLinkLibraries-stderr.txt
@@ -1,5 +1,5 @@
 CMake Error at BadLinkLibraries.cmake:2 \(try_compile\):
-  Only libraries may be used as try_compile IMPORTED LINK_LIBRARIES.  Got
-  not_a_library of type UTILITY.
+  Only libraries may be used as try_compile or try_run IMPORTED
+  LINK_LIBRARIES.  Got not_a_library of type UTILITY.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list