diff options
author | Dakota Hawkins <dakotahawkins@gmail.com> | 2018-07-24 11:06:55 -0400 |
---|---|---|
committer | Dakota Hawkins <dakotahawkins@gmail.com> | 2018-08-21 13:02:09 -0400 |
commit | 759ef7c4e9662321548d1c30528c78ecdba2a05d (patch) | |
tree | 8123065767fdd8d9241804f032632573a2522bba /cmake | |
parent | b88511ef640c046ec9c7553b383a2aba64c80967 (diff) | |
download | googletest-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.in | 35 |
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@") |