diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 84 |
1 files changed, 60 insertions, 24 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a640f3e..ca5d5b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ project(smtp LANGUAGES CXX) cmake_policy(SET CMP0054 NEW) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fno-rtti") @@ -14,6 +14,18 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Os -flto") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") +option ( + ADD_JOURNAL_LOGGING + "All logging write to journalctl" + ON +) + +option ( + ADD_PHOSPHOR_LOGGING + "All logging write to webui" + OFF +) + if(NOT ${YOCTO_DEPENDENCIES}) include(ExternalProject) @@ -60,15 +72,18 @@ if(NOT ${YOCTO_DEPENDENCIES}) add_definitions(-DBOOST_NO_TYPEID) add_definitions(-DBOOST_ASIO_DISABLE_THREADS) else() - if(${BOOST_VERSION}) - find_package(Boost ${BOOST_VERSION} EXACT) - else() - find_package(Boost 1.69 REQUIRED COMPONENTS coroutine context) - endif() - message("++ Using Boost version: " ${Boost_VERSION}) - - include_directories(${Boost_INCLUDE_DIRS}) - link_directories(${Boost_LIBRARY_DIRS}) + if(${BOOST_VERSION}) + find_package(Boost ${BOOST_VERSION} EXACT) + else() + find_package(Boost 1.69 REQUIRED COMPONENTS coroutine context) + endif() + message("++ Using Boost version: " ${Boost_VERSION}) + + include_directories(${Boost_INCLUDE_DIRS}) + link_directories(${Boost_LIBRARY_DIRS}) + + find_package (PkgConfig REQUIRED) + pkg_check_modules (LOGGING phosphor-logging REQUIRED) endif() include_directories(src) @@ -81,6 +96,7 @@ set(FILE_DIR src/file) set(PARSER_DIR src/file/parser) set(MANAGER_BUILDER_DIR src/management/builder) set(CONVERTER_DIR src/converter) +set(LOGGER_DIR src/logger) set(CHECKER_DIR src/checker) set(SRC_FILES @@ -111,8 +127,6 @@ set(SRC_FILES ${MANAGEMENT_DIR}/mail.cpp ${MANAGEMENT_DIR}/settings.hpp ${MANAGEMENT_DIR}/settings.cpp - ${MANAGEMENT_DIR}/logger.hpp - ${MANAGEMENT_DIR}/logger.cpp ${MANAGEMENT_DIR}/general.hpp ${FILE_DIR}/mail.hpp @@ -137,6 +151,12 @@ set(SRC_FILES ${MANAGER_BUILDER_DIR}/mail.hpp ${MANAGER_BUILDER_DIR}/mail.cpp + ${LOGGER_DIR}/types/ilogger.hpp + ${LOGGER_DIR}/journal.cpp + ${LOGGER_DIR}/journal.hpp + ${LOGGER_DIR}/logger_set.cpp + ${LOGGER_DIR}/logger_set.hpp + ${CHECKER_DIR}/registrator_mails.hpp ${CHECKER_DIR}/registrator_mails.cpp ${CHECKER_DIR}/registrator_settings.hpp @@ -148,22 +168,38 @@ set(SRC_FILES ${CHECKER_DIR}/errors/types/imails_error.hpp ${CHECKER_DIR}/errors/types/isettings_error.hpp - ) +) + +if( ${ADD_PHOSPHOR_LOGGING} STREQUAL "ON") + message("hello") + set(PHOSPHOR_LOGGING_FILES + src/logger/phosphor.cpp + src/logger/phosphor.hpp + ) +endif() + +add_executable(${PROJECT_NAME} ${SRC_FILES} ${PHOSPHOR_LOGGING_FILES}) -add_executable(smtp ${SRC_FILES}) if(NOT ${YOCTO_DEPENDENCIES}) - add_dependencies(smtp sdbusplus-project) + add_dependencies(${PROJECT_NAME} sdbusplus-project) +elseif(${ADD_PHOSPHOR_LOGGING}) + target_link_libraries (${PROJECT_NAME} phosphor_logging) endif() -target_link_libraries(smtp boost_context) -target_link_libraries(smtp sdbusplus) -target_link_libraries(smtp systemd) -target_link_libraries(smtp curl) +target_link_libraries(${PROJECT_NAME} boost_context) +target_link_libraries(${PROJECT_NAME} sdbusplus) +target_link_libraries(${PROJECT_NAME} systemd) +target_link_libraries(${PROJECT_NAME} curl) -#target_link_libraries(curl_smtp curl) -#target_link_libraries (${PROJECT_NAME} ${Boost_LIBRARIES}) -#target_link_libraries (${PROJECT_NAME} ${SDBUSPLUSPLUS_LIBRARIES} -# phosphor_logging) -install(TARGETS smtp DESTINATION bin) +install(TARGETS ${PROJECT_NAME} DESTINATION bin) install(FILES ${PROJECT_SOURCE_DIR}/xyz.openbmc_project.SMTP.service DESTINATION /lib/systemd/system/) + +target_compile_definitions ( + ${PROJECT_NAME} PRIVATE $<$<BOOL:${ADD_JOURNAL_LOGGING}>: -DADD_JOURNAL_LOGGING> + +) + +target_compile_definitions ( + ${PROJECT_NAME} PRIVATE $<$<BOOL:${ADD_PHOSPHOR_LOGGING}>: -DADD_PHOSPHOR_LOGGING> +) |