eedb/cmake/FindAllRequirements.cmake
2018-01-23 14:54:31 +01:00

107 lines
3.4 KiB
CMake

include(ExternalProject)
# This function is used to force a build on a dependant project at cmake configuration phase.
#
function (build_external_project target prefix url) #FOLLOWING ARGUMENTS are the CMAKE_ARGS of ExternalProject_Add
set(trigger_build_dir ${CMAKE_BINARY_DIR}/force_${target})
#mktemp dir in build tree
file(MAKE_DIRECTORY ${trigger_build_dir} ${trigger_build_dir}/build)
#generate false dependency project
set(CMAKE_LIST_CONTENT "
cmake_minimum_required(VERSION 2.8)
include(ExternalProject)
ExternalProject_add(${target}
PREFIX ${prefix}/${target}
GIT_REPOSITORY ${url}
CMAKE_ARGS ${ARGN}
INSTALL_COMMAND \"\"
)
add_custom_target(trigger_${target})
add_dependencies(trigger_${target} ${target})
")
file(WRITE ${trigger_build_dir}/CMakeLists.txt "${CMAKE_LIST_CONTENT}")
execute_process(COMMAND ${CMAKE_COMMAND} ..
WORKING_DIRECTORY ${trigger_build_dir}/build
)
execute_process(COMMAND ${CMAKE_COMMAND} --build .
WORKING_DIRECTORY ${trigger_build_dir}/build
)
endfunction()
SET(_BOOST_COMPONENTS program_options system filesystem thread)
hunter_add_package(Boost COMPONENTS ${_BOOST_COMPONENTS})
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost CONFIG REQUIRED ${_BOOST_COMPONENTS})
hunter_add_package(nlohmann_json)
find_package(nlohmann_json CONFIG REQUIRED)
hunter_add_package(GTest)
find_package(GMock CONFIG REQUIRED)
hunter_add_package(benchmark)
find_package(benchmark CONFIG REQUIRED)
hunter_add_package(spdlog)
find_package(spdlog CONFIG REQUIRED)
hunter_add_package(range-v3)
find_package(range-v3 CONFIG REQUIRED)
set(EXTERNAL_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/lib CACHE STRING "external libs root path")
set(EXTERNAL_LOCATION ${CMAKE_BINARY_DIR}/external CACHE STRING "external sources root path")
set(_HUNTER_ROOT "${Boost_DIR}/../../../")
project(wt-download NONE)
build_external_project(project_wt external
https://github.com/emweb/wt.git
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION}
-DSHARED_LIBS:BOOL=OFF
-DBoost_NO_BOOST_CMAKE=TRUE
-DBoost_NO_SYSTEM_PATHS=TRUE
-DBOOST_ROOT:PATHNAME=${_HUNTER_ROOT}
-DBOOST_INCLUDEDIR:FILEPATH=${_HUNTER_ROOT}/include
-DBOOST_LIBRARYDIR:FILEPATH=${_HUNTER_ROOT}/lib
-DBoost_USE_STATIC_LIBS=TRUE
-DBUILD_EXAMPLES=OFF
-DINSTALL_RESOURCES=OFF
-DENABLE_SSL=OFF
-DENABLE_HARU=OFF
-DENABLE_PANGO=OFF
-DENABLE_SQLITE=OFF
-DENABLE_POSTGRES=OFF
-DENABLE_FIREBIRD=OFF
-DENABLE_MYSQL=OFF
-DENABLE_MSSQLSERVER=OFF
-DENABLE_QT4=OFF
-DENABLE_LIBWTDBO=OFF
-DENABLE_OPENGL=OFF
-DENABLE_UNWIND=OFF
-DCONNECTOR_FCGI=OFF
)
#ExternalProject_Get_Property(project_wt install_dir)
add_library(wt STATIC IMPORTED)
set_target_properties(wt PROPERTIES IMPORTED_LOCATION ${EXTERNAL_INSTALL_LOCATION}/lib/libwt.a)
add_dependencies(wt project_wt)
add_library(wthttp STATIC IMPORTED)
set_target_properties(wthttp PROPERTIES IMPORTED_LOCATION ${EXTERNAL_INSTALL_LOCATION}/lib/libwthttp.a)
add_dependencies(wthttp project_wt)
#LIST(APPEND CMAKE_MODULE_PATH "${/home/bwieczor/src/build-eedb-Desktop-Debug/external/lib/cmake/}")
#find_library(wt REQUIRED)
#find_library(wthttp REQUIRED)