summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt84
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>
+)