brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · e66e9d1 Raw
59 lines · plain
1# Download and unpack googletest at configure time2set(GOOGLETEST_PREFIX "${benchmark_BINARY_DIR}/third_party/googletest")3configure_file(${benchmark_SOURCE_DIR}/cmake/GoogleTest.cmake.in ${GOOGLETEST_PREFIX}/CMakeLists.txt @ONLY)4 5set(GOOGLETEST_PATH "${CMAKE_CURRENT_SOURCE_DIR}/googletest" CACHE PATH "") # Mind the quotes6execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"7  -DALLOW_DOWNLOADING_GOOGLETEST=${BENCHMARK_DOWNLOAD_DEPENDENCIES} -DGOOGLETEST_PATH:PATH=${GOOGLETEST_PATH} .8  RESULT_VARIABLE result9  WORKING_DIRECTORY ${GOOGLETEST_PREFIX}10)11 12if(result)13  message(FATAL_ERROR "CMake step for googletest failed: ${result}")14endif()15 16execute_process(17  COMMAND ${CMAKE_COMMAND} --build .18  RESULT_VARIABLE result19  WORKING_DIRECTORY ${GOOGLETEST_PREFIX}20)21 22if(result)23  message(FATAL_ERROR "Build step for googletest failed: ${result}")24endif()25 26# Prevent overriding the parent project's compiler/linker27# settings on Windows28set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)29 30include(${GOOGLETEST_PREFIX}/googletest-paths.cmake)31 32# Add googletest directly to our build. This defines33# the gtest and gtest_main targets.34add_subdirectory(${GOOGLETEST_SOURCE_DIR}35                 ${GOOGLETEST_BINARY_DIR}36                 EXCLUDE_FROM_ALL)37 38# googletest doesn't seem to want to stay build warning clean so let's not hurt ourselves.39if (MSVC)40  target_compile_options(gtest PRIVATE "/wd4244" "/wd4722")41  target_compile_options(gtest_main PRIVATE "/wd4244" "/wd4722")42  target_compile_options(gmock PRIVATE "/wd4244" "/wd4722")43  target_compile_options(gmock_main PRIVATE "/wd4244" "/wd4722")44else()45  target_compile_options(gtest PRIVATE "-w")46  target_compile_options(gtest_main PRIVATE "-w")47  target_compile_options(gmock PRIVATE "-w")48  target_compile_options(gmock_main PRIVATE "-w")49endif()50 51if(NOT DEFINED GTEST_COMPILE_COMMANDS)52    set(GTEST_COMPILE_COMMANDS ON)53endif()54 55set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES> EXPORT_COMPILE_COMMANDS ${GTEST_COMPILE_COMMANDS})56set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest_main,INTERFACE_INCLUDE_DIRECTORIES> EXPORT_COMPILE_COMMANDS ${GTEST_COMPILE_COMMANDS})57set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES> EXPORT_COMPILE_COMMANDS ${GTEST_COMPILE_COMMANDS})58set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_INCLUDE_DIRECTORIES> EXPORT_COMPILE_COMMANDS ${GTEST_COMPILE_COMMANDS})59