File reads were used in ai_assert. The function has side effects, so it should not be used in an assert. Fixed AddGTest.cmake. There was an issue regarding Xcode project file. The path of libgtest.a was incorrectly set.
65 lines
1.7 KiB
CMake
65 lines
1.7 KiB
CMake
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)
|
|
else()
|
|
set(RELEASE_LIB_DIR "Release")
|
|
set(DEBUG_LIB_DIR "Debug")
|
|
endif()
|
|
|
|
set(GTEST_CMAKE_ARGS
|
|
"-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
|
|
"-Dgtest_force_shared_crt=ON"
|
|
"-Dgtest_disable_pthreads:BOOL=${DISABLE_PTHREADS}")
|
|
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")
|
|
|
|
ExternalProject_Add(gtest
|
|
GIT_REPOSITORY https://chromium.googlesource.com/external/googletest
|
|
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
|
|
"${GTEST_LOCATION}/${DEBUG_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}"
|
|
"${CMAKE_THREAD_LIBS_INIT}")
|
|
SET(GTEST_RELEASE_LIBRARIES
|
|
"${GTEST_LOCATION}/${RELEASE_LIB_DIR}/${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}/include)
|
|
include_directories(${source_dir}/gtest/include)
|
|
|
|
ExternalProject_Get_Property(gtest binary_dir)
|
|
link_directories(${binary_dir})
|