refactor: separate logger build in its own CMakeLists and build so

This commit is contained in:
Михаил Чернигин 2023-09-15 11:48:29 +04:00
parent 5c1b3178b1
commit 77ffc2ebd2
Signed by: cherniginma
GPG Key ID: 42ED11B71604A422
3 changed files with 40 additions and 45 deletions

View File

@ -8,54 +8,19 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(GNUInstallDirs)
##########
# Logger #
##########
add_library(logger)
target_sources(logger PRIVATE
src/logger/loggermanager.cpp
src/logger/logger.cpp
src/logger/consolelogger.cpp
src/logger/filelogger.cpp
src/logger/sysloglogger.cpp
)
target_include_directories(
logger PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/logger/>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
find_package(Qt5 COMPONENTS Core REQUIRED)
target_link_libraries(logger Qt5::Core)
install(
TARGETS logger
EXPORT logger-config
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include/logger/"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/logger/")
install(
EXPORT logger-config
NAMESPACE "${PROJECT_NAME}::"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
##################
# Project config #
##################
add_subdirectory(src)
file(GLOB COMMON_INCLUDES "${PROJECT_SOURCE_DIR}/include/*.h")
install(FILES ${COMMON_INCLUDES}
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/")
install(
FILES ${COMMON_INCLUDES}
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/")
configure_file(
${PROJECT_NAME}-config.cmake.in
${PROJECT_NAME}-config.cmake
@ONLY)
${PROJECT_NAME}-config.cmake.in
${PROJECT_NAME}-config.cmake
@ONLY)
install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
install(
FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")

1
src/CMakeLists.txt Normal file
View File

@ -0,0 +1 @@
add_subdirectory(logger)

29
src/logger/CMakeLists.txt Normal file
View File

@ -0,0 +1,29 @@
find_package(Qt5 COMPONENTS Core REQUIRED)
add_library(logger SHARED
loggermanager.cpp
logger.cpp
consolelogger.cpp
filelogger.cpp
sysloglogger.cpp
)
target_link_libraries(logger Qt5::Core)
target_include_directories(
logger PUBLIC "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include/logger/>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
install(
TARGETS logger
EXPORT logger-config
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(
DIRECTORY "${CMAKE_SOURCE_DIR}/include/logger/"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/logger/")
install(
EXPORT logger-config
NAMESPACE "${PROJECT_NAME}::"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")