| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- find_package(Threads REQUIRED)
- include(ExternalProject)
- if(MSYS OR MINGW)
- set(DISABLE_PTHREADS ON)
- else()
- set(DISABLE_PTHREADS OFF)
- endif()
- if (MSVC)
- set(RELEASE_LIB_DIR ReleaseLibs)
- set(DEBUG_LIB_DIR DebugLibs)
- elseif(XCODE_VERSION)
- set(RELEASE_LIB_DIR Release)
- set(DEBUG_LIB_DIR Debug)
- else()
- set(RELEASE_LIB_DIR "")
- set(DEBUG_LIB_DIR "")
- endif()
- set(GTEST_CMAKE_ARGS
- "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
- "-Dgtest_force_shared_crt=ON"
- "-Dgtest_disable_pthreads:BOOL=${DISABLE_PTHREADS}"
- "-DBUILD_GTEST=ON")
- set(GTEST_RELEASE_LIB_DIR "")
- set(GTEST_DEBUGLIB_DIR "")
- if (MSVC)
- set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS}
- "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${DEBUG_LIB_DIR}"
- "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${RELEASE_LIB_DIR}")
- set(GTEST_LIB_DIR)
- endif()
- set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gtest")
- # try to find git - if found, setup gtest
- find_package(Git)
- if(NOT GIT_FOUND)
- set(AddGTest_FOUND false CACHE BOOL "Was gtest setup correctly?")
- else(NOT GIT_FOUND)
- set(AddGTest_FOUND true CACHE BOOL "Was gtest setup correctly?")
- ExternalProject_Add(gtest
- GIT_REPOSITORY https://github.com/google/googletest.git
- TIMEOUT 10
- PREFIX "${GTEST_PREFIX}"
- CMAKE_ARGS "${GTEST_CMAKE_ARGS}"
- LOG_DOWNLOAD ON
- LOG_CONFIGURE ON
- LOG_BUILD ON
- # Disable install
- INSTALL_COMMAND ""
- )
- set(LIB_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}")
- set(LIB_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set(GTEST_LOCATION "${GTEST_PREFIX}/src/gtest-build")
- set(GTEST_DEBUG_LIBRARIES
- "${LIB_PREFIX}gtest${LIB_SUFFIX}"
- "${CMAKE_THREAD_LIBS_INIT}")
- SET(GTEST_RELEASE_LIBRARIES
- "${LIB_PREFIX}gtest${LIB_SUFFIX}"
- "${CMAKE_THREAD_LIBS_INIT}")
- if(MSVC_VERSION EQUAL 1700)
- add_definitions(-D_VARIADIC_MAX=10)
- endif()
- ExternalProject_Get_Property(gtest source_dir)
- include_directories(${source_dir}/googletest/include)
- include_directories(${source_dir}/gtest/include)
- ExternalProject_Get_Property(gtest binary_dir)
- link_directories(${binary_dir}/googlemock/gtest)
- link_directories(${binary_dir}/googlemock/gtest/${RELEASE_LIB_DIR})
- link_directories(${binary_dir}/googlemock/gtest/${DEBUG_LIB_DIR})
- endif(NOT GIT_FOUND)
|