From 9b5cdb38fb53d20ed1cddef2a744d3a6ef1792a8 Mon Sep 17 00:00:00 2001 From: Isik Ozsoy Date: Wed, 10 Dec 2025 02:14:35 +0100 Subject: [PATCH] Add configuraitons and manual to eliminate lintian warning --- CMakeLists.txt | 52 +++++++++++++++++++++++++++++++++++++--- cmake/CPackConfig.cmake | 29 ++++++++++++++++++++++ man/cpackexample.1.gz | Bin 0 -> 192 bytes 3 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 cmake/CPackConfig.cmake create mode 100644 man/cpackexample.1.gz diff --git a/CMakeLists.txt b/CMakeLists.txt index 94d6c2c..5acdf8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION "3.28") -project("cpackexample" VERSION 0.1.0) +project("cpackexample" VERSION 0.1.0 LANGUAGES CXX) FIND_PACKAGE(deal.II 9.5 REQUIRED HINTS ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR} @@ -8,15 +8,61 @@ FIND_PACKAGE(deal.II 9.5 REQUIRED DEAL_II_INITIALIZE_CACHED_VARIABLES() # Uses the FindBoost module of CMake -find_package(Boost 1.83 COMPONENTS filesystem REQUIRED) +find_package(Boost 1.83 REQUIRED COMPONENTS filesystem) find_package(yaml-cpp 0.6 REQUIRED) -add_library(cpackexamplelib filesystem/filesystem.cpp fem/fem.cpp flatset/flatset.cpp yamlParser/yamlParser.cpp) +# Prefer standard install locations via GNUInstallDirs +include(GNUInstallDirs) + +# Require modern C++ for all targets +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +add_library(cpackexamplelib + filesystem/filesystem.cpp + fem/fem.cpp + flatset/flatset.cpp + yamlParser/yamlParser.cpp +) add_executable("${PROJECT_NAME}" main.cpp) target_link_libraries("${PROJECT_NAME}" cpackexamplelib) target_link_libraries(cpackexamplelib Boost::filesystem ${YAML_CPP_LIBRARIES}) +# Public headers for the library (used by consumers) +target_include_directories(cpackexamplelib + PUBLIC + $ + $ +) + DEAL_II_SETUP_TARGET("${PROJECT_NAME}") DEAL_II_SETUP_TARGET(cpackexamplelib) + +install(TARGETS "${PROJECT_NAME}" + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +install(TARGETS cpackexamplelib + EXPORT cpackexampleTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +install(FILES + fem/fem.hpp + filesystem/filesystem.hpp + flatset/flatset.hpp + yamlParser/yamlParser.hpp + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpackexamplelib +) + +install(FILES man/cpackexample.1.gz + DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) + + +# Separate CPack configuration +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include(CPackConfig) \ No newline at end of file diff --git a/cmake/CPackConfig.cmake b/cmake/CPackConfig.cmake new file mode 100644 index 0000000..456170f --- /dev/null +++ b/cmake/CPackConfig.cmake @@ -0,0 +1,29 @@ +set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") +set(CPACK_PACKAGE_MAINTAINERS "Isik Özsoy ") +set(CPACK_PACKAGE_VENDOR "Isik Özsoy") +set(CPACK_PACKAGE_CONTACT "ozsoyisik@gmail.com") + +set(CPACK_PACKAGE_DESCRIPTION "CPack packaging example") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CPack example") + +set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/ozsoyisik/cpack-exercise-wt2526") +set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}") + +set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") + +# I have added this using chatgpt while trying to solve a problem +if(UNIX AND NOT APPLE) + set(CPACK_GENERATOR "TGZ;DEB") + set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Isik Özsoy ") + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +else() + set(CPACK_GENERATOR "TGZ") +endif() + +set(CPACK_STRIP_FILES ON) + +include(CPack) \ No newline at end of file diff --git a/man/cpackexample.1.gz b/man/cpackexample.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..8a071cf641561cad0554bd74897712b065a54527 GIT binary patch literal 192 zcmV;x06+g9iwFP!0000218t5?3c@fDh4(qdkiDTTcz_xUt=b<<1w~!NHq>C#l%xf{ zy|Eyu2(x%I^X7d+${1)7(si^C(_#~W4|v79k(&nuUNFaitDaXkap$UU1$e|Ko*VA0 zFhI3ZysIrngvF4BX@tJary0CuZ**h0g4dciqK47Ru5oDBPuJ{_