blob: db1b2899e9d73a09317f4960e50ae4a0fdf261ad [file] [log] [blame]
Dakota Hawkins759ef7c2018-07-24 11:06:55 -04001cmake_minimum_required(VERSION 2.8.8)
Fábio Junqueira4a0b77f2015-11-11 18:29:41 -02002
Joel Laity568958e2017-08-03 15:50:45 +12003if (POLICY CMP0048)
Manuel VIVESb68f1e72017-08-02 21:03:13 -04004 cmake_policy(SET CMP0048 NEW)
Joel Laity568958e2017-08-03 15:50:45 +12005endif (POLICY CMP0048)
Manuel VIVESb68f1e72017-08-02 21:03:13 -04006
Dakota Hawkins759ef7c2018-07-24 11:06:55 -04007project(googletest-distribution)
8set(GOOGLETEST_VERSION 1.9.0)
Fábio Junqueira4a0b77f2015-11-11 18:29:41 -02009
10enable_testing()
11
Matthew Woehlke0e8e0e02017-08-09 15:29:36 -040012include(CMakeDependentOption)
Dakota Hawkins759ef7c2018-07-24 11:06:55 -040013include(GNUInstallDirs)
Matthew Woehlke0e8e0e02017-08-09 15:29:36 -040014
Fábio Junqueira4a0b77f2015-11-11 18:29:41 -020015option(BUILD_GTEST "Builds the googletest subproject" OFF)
16
17#Note that googlemock target already builds googletest
18option(BUILD_GMOCK "Builds the googlemock subproject" ON)
Matthew Woehlke9469fb62017-08-16 10:49:06 -040019
20cmake_dependent_option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON "BUILD_GTEST OR BUILD_GMOCK" OFF)
Matthew Woehlke0e8e0e02017-08-09 15:29:36 -040021cmake_dependent_option(INSTALL_GMOCK "Enable installation of googlemock. (Projects embedding googlemock may want to turn this OFF.)" ON "BUILD_GMOCK" OFF)
Fábio Junqueira4a0b77f2015-11-11 18:29:41 -020022
Dakota Hawkins759ef7c2018-07-24 11:06:55 -040023if(WIN32)
24 set(INSTALL_CMAKE_DIR "cmake" CACHE PATH "CMake exported targets")
25else()
26 set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/gtest" CACHE PATH "CMake exported targets")
27endif()
28
29set(googletest_install_targets)
Fábio Junqueira4a0b77f2015-11-11 18:29:41 -020030if(BUILD_GMOCK)
31 add_subdirectory( googlemock )
32elseif(BUILD_GTEST)
33 add_subdirectory( googletest )
34endif()
Dakota Hawkins759ef7c2018-07-24 11:06:55 -040035
36if(googletest_install_targets)
37 include(CMakePackageConfigHelpers)
38 configure_package_config_file(
39 "${CMAKE_CURRENT_LIST_DIR}/cmake/googletestConfig.cmake.in"
40 "${CMAKE_CURRENT_BINARY_DIR}/googletestConfig.cmake"
41 INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}")
42 write_basic_package_version_file(
43 ${CMAKE_CURRENT_BINARY_DIR}/googletestConfigVersion.cmake
44 VERSION "${GOOGLETEST_VERSION}"
45 COMPATIBILITY SameMajorVersion)
46 install(FILES
47 ${CMAKE_CURRENT_BINARY_DIR}/googletestConfig.cmake
48 ${CMAKE_CURRENT_BINARY_DIR}/googletestConfigVersion.cmake
49 DESTINATION "${INSTALL_CMAKE_DIR}")
50endif()