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}/../../../") 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 ) 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)