diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7928721..1a3693a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,12 +3,9 @@ stages: Build: stage: build - image: eedb.pl:5001/eedb_buildsystem - tags: - - c++ + image: rikorose/gcc-cmake:gcc-7 script: - mkdir build -p; cd build - - cmake -GNinja -DCMAKE_BUILD_TYPE=Release ../ - - cmake --build . - - ccache -s + - cmake -DCMAKE_BUILD_TYPE=Release ../ + - cmake --build . -- -j14 diff --git a/CMakeLists.txt b/CMakeLists.txt index 5238465..9d79381 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,23 +1,21 @@ -cmake_minimum_required(VERSION 3.8) +cmake_minimum_required(VERSION 3.9) include(cmake/HunterGate.cmake) - HunterGate( - URL "https://github.com/ruslo/hunter/archive/v0.23.1.tar.gz" - SHA1 "51d2d6be411251c8de18c4ca20ef778880cf4cce" + URL "https://github.com/ruslo/hunter/archive/v0.23.83.tar.gz" + SHA1 "12dec078717539eb7b03e6d2a17797cba9be9ba9" + LOCAL ) project(eedb) find_package(Threads) - set(CMAKE_CXX_STANDARD 17) set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) -set(HUNTER_BUILD_SHARED_LIBS TRUE) -#pip install conan -#cmake -DSIPLASPLAS_LIBCLANG_VERSION=5.0 -DSIPLASPLAS_LIBCLANG_SYSTEM_INCLUDE_DIR=/usr/lib/clang/5.0/include -DSIPLASPLAS_LIBCLANG_LIBRARY=/usr/lib/clang/5.0/lib +#set(HUNTER_STATUS_DEBUG TRUE) +set(HUNTER_BUILD_SHARED_LIBS TRUE) include(cmake/Compiler.cmake) include(cmake/FindAllRequirements.cmake) @@ -35,7 +33,6 @@ set(Sqlpp11_DIR "${CMAKE_BINARY_DIR}/local/lib/cmake/Sqlpp11") set(wt_DIR "${CMAKE_BINARY_DIR}/local/lib/cmake/wt") set(Sqlpp-connector-postgresql_DIR "${CMAKE_BINARY_DIR}/local/lib/cmake/sqlpp-connector-postgresql") - find_program( CLANG_TIDY_EXE NAMES "clang-tidy-5.0" diff --git a/cmake/FindAllRequirements.cmake b/cmake/FindAllRequirements.cmake index 1918555..60e1dc5 100644 --- a/cmake/FindAllRequirements.cmake +++ b/cmake/FindAllRequirements.cmake @@ -1,4 +1,5 @@ SET(_BOOST_COMPONENTS program_options system filesystem thread chrono atomic date_time) + hunter_add_package(Boost COMPONENTS ${_BOOST_COMPONENTS}) find_package(Boost CONFIG REQUIRED ${_BOOST_COMPONENTS}) @@ -19,6 +20,7 @@ find_package(spdlog CONFIG REQUIRED) #hunter_add_package(range-v3) #find_package(range-v3 CONFIG REQUIRED) + hunter_add_package(date) find_package(date CONFIG REQUIRED) @@ -28,8 +30,17 @@ hunter_add_package(flex) hunter_add_package(PostgreSQL) find_package(PostgreSQL REQUIRED) +add_library(install_deps STATIC ./cmake/install_deps.sh) +set_target_properties(install_deps PROPERTIES LINKER_LANGUAGE C) + set(INSTALL_DEPS_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake/install_deps.sh") +message(INFO "cmake prefix path: ${CMAKE_PREFIX_PATH}") + +list(REVERSE CMAKE_PREFIX_PATH) + +message(INFO "cmake prefix path: ${Boost_LIBRARY_DIR_DEBUG}") + execute_process( COMMAND ${INSTALL_DEPS_SCRIPT} "${CMAKE_COMMAND}" diff --git a/cmake/Hunter/config.cmake b/cmake/Hunter/config.cmake new file mode 100644 index 0000000..37d0e5d --- /dev/null +++ b/cmake/Hunter/config.cmake @@ -0,0 +1,21 @@ +#hunter_config(wt +# VERSION +# 4.0.4-p0 +# CMAKE_ARGS +# BUILD_EXAMPLES=OFF +# ENABLE_SSL=OFF +# ENABLE_HARU=OFF +# ENABLE_PANGO=OFF +# ENABLE_SQLITE=OFF +# ENABLE_POSTGRES=OFF +# ENABLE_FIREBIRD=OFF +# ENABLE_MYSQL=OFF +# ENABLE_MSSQLSERVER=OFF +# ENABLE_LIBWTDBO=TRUE +# ENABLE_QT4=OFF +# ENABLE_OPENGL=OFF +# ENABLE_UNWIND=OFF +# INSTALL_RESOURCES=ON +# CONNECTOR_FCGI=OFF +# WT_CPP17_ANY_IMPLEMENTATION=std +#) diff --git a/cmake/HunterGate.cmake b/cmake/HunterGate.cmake index c24c0e5..887557a 100644 --- a/cmake/HunterGate.cmake +++ b/cmake/HunterGate.cmake @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2017, Ruslan Baratov +# Copyright (c) 2013-2018, Ruslan Baratov # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ # This is a gate file to Hunter package manager. # Include this file using `include` command and add package you need, example: # -# cmake_minimum_required(VERSION 3.0) +# cmake_minimum_required(VERSION 3.2) # # include("cmake/HunterGate.cmake") # HunterGate( @@ -43,10 +43,14 @@ # * https://github.com/ruslo/hunter option(HUNTER_ENABLED "Enable Hunter package manager support" ON) + if(HUNTER_ENABLED) - if(CMAKE_VERSION VERSION_LESS "3.0") - message(FATAL_ERROR "At least CMake version 3.0 required for hunter dependency management." - " Update CMake or set HUNTER_ENABLED to OFF.") + if(CMAKE_VERSION VERSION_LESS "3.2") + message( + FATAL_ERROR + "At least CMake version 3.2 required for Hunter dependency management." + " Update CMake or set HUNTER_ENABLED to OFF." + ) endif() endif() @@ -59,20 +63,20 @@ option(HUNTER_TLS_VERIFY "Enable/disable TLS certificate checking on downloads" set(HUNTER_WIKI "https://github.com/ruslo/hunter/wiki") function(hunter_gate_status_print) - foreach(print_message ${ARGV}) - if(HUNTER_STATUS_PRINT OR HUNTER_STATUS_DEBUG) + if(HUNTER_STATUS_PRINT OR HUNTER_STATUS_DEBUG) + foreach(print_message ${ARGV}) message(STATUS "[hunter] ${print_message}") - endif() - endforeach() + endforeach() + endif() endfunction() function(hunter_gate_status_debug) - foreach(print_message ${ARGV}) - if(HUNTER_STATUS_DEBUG) + if(HUNTER_STATUS_DEBUG) + foreach(print_message ${ARGV}) string(TIMESTAMP timestamp) message(STATUS "[hunter *** DEBUG *** ${timestamp}] ${print_message}") - endif() - endforeach() + endforeach() + endif() endfunction() function(hunter_gate_wiki wiki_page) @@ -195,20 +199,6 @@ function(hunter_gate_detect_root) ) endfunction() -macro(hunter_gate_lock dir) - if(NOT HUNTER_SKIP_LOCK) - if("${CMAKE_VERSION}" VERSION_LESS "3.2") - hunter_gate_fatal_error( - "Can't lock, upgrade to CMake 3.2 or use HUNTER_SKIP_LOCK" - WIKI "error.can.not.lock" - ) - endif() - hunter_gate_status_debug("Locking directory: ${dir}") - file(LOCK "${dir}" DIRECTORY GUARD FUNCTION) - hunter_gate_status_debug("Lock done") - endif() -endmacro() - function(hunter_gate_download dir) string( COMPARE @@ -248,7 +238,10 @@ function(hunter_gate_download dir) set(build_dir "${dir}/Build") set(cmakelists "${dir}/CMakeLists.txt") - hunter_gate_lock("${dir}") + hunter_gate_status_debug("Locking directory: ${dir}") + file(LOCK "${dir}" DIRECTORY GUARD FUNCTION) + hunter_gate_status_debug("Lock done") + if(EXISTS "${done_location}") # while waiting for lock other instance can do all the job hunter_gate_status_debug("File '${done_location}' found, skip install") @@ -265,7 +258,7 @@ function(hunter_gate_download dir) file( WRITE "${cmakelists}" - "cmake_minimum_required(VERSION 3.0)\n" + "cmake_minimum_required(VERSION 3.2)\n" "project(HunterDownload LANGUAGES NONE)\n" "include(ExternalProject)\n" "ExternalProject_Add(\n" @@ -330,7 +323,11 @@ function(hunter_gate_download dir) ) if(NOT download_result EQUAL 0) - hunter_gate_internal_error("Configure project failed") + hunter_gate_internal_error( + "Configure project failed." + "To reproduce the error run: ${CMAKE_COMMAND} -H${dir} -B${build_dir} -G${CMAKE_GENERATOR} ${toolchain_arg} ${make_arg}" + "In directory ${dir}" + ) endif() hunter_gate_status_print( @@ -396,7 +393,7 @@ macro(HunterGate) ) include("${_hunter_self}/cmake/Hunter") else() - set(HUNTER_GATE_LOCATION "${CMAKE_CURRENT_LIST_DIR}") + set(HUNTER_GATE_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}") string(COMPARE NOTEQUAL "${PROJECT_NAME}" "" _have_project_name) if(_have_project_name) diff --git a/cmake/install_deps.sh b/cmake/install_deps.sh index e512ca2..df83721 100755 --- a/cmake/install_deps.sh +++ b/cmake/install_deps.sh @@ -1,3 +1,5 @@ +#!/bin/bash + CMAKE_COMMAND=$1 CMAKE_GENERATOR=$2 CMAKE_CXX_COMPILER=$3 @@ -7,6 +9,8 @@ CMAKE_RPATH=$6 CMAKE_INSTALL_PREFIX=$7 CMAKE_BUILD_TYPE=$8 +echo "CMAKE prefix path in script: ${CMAKE_PREFIX_PATH}" + if [ ! -d ${CMAKE_INSTALL_PREFIX} ]; then mkdir -p ${CMAKE_INSTALL_PREFIX} fi @@ -36,9 +40,8 @@ else cd ChaiScript; git pull; cd ../ fi -echo ${CMAKE_PREFIX_PATH} - # install all +echo "building sqlpp11" mkdir sqlpp11-build -p; cd sqlpp11-build ${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../sqlpp11\ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\ @@ -49,6 +52,7 @@ ${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../sqlpp11\ ${CMAKE_COMMAND} --build . --target install cd ../ +echo "building sqlpp11-connector-postgresql" mkdir sqlpp11-connector-postgresql-build -p; cd sqlpp11-connector-postgresql-build ${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../sqlpp11-connector-postgresql\ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\ @@ -57,19 +61,41 @@ ${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../sqlpp11-connector-postgresql\ -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}"\ -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"\ -DENABLE_TESTS=FALSE -${CMAKE_COMMAND} --build . --target install +${CMAKE_COMMAND} --build . --target install -- -j$(nproc) cd ../ +echo "building wt" + +echo "fixing boost library names" +( + cd "${CMAKE_RPATH}" + files="libboost_*.so.*" + regex="libboost_([a-z_]*-mt(-d)?).*.so*" + for f in $files # unquoted in order to allow the glob to expand + do + if [[ $f =~ $regex ]] + then + libname="${BASH_REMATCH[1]}" + linkname="libboost_${libname}.so" + if [ ! -e ${linkname} ]; then + echo "Linking ${f} as libboost_${libname}.so" + ln -s "${f}" "libboost_${libname}.so" # same thing stored in a variable + fi + else + echo "$f doesn't match" >&2 # this could get noisy if there are a lot of non-matching files + fi + done +) + mkdir wt-build -p; cd wt-build -${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../wt\ +${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" \ + ../wt\ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}\ -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}"\ -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"\ -DCMAKE_INSTALL_RPATH="${CMAKE_RPATH}"\ -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}"\ - -DBoost_NO_BOOST_CMAKE=FALSE\ - -DBoost_NO_SYSTEM_PATHS=TRUE\ -DBUILD_EXAMPLES=OFF\ -DINSTALL_RESOURCES=ON\ -DENABLE_SSL=OFF\ @@ -85,9 +111,10 @@ ${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../wt\ -DENABLE_OPENGL=OFF\ -DENABLE_UNWIND=OFF\ -DCONNECTOR_FCGI=OFF -${CMAKE_COMMAND} --build . --target install +${CMAKE_COMMAND} --build . --target install -- -j$(nproc) cd ../ +echo "building ChaiScript" mkdir ChaiScript-build -p; cd ChaiScript-build ${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../ChaiScript\ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\ @@ -101,6 +128,6 @@ ${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../ChaiScript\ -DBUILD_SAMPLES=FALSE\ -DRUN_FUZZY_TESTS=FALSE\ -DUSE_STD_MAKE_SHARED=TRUE\ - -DRUN_PERFORMANCE_TESTS=FALSE -${CMAKE_COMMAND} --build . --target install + -DRUN_PERFORMANCE_TESTS=FALSE +${CMAKE_COMMAND} --build . --target install -- -j$(expr $(nproc) / 2) cd ../ diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index ee1c4f6..34aaa04 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -5,8 +5,9 @@ set(SOURCES add_executable(eedb ${SOURCES}) target_link_libraries(eedb - PRIVATE webapp - PRIVATE postgres_connector - PRIVATE dl - PRIVATE chaiscript_bindings + PRIVATE + webapp + postgres_connector + dl + chaiscript_bindings ) diff --git a/src/app/main.cpp b/src/app/main.cpp index 98224e8..fb6379b 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include #include @@ -15,9 +17,9 @@ static auto _createSinks() { std::vector< spdlog::sink_ptr > sinks; - auto stdout_sink = spdlog::sinks::stdout_sink_mt::instance(); + auto stdout_sink = spdlog::stdout_logger_mt("default"); // sinks.emplace_back(std::make_shared< spdlog::sinks::ansicolor_sink >(stdout_sink)); - sinks.emplace_back(std::make_shared< spdlog::sinks::daily_file_sink_st >("logfile", 23, 59)); +// sinks.emplace_back(std::make_shared< spdlog::sinks::daily_file_sink_st >("logfile", 23, 59)); return sinks; } diff --git a/src/libs/auth/CMakeLists.txt b/src/libs/auth/CMakeLists.txt index a8f5862..db0d8ae 100644 --- a/src/libs/auth/CMakeLists.txt +++ b/src/libs/auth/CMakeLists.txt @@ -5,6 +5,9 @@ set(LIB auth) file(GLOB ${LIB}_SOURCE src/*) # find packages +#hunter_add_package(wt) +find_package(wt REQUIRED) + find_package(nlohmann_json CONFIG REQUIRED) # create library @@ -12,12 +15,15 @@ add_library(${LIB} ${${LIB}_SOURCE}) # link all target_include_directories( ${LIB} - PUBLIC include + PUBLIC + include ) target_link_libraries( ${LIB} - PRIVATE nlohmann_json - PRIVATE eedb_api + PRIVATE + nlohmann_json::nlohmann_json + eedb_api + Wt::Wt ) # add cotire diff --git a/src/libs/chaiscript_bindings/CMakeLists.txt b/src/libs/chaiscript_bindings/CMakeLists.txt index 5a90a2b..68d12f6 100644 --- a/src/libs/chaiscript_bindings/CMakeLists.txt +++ b/src/libs/chaiscript_bindings/CMakeLists.txt @@ -9,16 +9,19 @@ set(${PKG_CONFIG_USE_CMAKE_PREFIX_PATH} ON) pkg_check_modules(chaiscript REQUIRED) # create library -add_library(${LIB} src/chai_bindings.cpp ) +add_library(${LIB} src/chai_bindings.cpp) # link all target_include_directories(${LIB} - PUBLIC include + PUBLIC + include ) target_link_libraries(${LIB} - PUBLIC eedb_api - PRIVATE Boost::system - PRIVATE Boost::filesystem + PUBLIC + eedb_api + PRIVATE + Boost::system + Boost::filesystem ) diff --git a/src/libs/db/postgresql_connector/CMakeLists.txt b/src/libs/db/postgresql_connector/CMakeLists.txt index adf506e..2cc97d0 100644 --- a/src/libs/db/postgresql_connector/CMakeLists.txt +++ b/src/libs/db/postgresql_connector/CMakeLists.txt @@ -7,25 +7,31 @@ find_package(Sqlpp11 REQUIRED) find_package(Sqlpp-connector-postgresql REQUIRED) # create library -add_library(${LIB} STATIC ${${LIB}_SOURCE}) +add_library(${LIB} STATIC + ${${LIB}_SOURCE} +) # link all target_include_directories (${LIB} - PRIVATE ${CMAKE_BINARY_DIR}/external/include SYSTEM - PRIVATE ${PostgreSQL_INCLUDE_DIRS} + PRIVATE + ${CMAKE_BINARY_DIR}/external/include SYSTEM + ${PostgreSQL_INCLUDE_DIRS} ) target_include_directories(${LIB} - PUBLIC include + PUBLIC + include ) target_link_libraries(${LIB} - PUBLIC eedb_api - PRIVATE sqlpp11-connector-postgresql - PRIVATE pq - PRIVATE Boost::system - PRIVATE Boost::filesystem - PRIVATE stdc++fs + PUBLIC + eedb_api + PRIVATE + sqlpp11-connector-postgresql + pq + Boost::system + Boost::filesystem + stdc++fs ) set_target_properties( diff --git a/src/libs/db/postgresql_connector/src/Session.cpp b/src/libs/db/postgresql_connector/src/Session.cpp index 8a31b95..6870deb 100644 --- a/src/libs/db/postgresql_connector/src/Session.cpp +++ b/src/libs/db/postgresql_connector/src/Session.cpp @@ -11,8 +11,8 @@ #include namespace { -SQLPP_ALIAS_PROVIDER(cteLastLogin); -SQLPP_ALIAS_PROVIDER(cteLastFailed); +SQLPP_ALIAS_PROVIDER(cteLastLogin) +SQLPP_ALIAS_PROVIDER(cteLastFailed) constexpr auto actions = std::experimental::make_array("login", "logout", "failed_login"); diff --git a/src/libs/db/postgresql_connector/test/CMakeLists.txt b/src/libs/db/postgresql_connector/test/CMakeLists.txt index 75a4e66..2bd8b4a 100644 --- a/src/libs/db/postgresql_connector/test/CMakeLists.txt +++ b/src/libs/db/postgresql_connector/test/CMakeLists.txt @@ -11,10 +11,11 @@ file(GLOB_RECURSE TEST_FILES test_*.cpp ) add_executable( ${TEST_EXECUTABLE_NAME} ${TEST_FILES}) target_link_libraries(${TEST_EXECUTABLE_NAME} - PRIVATE postgres_connector-mock - PRIVATE eedb_api - PRIVATE postgres_connector - PRIVATE GMock::main + PRIVATE + postgres_connector-mock + eedb_api + postgres_connector + GMock::main ) add_test( ${TEST_EXECUTABLE_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TEST_EXECUTABLE_NAME}) diff --git a/src/libs/eedb/include/eedb/AuthInfoConst.hpp b/src/libs/eedb/include/eedb/AuthInfoConst.hpp index 72eb660..3475493 100644 --- a/src/libs/eedb/include/eedb/AuthInfoConst.hpp +++ b/src/libs/eedb/include/eedb/AuthInfoConst.hpp @@ -12,7 +12,7 @@ class AuthInfoConst final : public AuthInfo { using string = std::string; public: - virtual ~AuthInfoConst() = default; + virtual ~AuthInfoConst() override = default; AuthInfoConst(Password pass, Email email) : _password{std::move(pass)}, _email{std::move(email)} {} @@ -24,7 +24,9 @@ class AuthInfoConst final : public AuthInfo { return _email; } - virtual bool emailVerified() const override {} + virtual bool emailVerified() const override { + return true; + } private: Password _password; diff --git a/src/libs/eedb/test/CMakeLists.txt b/src/libs/eedb/test/CMakeLists.txt index c75ada6..7496809 100644 --- a/src/libs/eedb/test/CMakeLists.txt +++ b/src/libs/eedb/test/CMakeLists.txt @@ -9,9 +9,10 @@ file(GLOB_RECURSE TEST_FILES test_*.cpp ) add_executable( ${TEST_EXECUTABLE_NAME} ${TEST_FILES}) target_link_libraries(${TEST_EXECUTABLE_NAME} - PRIVATE eedb_api - PRIVATE eedb_api-mock - PRIVATE GMock::main + PRIVATE + eedb_api + eedb_api-mock + GMock::main ) add_test( ${TEST_EXECUTABLE_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TEST_EXECUTABLE_NAME}) diff --git a/src/libs/webapp/CMakeLists.txt b/src/libs/webapp/CMakeLists.txt index ff6ffb2..b350375 100644 --- a/src/libs/webapp/CMakeLists.txt +++ b/src/libs/webapp/CMakeLists.txt @@ -6,38 +6,36 @@ file(GLOB ${LIB}_CONFIG config/*) configure_file(config/wt_config_${CMAKE_BUILD_TYPE}.xml ${CMAKE_BINARY_DIR}/local/etc/wt/wt_config.xml COPYONLY) # find packages +#hunter_add_package(wt) find_package(wt REQUIRED) + find_package(nlohmann_json CONFIG REQUIRED) -if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(Wt_LIBRARY wtd) - set(Wt_HTTP_LIBRARY wthttpd) - set(Wt_TEST_LIBRARY wttestd) -else (CMAKE_BUILD_TYPE STREQUAL "Release") - set(Wt_LIBRARY wt) - set(Wt_HTTP_LIBRARY wthttp) - set(Wt_TEST_LIBRARY wttest) -endif() - # create library -add_library(${LIB} STATIC ${${LIB}_SOURCE} ${${LIB}_CONFIG}) +add_library(${LIB} STATIC + ${${LIB}_SOURCE} + ${${LIB}_CONFIG} +) # link all target_include_directories(${LIB} - PUBLIC include + PUBLIC + include ) target_link_libraries(${LIB} - PUBLIC auth - PUBLIC eedb_api - PUBLIC stdc++fs - PUBLIC nlohmann_json - PRIVATE ${Wt_HTTP_LIBRARY} - PRIVATE ${Wt_LIBRARY} - PRIVATE Boost::system - PRIVATE Boost::filesystem - PRIVATE Boost::thread - PRIVATE Boost::program_options + PUBLIC + auth + eedb_api + stdc++fs + nlohmann_json::nlohmann_json + PRIVATE + Wt::Wt + Wt::HTTP + Boost::system + Boost::filesystem + Boost::thread + Boost::program_options ) # add cotire diff --git a/src/libs/webapp/mock/include/eedb/mock/HomePageMock.hpp b/src/libs/webapp/mock/include/eedb/mock/HomePageMock.hpp index a076396..66c3831 100644 --- a/src/libs/webapp/mock/include/eedb/mock/HomePageMock.hpp +++ b/src/libs/webapp/mock/include/eedb/mock/HomePageMock.hpp @@ -15,7 +15,9 @@ public: // HomePage interface public: - NavigationBar *navigationBar() const override{}; + NavigationBar * navigationBar() const override { + return nullptr; + }; }; } // namespace eedb diff --git a/src/libs/webapp/test/CMakeLists.txt b/src/libs/webapp/test/CMakeLists.txt index 62d4cd6..b940fa1 100644 --- a/src/libs/webapp/test/CMakeLists.txt +++ b/src/libs/webapp/test/CMakeLists.txt @@ -10,11 +10,12 @@ file(GLOB_RECURSE TEST_FILES *.cpp ) add_executable( ${TEST_EXECUTABLE_NAME} ${TEST_FILES}) target_link_libraries(${TEST_EXECUTABLE_NAME} - PRIVATE ${Wt_TEST_LIBRARY} - PRIVATE eedb_api - PRIVATE webapp - PRIVATE webapp-mock - PRIVATE GMock::gmock + PRIVATE + Wt::Test + eedb_api + webapp + webapp-mock + GMock::gmock ) add_test( ${TEST_EXECUTABLE_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TEST_EXECUTABLE_NAME}) diff --git a/src/libs/webapp/test/main.cpp b/src/libs/webapp/test/main.cpp index 329b2f9..d43170e 100644 --- a/src/libs/webapp/test/main.cpp +++ b/src/libs/webapp/test/main.cpp @@ -2,13 +2,16 @@ #include -class nullsink : public spdlog::sinks::sink{ - +class nullsink : public spdlog::sinks::sink { + // sink interface + public: + void log(const spdlog::details::log_msg &) override {} + void flush() override {} // sink interface -public: - void log(const spdlog::details::log_msg &) override{} - void flush() override{} + public: + void set_pattern(const std::string &) override {} + void set_formatter(std::unique_ptr< spdlog::formatter >) override {} }; static auto _createSinks() { @@ -26,7 +29,6 @@ static void initializeLogs() { spdlog::register_logger(combined_logger); } - int main(int argc, char * argv[]) { testing::InitGoogleTest(&argc, argv); initializeLogs();