From aa9eab2ce4cfd60216e454d62851132dc94297d9 Mon Sep 17 00:00:00 2001 From: Noxaster <208382900+Noxaster@users.noreply.github.com> Date: Wed, 10 Dec 2025 07:42:56 +0100 Subject: [PATCH] Add installation and packaging targets --- CMakeLists.txt | 15 +++++++++++++++ Dockerfile | 11 ++++++----- cmake/CPackConfig.cmake | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 cmake/CPackConfig.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 94d6c2c..8914437 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,3 +20,18 @@ target_link_libraries(cpackexamplelib Boost::filesystem ${YAML_CPP_LIBRARIES}) DEAL_II_SETUP_TARGET("${PROJECT_NAME}") DEAL_II_SETUP_TARGET(cpackexamplelib) + +install(TARGETS cpackexample DESTINATION bin) +install(TARGETS cpackexamplelib DESTINATION lib) +install(FILES + fem/fem.hpp + filesystem/filesystem.hpp + flatset/flatset.hpp + yamlParser/yamlParser.hpp + DESTINATION include/cpackexamplelib +) + +install(FILES LICENSE DESTINATION share/doc/cpackexample RENAME copyright) + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include(CPackConfig) \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index bd5207d..670e865 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,13 +12,14 @@ RUN apt-get -qq update && \ vim \ tree \ lintian \ - unzip + unzip \ + libyaml-cpp-dev # Get, unpack, build, and install yaml-cpp -RUN mkdir software && cd software && \ - wget https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.6.3.zip && unzip yaml-cpp-0.6.3.zip && \ - cd yaml-cpp-yaml-cpp-0.6.3 && mkdir build && cd build && \ - cmake -DYAML_BUILD_SHARED_LIBS=ON .. && make -j4 && make install +# RUN mkdir software && cd software && \ +# wget https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.6.3.zip && unzip yaml-cpp-0.6.3.zip && \ +# cd yaml-cpp-yaml-cpp-0.6.3 && mkdir build && cd build && \ +# cmake -DYAML_BUILD_SHARED_LIBS=ON .. && make -j4 && make install # This is some strange Docker feature. Normally, you don't need to add /usr/local to these ENV LIBRARY_PATH $LIBRARY_PATH:/usr/local/lib/ diff --git a/cmake/CPackConfig.cmake b/cmake/CPackConfig.cmake new file mode 100644 index 0000000..be18a9b --- /dev/null +++ b/cmake/CPackConfig.cmake @@ -0,0 +1,19 @@ +set(CPACK_PACKAGE_NAME "cpackexample") +set(CPACK_PACKAGE_VENDOR "shayo") + +set(CPACK_PACKAGE_CONTACT "shayo ") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CPack Example for SSE Exercise") +set(CPACK_PACKAGE_DESCRIPTION "Generate Release Package of the CMake code with CPack") +set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/Noxaster/cpack-exercise-wt2526") + +set(CPACK_GENERATOR "TGZ;DEB") + +set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) + +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + +set(CPACK_STRIP_FILES TRUE) + +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") + +include(CPack) \ No newline at end of file