Download and build libfor right from CMake.

This commit is contained in:
Kishore Nallan 2016-10-16 22:22:09 +05:30
parent d2b903a931
commit da4c31065a
2 changed files with 32 additions and 31 deletions

View File

@ -4,37 +4,7 @@ project(typesense)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=c++11 -O0")
# Download and compile gtest -------------------------------------------------------------------------------------------
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0)
set(GTEST_TAR_PATH ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0.tar.gz)
message(STATUS "Downloading and extracting Google Test...")
file(DOWNLOAD https://github.com/google/googletest/archive/release-1.8.0.tar.gz ${GTEST_TAR_PATH})
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvzf ${GTEST_TAR_PATH})
file(RENAME ${CMAKE_SOURCE_DIR}/googletest-release-1.8.0 ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0)
endif()
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build)
message("Configuring Google Test...")
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build)
execute_process(COMMAND ${CMAKE_COMMAND}
"-H${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest"
"-B${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build"
RESULT_VARIABLE
GOOGLETEST_CONFIGURE)
if(NOT GOOGLETEST_CONFIGURE EQUAL 0)
message(FATAL_ERROR "Google Test Configure failed!")
endif()
message("Building Google Test locally...")
execute_process(COMMAND ${CMAKE_COMMAND} --build
"${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build"
RESULT_VARIABLE
GOOGLETEST_BUILD)
if(NOT GOOGLETEST_BUILD EQUAL 0)
message(FATAL_ERROR "Google Test build failed!")
endif()
endif()
#-----------------------------------------------------------------------------------------------------------------------
include(GoogleTest.cmake)
if (APPLE)
add_definitions(-DGTEST_USE_OWN_TR1_TUPLE)

31
GoogleTest.cmake Normal file
View File

@ -0,0 +1,31 @@
# Download and compile gtest
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0)
set(GTEST_TAR_PATH ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0.tar.gz)
message(STATUS "Downloading and extracting Google Test...")
file(DOWNLOAD https://github.com/google/googletest/archive/release-1.8.0.tar.gz ${GTEST_TAR_PATH})
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvzf ${GTEST_TAR_PATH})
file(RENAME ${CMAKE_SOURCE_DIR}/googletest-release-1.8.0 ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0)
endif()
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build)
message("Configuring Google Test...")
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build)
execute_process(COMMAND ${CMAKE_COMMAND}
"-H${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest"
"-B${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build"
RESULT_VARIABLE
GOOGLETEST_CONFIGURE)
if(NOT GOOGLETEST_CONFIGURE EQUAL 0)
message(FATAL_ERROR "Google Test Configure failed!")
endif()
message("Building Google Test locally...")
execute_process(COMMAND ${CMAKE_COMMAND} --build
"${CMAKE_SOURCE_DIR}/external/googletest-release-1.8.0/googletest/build"
RESULT_VARIABLE
GOOGLETEST_BUILD)
if(NOT GOOGLETEST_BUILD EQUAL 0)
message(FATAL_ERROR "Google Test build failed!")
endif()
endif()