aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorDakota Hawkins <dakotahawkins@gmail.com>2018-07-24 11:06:55 -0400
committerDakota Hawkins <dakotahawkins@gmail.com>2018-08-21 13:02:09 -0400
commit759ef7c4e9662321548d1c30528c78ecdba2a05d (patch)
tree8123065767fdd8d9241804f032632573a2522bba /cmake
parentb88511ef640c046ec9c7553b383a2aba64c80967 (diff)
downloadgoogletest-759ef7c4e9662321548d1c30528c78ecdba2a05d.tar.gz
googletest-759ef7c4e9662321548d1c30528c78ecdba2a05d.tar.bz2
googletest-759ef7c4e9662321548d1c30528c78ecdba2a05d.zip
Improve CMake exported targets.
I _think_ this represents some of the "best practices" for exporting targets. They'll be available in a `googletest::` namespace (e.g. `googletest::gmock`) with non-namespaced `ALIAS` targets. - Added GOOGLETEST_VERSION variable - Use `CMakePackageConfigHelpers`, bump minimum CMake version to 2.8.8 Signed-off-by: Dakota Hawkins <dakotahawkins@gmail.com>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/googletestConfig.cmake.in35
1 files changed, 35 insertions, 0 deletions
diff --git a/cmake/googletestConfig.cmake.in b/cmake/googletestConfig.cmake.in
new file mode 100644
index 00000000..3a5957f4
--- /dev/null
+++ b/cmake/googletestConfig.cmake.in
@@ -0,0 +1,35 @@
+@PACKAGE_INIT@
+
+set(googletest_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@)
+
+set(googletest_NAMESPACE_TARGETS)
+set(googletest_ALL_INCLUDE_DIRS)
+
+foreach(target @googletest_install_targets@)
+ include(${CMAKE_CURRENT_LIST_DIR}/${target}ConfigInternal.cmake)
+
+ add_library(googletest::${target} INTERFACE IMPORTED)
+ set_target_properties(googletest::${target}
+ PROPERTIES
+ INTERFACE_LINK_LIBRARIES googletest_${target}
+ IMPORTED_GLOBAL ON)
+ if(googletest_BUILD_SHARED_LIBS)
+ set_target_properties(googletest::${target}
+ PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
+ endif()
+ add_library(${target} ALIAS googletest::${target})
+
+ get_target_property(${target}_INCLUDE_DIRS googletest_${target} INTERFACE_INCLUDE_DIRECTORIES)
+
+ list(APPEND googletest_ALL_INCLUDE_DIRS ${${target}_INCLUDE_DIRS})
+ list(APPEND googletest_NAMESPACE_TARGETS googletest::${target})
+endforeach()
+
+list(REMOVE_DUPLICATES googletest_ALL_INCLUDE_DIRS)
+set(GOOGLETEST_INCLUDE_DIRS ${googletest_ALL_INCLUDE_DIRS})
+
+list(REMOVE_DUPLICATES googletest_NAMESPACE_TARGETS)
+set(GOOGLETEST_LIBRARIES ${googletest_NAMESPACE_TARGETS})
+
+set(GOOGLETEST_VERSION "@GOOGLETEST_VERSION@")