# gtest external project # target: # - googletest_ep # defines: # - GTEST_HOME # - GTEST_STATIC_LIB # - GTEST_MAIN_STATIC_LIB # - GMOCK_MAIN_STATIC_LIB set(GTEST_FOUND FALSE) if(DEFINED ENV{RAY_GTEST_HOME} AND EXISTS $ENV{RAY_GTEST_HOME}) set(GTEST_HOME "$ENV{RAY_GTEST_HOME}") find_path(GTEST_INCLUDE_DIR NAMES gtest/gtest.h PATHS ${GTEST_HOME} NO_DEFAULT_PATH PATH_SUFFIXES "include") find_library(GTEST_LIBRARIES NAMES gtest gtest_main gmock_main PATHS ${GTEST_HOME} NO_DEFAULT_PATH PATH_SUFFIXES "lib") if(GTEST_INCLUDE_DIR AND GTEST_LIBRARIES) set(GTEST_FOUND TRUE) set(GTEST_STATIC_LIB "${GTEST_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GTEST_MAIN_STATIC_LIB "${GTEST_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GMOCK_MAIN_STATIC_LIB "${GTEST_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}") add_custom_target(googletest_ep) endif() endif() if(NOT GTEST_FOUND) set(GTEST_VERSION "1.8.0") if(APPLE) set(GTEST_CMAKE_CXX_FLAGS "-fPIC -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-value -Wno-ignored-attributes") elseif(NOT MSVC) set(GTEST_CMAKE_CXX_FLAGS "-fPIC") endif() if(CMAKE_BUILD_TYPE) string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE) endif() set(GTEST_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}} ${GTEST_CMAKE_CXX_FLAGS}") set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/external/googletest-install") set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include") set(GTEST_STATIC_LIB "${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GTEST_MAIN_STATIC_LIB "${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GMOCK_MAIN_STATIC_LIB "${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GTEST_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX} -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS}) if (MSVC AND NOT ARROW_USE_STATIC_CRT) set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} -Dgtest_force_shared_crt=ON) endif() set(GTEST_URL_MD5 "16877098823401d1bf2ed7891d7dce36") ExternalProject_Add(googletest_ep PREFIX external/googletest URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz" URL_MD5 ${GTEST_URL_MD5} BUILD_BYPRODUCTS ${GTEST_STATIC_LIB} ${GTEST_MAIN_STATIC_LIB} ${GMOCK_MAIN_STATIC_LIB} CMAKE_ARGS ${GTEST_CMAKE_ARGS} ${EP_LOG_OPTIONS}) endif()