From 80d6e78064ca1ae04e17bd5d9246fa84e445b9ab Mon Sep 17 00:00:00 2001 From: soblin Date: Thu, 3 Mar 2022 18:34:56 +0900 Subject: [PATCH] added package.cmake for creating .deb file --- CMakeLists.txt | 4 +++- cmake/package.cmake | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 cmake/package.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 9640953..b18530b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ endfunction() if(${ADD_DEMO}) find_package(Python3 COMPONENTS NumPy REQUIRED) - find_package(xtensor REQUIRED) + find_package(xtensor 0.24.0 REQUIRED) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_FLAGS "-Wall -g -DUSE_GUI=${USE_GUI}") add_subdirectory(gallery/lines_bars_and_markers) @@ -97,6 +97,8 @@ install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME} DESTINATION include ) set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE") +# create .deb +include("${PROJECT_SOURCE_DIR}/cmake/package.cmake") # uninstall target ## actually it's just `xargs rm < install_manifest.txt` diff --git a/cmake/package.cmake b/cmake/package.cmake new file mode 100644 index 0000000..62ec0da --- /dev/null +++ b/cmake/package.cmake @@ -0,0 +1,23 @@ +# https://decovar.dev/blog/2021/09/23/cmake-cpack-package-deb-apt/ +set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${CMAKE_PROJECT_DESCRIPTION}) +set(CPACK_VERBATIM_VARIABLES YES) +set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) +SET(CPACK_OUTPUT_FILE_PREFIX "${PROJECT_BINARY_DIR}/") +set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +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_PACKAGE_CONTACT "example@example.com") +set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Deb Example") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") +# package name for deb +set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) +set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE) +# without this you won't be able to pack only specified component +set(CPACK_DEB_COMPONENT_INSTALL YES) + +include(CPack) + +# run cpack -G DEB to create .deb