60 lines · plain
1cmake_minimum_required(VERSION 2.8.12)2 3project(googletest-download NONE)4 5# Enable ExternalProject CMake module6include(ExternalProject)7 8option(ALLOW_DOWNLOADING_GOOGLETEST "If googletest src tree is not found in location specified by GOOGLETEST_PATH, do fetch the archive from internet" OFF)9set(GOOGLETEST_PATH "/usr/src/googletest" CACHE PATH10 "Path to the googletest root tree. Should contain googletest and googlemock subdirs. And CMakeLists.txt in root, and in both of these subdirs")11 12# Download and install GoogleTest13 14message(STATUS "Looking for Google Test sources")15message(STATUS "Looking for Google Test sources in ${GOOGLETEST_PATH}")16if(EXISTS "${GOOGLETEST_PATH}" AND IS_DIRECTORY "${GOOGLETEST_PATH}" AND EXISTS "${GOOGLETEST_PATH}/CMakeLists.txt" AND17 EXISTS "${GOOGLETEST_PATH}/googletest" AND IS_DIRECTORY "${GOOGLETEST_PATH}/googletest" AND EXISTS "${GOOGLETEST_PATH}/googletest/CMakeLists.txt" AND18 EXISTS "${GOOGLETEST_PATH}/googlemock" AND IS_DIRECTORY "${GOOGLETEST_PATH}/googlemock" AND EXISTS "${GOOGLETEST_PATH}/googlemock/CMakeLists.txt")19 message(STATUS "Found Google Test in ${GOOGLETEST_PATH}")20 21 ExternalProject_Add(22 googletest23 PREFIX "${CMAKE_BINARY_DIR}"24 DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/download"25 SOURCE_DIR "${GOOGLETEST_PATH}" # use existing src dir.26 BINARY_DIR "${CMAKE_BINARY_DIR}/build"27 CONFIGURE_COMMAND ""28 BUILD_COMMAND ""29 INSTALL_COMMAND ""30 TEST_COMMAND ""31 )32else()33 if(NOT ALLOW_DOWNLOADING_GOOGLETEST)34 message(SEND_ERROR "Did not find Google Test sources! Either pass correct path in GOOGLETEST_PATH, or enable BENCHMARK_DOWNLOAD_DEPENDENCIES, or disable BENCHMARK_USE_BUNDLED_GTEST, or disable BENCHMARK_ENABLE_GTEST_TESTS / BENCHMARK_ENABLE_TESTING.")35 return()36 else()37 message(WARNING "Did not find Google Test sources! Fetching from web...")38 ExternalProject_Add(39 googletest40 GIT_REPOSITORY https://github.com/google/googletest.git41 GIT_TAG "release-1.11.0"42 PREFIX "${CMAKE_BINARY_DIR}"43 STAMP_DIR "${CMAKE_BINARY_DIR}/stamp"44 DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/download"45 SOURCE_DIR "${CMAKE_BINARY_DIR}/src"46 BINARY_DIR "${CMAKE_BINARY_DIR}/build"47 CONFIGURE_COMMAND ""48 BUILD_COMMAND ""49 INSTALL_COMMAND ""50 TEST_COMMAND ""51 )52 endif()53endif()54 55ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR)56file(WRITE googletest-paths.cmake57"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\")58set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\")59")60