From 3d4a95e32e5cc01d3d9987b3d1227feea85fc0f7 Mon Sep 17 00:00:00 2001 From: zjyhjqs Date: Sun, 29 Sep 2024 23:59:36 +0800 Subject: [PATCH 1/2] Add support for CPack --- CMakeLists.txt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 512e5c3d..1499775b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,13 @@ cmake_minimum_required(VERSION 3.13) -project(googletest-distribution) set(GOOGLETEST_VERSION 1.15.2) +project(googletest-distribution + VERSION ${GOOGLETEST_VERSION} + DESCRIPTION "Google's C++ test framework" + HOMEPAGE_URL "https://google.github.io/googletest" + LANGUAGES CXX +) if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX) set(CMAKE_CXX_EXTENSIONS OFF) @@ -34,3 +39,12 @@ if(BUILD_GMOCK) else() add_subdirectory( googletest ) endif() + +if(INSTALL_GTEST) + set(CPACK_PACKAGE_NAME "GTest") # same as the name in `find_package` + set(CPACK_PACKAGE_VENDOR "Google") + set(CPACK_GENERATOR "TGZ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") + set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") + include(CPack) +endif() From 35a66c88dc89146de28f9552cb08c2df300d672a Mon Sep 17 00:00:00 2001 From: zjyhjqs Date: Mon, 30 Sep 2024 00:56:14 +0800 Subject: [PATCH 2/2] Add `PROJECT_IS_TOP_LEVEL` variable, to decide whether need to install/package --- CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1499775b..43a6201d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,10 @@ project(googletest-distribution LANGUAGES CXX ) +if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) + set(PROJECT_IS_TOP_LEVEL TRUE) +endif() + if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX) set(CMAKE_CXX_EXTENSIONS OFF) endif() @@ -22,7 +26,7 @@ include(GNUInstallDirs) # Note that googlemock target already builds googletest. option(BUILD_GMOCK "Builds the googlemock subproject" ON) -option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON) +option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ${PROJECT_IS_TOP_LEVEL}) option(GTEST_HAS_ABSL "Use Abseil and RE2. Requires Abseil and RE2 to be separately added to the build." OFF) if(GTEST_HAS_ABSL) @@ -40,7 +44,7 @@ else() add_subdirectory( googletest ) endif() -if(INSTALL_GTEST) +if(PROJECT_IS_TOP_LEVEL) set(CPACK_PACKAGE_NAME "GTest") # same as the name in `find_package` set(CPACK_PACKAGE_VENDOR "Google") set(CPACK_GENERATOR "TGZ")