brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · ce653ac Raw
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