mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-08 06:49:26 +08:00
58 lines
2.5 KiB
CMake
58 lines
2.5 KiB
CMake
|
find_package(Threads REQUIRED)
|
||
|
|
||
|
include(ExternalProject)
|
||
|
ExternalProject_Add(
|
||
|
googletest
|
||
|
URL http://ss2.fluorinedog.com/data/gtest_v1.10.x.zip
|
||
|
UPDATE_COMMAND ""
|
||
|
INSTALL_COMMAND ""
|
||
|
LOG_DOWNLOAD ON
|
||
|
LOG_CONFIGURE ON
|
||
|
LOG_BUILD ON)
|
||
|
|
||
|
ExternalProject_Get_Property(googletest source_dir)
|
||
|
set(GTEST_INCLUDE_DIRS ${source_dir}/googletest/include)
|
||
|
set(GMOCK_INCLUDE_DIRS ${source_dir}/googlemock/include)
|
||
|
|
||
|
# The cloning of the above repo doesn't happen until make, however if the dir doesn't
|
||
|
# exist, INTERFACE_INCLUDE_DIRECTORIES will throw an error.
|
||
|
# To make it work, we just create the directory now during config.
|
||
|
file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIRS})
|
||
|
file(MAKE_DIRECTORY ${GMOCK_INCLUDE_DIRS})
|
||
|
|
||
|
ExternalProject_Get_Property(googletest binary_dir)
|
||
|
set(GTEST_LIBRARY_PATH ${binary_dir}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a)
|
||
|
set(GTEST_LIBRARY gtest)
|
||
|
add_library(${GTEST_LIBRARY} UNKNOWN IMPORTED)
|
||
|
set_target_properties(${GTEST_LIBRARY} PROPERTIES
|
||
|
"IMPORTED_LOCATION" "${GTEST_LIBRARY_PATH}"
|
||
|
"IMPORTED_LINK_INTERFACE_LIBRARIES" "${CMAKE_THREAD_LIBS_INIT}"
|
||
|
"INTERFACE_INCLUDE_DIRECTORIES" "${GTEST_INCLUDE_DIRS}")
|
||
|
add_dependencies(${GTEST_LIBRARY} googletest)
|
||
|
|
||
|
set(GTEST_MAIN_LIBRARY_PATH ${binary_dir}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main.a)
|
||
|
set(GTEST_MAIN_LIBRARY gtest_main)
|
||
|
add_library(${GTEST_MAIN_LIBRARY} UNKNOWN IMPORTED)
|
||
|
set_target_properties(${GTEST_MAIN_LIBRARY} PROPERTIES
|
||
|
"IMPORTED_LOCATION" "${GTEST_MAIN_LIBRARY_PATH}"
|
||
|
"IMPORTED_LINK_INTERFACE_LIBRARImS" "${CMAKE_THREAD_LIBS_INIT}"
|
||
|
"INTERFACE_INCLUDE_DIRECTORIES" "${GTEST_INCLUDE_DIRS}")
|
||
|
add_dependencies(${GTEST_MAIN_LIBRARY} googletest)
|
||
|
|
||
|
# set(GMOCK_LIBRARY_PATH ${binary_dir}/googlemock/${CMAKE_FIND_LIBRARY_PREFIXES}gmock.a)
|
||
|
# set(GMOCK_LIBRARY gmock)
|
||
|
# add_library(${GMOCK_LIBRARY} UNKNOWN IMPORTED)
|
||
|
# set_target_properties(${GMOCK_LIBRARY} PROPERTIES
|
||
|
# "IMPORTED_LOCATION" "${GMOCK_LIBRARY_PATH}"
|
||
|
# "IMPORTED_LINK_INTERFACE_LIBRARIES" "${CMAKE_THREAD_LIBS_INIT}"
|
||
|
# "INTERFACE_INCLUDE_DIRECTORIES" "${GMOCK_INCLUDE_DIRS}")
|
||
|
# add_dependencies(${GMOCK_LIBRARY} googletest)
|
||
|
|
||
|
# set(GMOCK_MAIN_LIBRARY_PATH ${binary_dir}/googlemock/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main.a)
|
||
|
# set(GMOCK_MAIN_LIBRARY gmock_main)
|
||
|
# add_library(${GMOCK_MAIN_LIBRARY} UNKNOWN IMPORTED)
|
||
|
# set_target_properties(${GMOCK_MAIN_LIBRARY} PROPERTIES
|
||
|
# "IMPORTED_LOCATION" "${GMOCK_MAIN_LIBRARY_PATH}"
|
||
|
# "IMPORTED_LINK_INTERFACE_LIBRARIES" "${CMAKE_THREAD_LIBS_INIT}"
|
||
|
# "INTERFACE_INCLUDE_DIRECTORIES" "${GMOCK_INCLUDE_DIRS}")
|
||
|
# add_dependencies(${GMOCK_MAIN_LIBRARY} ${GTEST_LIBRARY})
|