diff --git a/CMakeLists.txt b/CMakeLists.txt index 2aeac16..ea80633 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,8 @@ HunterGate( project(eedb) +set(HUNTER_BUILD_SHARED_LIBS TRUE) + include(cmake/Compiler.cmake) include(cmake/FindAllRequirements.cmake) @@ -28,7 +30,7 @@ include(cmake/FindAllRequirements.cmake) #set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/usr/share/cmake/Modules/") #find_package(Wt REQUIRED) #find_package(Sqlpp11 REQUIRED) -#find_package(PostgreSQL REQUIRED) +#target_link_libraries(... PostgreSQL::libpq) add_subdirectory(src) #add_subdirectory(tests) diff --git a/cmake/FindAllRequirements.cmake b/cmake/FindAllRequirements.cmake index dfa2c13..7531694 100644 --- a/cmake/FindAllRequirements.cmake +++ b/cmake/FindAllRequirements.cmake @@ -27,18 +27,20 @@ function (build_external_project target prefix url) #FOLLOWING ARGUMENTS are the file(WRITE ${trigger_build_dir}/CMakeLists.txt "${CMAKE_LIST_CONTENT}") - execute_process(COMMAND ${CMAKE_COMMAND} .. + execute_process(COMMAND ${CMAKE_COMMAND} -G${CMAKE_GENERATOR} .. WORKING_DIRECTORY ${trigger_build_dir}/build ) execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${trigger_build_dir}/build ) + execute_process(COMMAND ${CMAKE_COMMAND} --build . --target install + WORKING_DIRECTORY ${trigger_build_dir}/build/${prefix}/${target}/src/${target}-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) @@ -56,22 +58,27 @@ find_package(spdlog CONFIG REQUIRED) hunter_add_package(range-v3) find_package(range-v3 CONFIG REQUIRED) +#hunter_add_package(PostgreSQL) +#find_package(PostgreSQL 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 +message("HUNTER ROOT DIRECTORY ${_HUNTER_ROOT}") + +build_external_project(project_wt wt 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 + -DCMAKE_INSTALL_PREFIX=${EXTERNAL_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 +# -DBoost_USE_STATIC_LIBS=TRUE -DBUILD_EXAMPLES=OFF -DINSTALL_RESOURCES=OFF -DENABLE_SSL=OFF @@ -89,15 +96,30 @@ build_external_project(project_wt external -DCONNECTOR_FCGI=OFF ) -add_library(wt STATIC IMPORTED) -set_target_properties(wt PROPERTIES IMPORTED_LOCATION ${EXTERNAL_INSTALL_LOCATION}/lib/libwt.a) +add_library(wt SHARED IMPORTED) +set_target_properties(wt PROPERTIES IMPORTED_LOCATION ${EXTERNAL_LOCATION}/lib/libwt.so) add_dependencies(wt project_wt) -add_library(wthttp STATIC IMPORTED) -set_target_properties(wthttp PROPERTIES IMPORTED_LOCATION ${EXTERNAL_INSTALL_LOCATION}/lib/libwthttp.a) +add_library(wthttp SHARED IMPORTED) +set_target_properties(wthttp PROPERTIES IMPORTED_LOCATION ${EXTERNAL_LOCATION}/lib/libwthttp.so) add_dependencies(wthttp project_wt) +LIST(APPEND CMAKE_MODULE_PATH "${EXTERNAL_LOCATION}") -#LIST(APPEND CMAKE_MODULE_PATH "${/home/bwieczor/src/build-eedb-Desktop-Debug/external/lib/cmake/}") -#find_library(wt REQUIRED) -#find_library(wthttp REQUIRED) +build_external_project(project_hhdate date + https://github.com/HowardHinnant/date.git + -DCMAKE_INSTALL_PREFIX=${EXTERNAL_LOCATION} + -DTZ_CXX_STANDARD=14 +) + +build_external_project(project_sqlpp sqlpp + https://github.com/rbock/sqlpp11.git + -DCMAKE_INSTALL_PREFIX=${EXTERNAL_LOCATION} + -DENABLE_TESTS=FALSE +) + +link_directories(${_HUNTER_ROOT}/lib) + +find_library(wt REQUIRED) +find_library(wthttp REQUIRED) +find_library(sqlpp REQUIRED) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 1156026..40aebe3 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -2,14 +2,13 @@ set(SOURCES main.cpp) #INCLUDE_DIRECTORIES(${PostgreSQL_INCLUDE_DIRS}) -include_directories(${EXTERNAL_INSTALL_LOCATION}/include) -remove_definitions(WTHTTP_WITH_ZLIB) +include_directories(${CMAKE_BINARY_DIR}/external/include) + add_executable(eedb ${SOURCES} ) #add_dependencies(eedb project_wt) -link_directories(${EXTERNAL_INSTALL_LOCATION}/lib) target_link_libraries(eedb wthttp # or {Wt_HTTP_DEBUG_LIBRARY} wt # or {Wt_DEBUG_LIBRARY}