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  d3ccdd30915356d716d3de0e56129e6da36bed0e (commit)
       via  99afe23513054db4add5143de4aa3a826e8c6c75 (commit)
       via  611735e76e14807e2145d6b67efbb080d419f19f (commit)
      from  caa83f4e41630cd00e8e32f2330d2c1be045b95f (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=d3ccdd30915356d716d3de0e56129e6da36bed0e
commit d3ccdd30915356d716d3de0e56129e6da36bed0e
Merge: caa83f4 99afe23
Author:     Roger Leigh <rle...@codelibre.net>
AuthorDate: Thu Dec 10 18:11:09 2015 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Thu Dec 10 18:11:09 2015 -0500

    Merge topic 'gtest-imported-targets' into next
    
    99afe235 Tests: Add tests for FindGTest
    611735e7 FindGTest: Add imported targets and update documentation


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=99afe23513054db4add5143de4aa3a826e8c6c75
commit 99afe23513054db4add5143de4aa3a826e8c6c75
Author:     Roger Leigh <rle...@codelibre.net>
AuthorDate: Thu Dec 10 23:08:23 2015 +0000
Commit:     Roger Leigh <rle...@codelibre.net>
CommitDate: Thu Dec 10 23:09:16 2015 +0000

    Tests: Add tests for FindGTest

diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 5d492cf..65bfb77 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1362,6 +1362,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P 
${CMake_SOURCE_DIR}/Utilities/Release
   if(CMake_TEST_FindGSL)
     add_subdirectory(FindGSL)
   endif()
+
+  if(CMake_TEST_FindGTest)
+    add_subdirectory(FindGTest)
+  endif()
+
   if(CMake_TEST_FindJsonCpp)
     add_subdirectory(FindJsonCpp)
   endif()
diff --git a/Tests/FindGTest/CMakeLists.txt b/Tests/FindGTest/CMakeLists.txt
new file mode 100644
index 0000000..cbc92b1
--- /dev/null
+++ b/Tests/FindGTest/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_test(NAME FindGTest.Test COMMAND
+  ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+  --build-and-test
+  "${CMake_SOURCE_DIR}/Tests/FindGTest/Test"
+  "${CMake_BINARY_DIR}/Tests/FindGTest/Test"
+  ${build_generator_args}
+  --build-project TestFindGTest
+  --build-options ${build_options}
+  --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+  )
diff --git a/Tests/FindGTest/Test/CMakeLists.txt 
b/Tests/FindGTest/Test/CMakeLists.txt
new file mode 100644
index 0000000..99368ac
--- /dev/null
+++ b/Tests/FindGTest/Test/CMakeLists.txt
@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 3.1)
+project(TestFindGTest CXX)
+include(CTest)
+
+# CMake does not actually provide FindGTest publicly.
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../Source/Modules)
+
+find_package(GTest REQUIRED)
+
+add_executable(test_gtest_tgt main.cxx)
+target_link_libraries(test_gtest_tgt GTest::Main)
+add_test(NAME test_gtest_tgt COMMAND test_gtest_tgt)
+
+add_executable(test_gtest_var main.cxx)
+target_include_directories(test_gtest_var PRIVATE ${GTEST_INCLUDE_DIRS})
+target_link_libraries(test_gtest_var PRIVATE ${GTEST_BOTH_LIBRARIES} 
${CMAKE_THREAD_LIBS_INIT})
+add_test(NAME test_gtest_var COMMAND test_gtest_var)
diff --git a/Tests/FindGTest/Test/main.cxx b/Tests/FindGTest/Test/main.cxx
new file mode 100644
index 0000000..0572a5d
--- /dev/null
+++ b/Tests/FindGTest/Test/main.cxx
@@ -0,0 +1,6 @@
+#include <gtest/gtest.h>
+
+TEST(FindCMake, LinksAndRuns)
+{
+  ASSERT_TRUE(true);
+}

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=611735e76e14807e2145d6b67efbb080d419f19f
commit 611735e76e14807e2145d6b67efbb080d419f19f
Author:     Roger Leigh <rle...@dundee.ac.uk>
AuthorDate: Thu Dec 10 15:52:07 2015 +0000
Commit:     Roger Leigh <rle...@codelibre.net>
CommitDate: Thu Dec 10 23:09:08 2015 +0000

    FindGTest: Add imported targets and update documentation

diff --git a/Modules/FindGTest.cmake b/Modules/FindGTest.cmake
index eb7abfd..ca49e4a 100644
--- a/Modules/FindGTest.cmake
+++ b/Modules/FindGTest.cmake
@@ -4,88 +4,89 @@
 #
 # Locate the Google C++ Testing Framework.
 #
-# Defines the following variables:
+# Imported targets
+# ^^^^^^^^^^^^^^^^
 #
-# ::
-#
-#    GTEST_FOUND - Found the Google Testing framework
-#    GTEST_INCLUDE_DIRS - Include directories
+# This module defines the following :prop_tgt:`IMPORTED` targets:
 #
+# ``GTest::GTest``
+#   The Google Test ``gtest`` library, if found; adds Thread::Thread
+#   automatically
+# ``GTest::Main``
+#   The Google Test ``gtest_main`` library, if found
 #
 #
-# Also defines the library variables below as normal variables.  These
-# contain debug/optimized keywords when a debugging library is found.
-#
-# ::
+# Result variables
+# ^^^^^^^^^^^^^^^^
 #
-#    GTEST_BOTH_LIBRARIES - Both libgtest & libgtest-main
-#    GTEST_LIBRARIES - libgtest
-#    GTEST_MAIN_LIBRARIES - libgtest-main
+# This module will set the following variables in your project:
 #
+# ``GTEST_FOUND``
+#   Found the Google Testing framework
+# ``GTEST_INCLUDE_DIRS``
+#   the directory containing the Google Test headers
 #
+# The library variables below are set as normal variables.  These
+# contain debug/optimized keywords when a debugging library is found.
 #
-# Accepts the following variables as input:
-#
-# ::
-#
-#    GTEST_ROOT - (as a CMake or environment variable)
-#                 The root directory of the gtest install prefix
-#
-#
+# ``GTEST_LIBRARIES``
+#   The Google Test ``gtest`` library; note it also requires linking
+#   with an appropriate thread library
+# ``GTEST_MAIN_LIBRARIES``
+#   The Google Test ``gtest_main`` library
+# ``GTEST_BOTH_LIBRARIES``
+#   Both ``gtest`` and ``gtest_main``
 #
-# ::
+# Cache variables
+# ^^^^^^^^^^^^^^^
 #
-#    GTEST_MSVC_SEARCH - If compiling with MSVC, this variable can be set to
-#                        "MD" or "MT" to enable searching a GTest build tree
-#                        (defaults: "MD")
+# The following cache variables may also be set:
 #
+# ``GTEST_ROOT``
+#   The root directory of the Google Test installation (may also be
+#   set as an environment variable)
+# ``GTEST_MSVC_SEARCH``
+#   If compiling with MSVC, this variable can be set to ``MD`` or
+#   ``MT`` (the default) to enable searching a GTest build tree
 #
 #
-# Example Usage:
+# Example usage
+# ^^^^^^^^^^^^^
 #
 # ::
 #
 #     enable_testing()
 #     find_package(GTest REQUIRED)
-#     include_directories(${GTEST_INCLUDE_DIRS})
-#
-#
-#
-# ::
 #
 #     add_executable(foo foo.cc)
-#     target_link_libraries(foo ${GTEST_BOTH_LIBRARIES})
-#
-#
-#
-# ::
+#     target_link_libraries(foo GTest::GTest GTest::Main)
 #
 #     add_test(AllTestsInFoo foo)
 #
 #
-#
-#
+# Deeper integration with CTest
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 #
 # If you would like each Google test to show up in CTest as a test you
-# may use the following macro.  NOTE: It will slow down your tests by
-# running an executable for each test and test fixture.  You will also
-# have to rerun CMake after adding or removing tests or test fixtures.
-#
-# GTEST_ADD_TESTS(executable extra_args ARGN)
-#
-# ::
+# may use the following macro::
 #
-#     executable = The path to the test executable
-#     extra_args = Pass a list of extra arguments to be passed to
-#                  executable enclosed in quotes (or "" for none)
-#     ARGN =       A list of source files to search for tests & test
-#                  fixtures. Or AUTO to find them from executable target.
+#     GTEST_ADD_TESTS(executable extra_args files...)
 #
+# ``executable``
+#   the path to the test executable
+# ``extra_args``
+#   a list of extra arguments to be passed to executable enclosed in
+#   quotes (or ``""`` for none)
+# ``files...``
+#   a list of source files to search for tests and test fixtures.  Or
+#   ``AUTO`` to find them from executable target
 #
+# However, note that this macro will slow down your tests by running
+# an executable for each test and test fixture.  You will also have to
+# re-run CMake after adding or removing tests or test fixtures.
 #
-# ::
+# Example usage::
 #
-#   Example:
 #      set(FooTestArgs --foo 1 --bar 2)
 #      add_executable(FooTest FooUnitTest.cc)
 #      GTEST_ADD_TESTS(FooTest "${FooTestArgs}" AUTO)
@@ -208,5 +209,60 @@ if(GTEST_FOUND)
     _gtest_append_debugs(GTEST_LIBRARIES      GTEST_LIBRARY)
     _gtest_append_debugs(GTEST_MAIN_LIBRARIES GTEST_MAIN_LIBRARY)
     set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
-endif()
 
+    include(CMakeFindDependencyMacro)
+    find_dependency(Threads)
+
+    if(NOT TARGET GTest::GTest)
+        add_library(GTest::GTest UNKNOWN IMPORTED)
+        set_target_properties(GTest::GTest PROPERTIES
+            INTERFACE_LINK_LIBRARIES "Threads::Threads")
+        if(GTEST_INCLUDE_DIRS)
+            set_target_properties(GTest::GTest PROPERTIES
+                INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}")
+        endif()
+        if(EXISTS "${GTEST_LIBRARY}")
+            set_target_properties(GTest::GTest PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+                IMPORTED_LOCATION "${GTEST_LIBRARY}")
+        endif()
+        if(EXISTS "${GTEST_LIBRARY_DEBUG}")
+            set_property(TARGET GTest::GTest APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS DEBUG)
+            set_target_properties(GTest::GTest PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+                IMPORTED_LOCATION_DEBUG "${GTEST_LIBRARY_DEBUG}")
+        endif()
+        if(EXISTS "${GTEST_LIBRARY_RELEASE}")
+            set_property(TARGET GTest::GTest APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS RELEASE)
+            set_target_properties(GTest::GTest PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+                IMPORTED_LOCATION_RELEASE "${GTEST_LIBRARY_RELEASE}")
+        endif()
+      endif()
+      if(NOT TARGET GTest::Main)
+          add_library(GTest::Main UNKNOWN IMPORTED)
+          set_target_properties(GTest::Main PROPERTIES
+              INTERFACE_LINK_LIBRARIES "GTest::GTest")
+          if(EXISTS "${GTEST_MAIN_LIBRARY}")
+              set_target_properties(GTest::Main PROPERTIES
+                  IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+                  IMPORTED_LOCATION "${GTEST_MAIN_LIBRARY}")
+          endif()
+          if(EXISTS "${GTEST_MAIN_LIBRARY_DEBUG}")
+            set_property(TARGET GTest::Main APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS DEBUG)
+            set_target_properties(GTest::Main PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+                IMPORTED_LOCATION_DEBUG "${GTEST_MAIN_LIBRARY_DEBUG}")
+          endif()
+          if(EXISTS "${GTEST_MAIN_LIBRARY_RELEASE}")
+            set_property(TARGET GTest::Main APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS RELEASE)
+            set_target_properties(GTest::Main PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+                IMPORTED_LOCATION_RELEASE "${GTEST_MAIN_LIBRARY_RELEASE}")
+          endif()
+    endif()
+endif()

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

Summary of changes:
 Modules/FindGTest.cmake                       |  160 +++++++++++++++++--------
 Tests/CMakeLists.txt                          |    5 +
 Tests/{FindBoost => FindGTest}/CMakeLists.txt |    8 +-
 Tests/FindGTest/Test/CMakeLists.txt           |   17 +++
 Tests/FindGTest/Test/main.cxx                 |    6 +
 5 files changed, 140 insertions(+), 56 deletions(-)
 copy Tests/{FindBoost => FindGTest}/CMakeLists.txt (54%)
 create mode 100644 Tests/FindGTest/Test/CMakeLists.txt
 create mode 100644 Tests/FindGTest/Test/main.cxx


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

Reply via email to