From e43a142686c6a43db078e9a1fe34f13de1b46883 Mon Sep 17 00:00:00 2001 From: sha512sum Date: Sun, 15 Sep 2024 03:15:09 +0000 Subject: [PATCH] Improve CMakeLists.txt --- CMakeLists.txt | 51 +++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c577084..da0bc38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,11 +14,12 @@ set(CXX_EXTENSIONS NO) set(BOOST_INCLUDE_LIBRARIES "pfr;asio;serialization") option(CPM_USE_LOCAL_PACKAGES "Use local packages" ON) option(UTEMPL_USE_LOCAL_PACKAGE "Use utempl local package" OFF) +option(BUILD_EXECUTABLE ON) set(UTEMPL_URL "https://helicopter.myftp.org/git/sha512sum/utempl" CACHE STRING "utempl repository URL") -file(GLOB_RECURSE LIB_SOURCES "library/src/*.cpp") +file(GLOB_RECURSE LIB_SOURCES "library/*.*pp") file(GLOB_RECURSE SOURCES "src/*.cpp") @@ -76,26 +77,18 @@ include(GNUInstallDirs) -add_library(larra_xmpp) +add_library(larra_xmpp ${LIB_SOURCES}) add_library(larra::larra_xmpp ALIAS larra_xmpp) target_compile_features(larra_xmpp PUBLIC cxx_std_23) -target_sources(larra_xmpp PRIVATE ${LIB_SOURCES}) - target_include_directories(larra_xmpp PUBLIC $ - $) + $) + -install(TARGETS larra_xmpp - EXPORT larraXMPPTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - FILE_SET larraXMPPSet DESTINATION ${CMAKE_INSTALL_LIBDIR} -) @@ -111,6 +104,9 @@ else() endif() + +if(BUILD_EXECUTABLE) + add_executable(larra) target_compile_features(larra INTERFACE cxx_std_23) @@ -118,16 +114,29 @@ target_compile_features(larra INTERFACE cxx_std_23) target_link_libraries(larra larra_xmpp ${GTKMM_LIBRARIES} ${GTKMM_LIBRARIES}) target_include_directories(larra PRIVATE - $ - $) + $) target_sources(larra PRIVATE ${SOURCES}) - - install(TARGETS larra RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) +endif() + + + +install(TARGETS larra_xmpp + EXPORT larraXMPPTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + FILE_SET larraXMPPSet DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/library/include/larra" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.hpp") include(CMakePackageConfigHelpers) @@ -139,18 +148,18 @@ configure_package_config_file( "${PROJECT_SOURCE_DIR}/cmake/larraXMPPConfig.cmake.in" "${PROJECT_BINARY_DIR}/larraXMPPConfig.cmake" INSTALL_DESTINATION - ${CMAKE_INSTALL_DATAROOTDIR}/xmpp_client/cmake) + ${CMAKE_INSTALL_DATAROOTDIR}/larra/cmake) install(EXPORT larraXMPPTargets FILE xmppClientLibTargets.cmake NAMESPACE larra:: - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/xmpp_client/cmake) + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/larra/cmake) - install(FILES "${PROJECT_BINARY_DIR}/larraXMPPConfig.cmake" - "${PROJECT_BINARY_DIR}/larraXMPPVersionConfig.cmake" - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/xmpp_client/cmake) +install(FILES "${PROJECT_BINARY_DIR}/larraXMPPConfig.cmake" + "${PROJECT_BINARY_DIR}/larraXMPPVersionConfig.cmake" + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/larra/cmake)