From 6acf28a3dd8044f8dd4f191c1109e33c6cff0319 Mon Sep 17 00:00:00 2001 From: Ron Hough Date: Sat, 4 Mar 2023 18:13:49 -0600 Subject: [PATCH] Adds rudimentary DEB package creation --- .gitignore | 1 + CMakeLists.txt | 13 +++++++++++-- cmake/packdeb.cmake | 19 +++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 cmake/packdeb.cmake diff --git a/.gitignore b/.gitignore index e97d588..6aff97a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ CTestTestfile.cmake Makefile Testing _deps +_packages build cmake_install.cmake compile_commands.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 150cd2c..6e6547b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,20 @@ cmake_minimum_required(VERSION 3.24.2) set(CMAKE_CXX_STANDARD 11) -project(cppchallenge) +# TODO: Define this version number with build system. +# TODO: Add git hash to version number. +project(cppchallenge VERSION 1.0.0) + find_package(CLI11 REQUIRED) + set(BUILD_DIR "${PROJECT_SOURCE_DIR}/build") -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BUILD_DIR}) set(CLI11_DIR ${BUILD_DIR}) + file(GLOB SOURCES "src/*.cpp") + add_executable(${PROJECT_NAME} ${SOURCES}) target_link_libraries(${PROJECT_NAME} CLI11::CLI11) +install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin) + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include(packdeb) diff --git a/cmake/packdeb.cmake b/cmake/packdeb.cmake new file mode 100644 index 0000000..9417833 --- /dev/null +++ b/cmake/packdeb.cmake @@ -0,0 +1,19 @@ +set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "C++ challenge exercise") +set(CPACK_PACKAGE_VENDOR "buildbuddha.com") + +set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) +SET(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_SOURCE_DIR}/_packages") + +set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local") + +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 "jobs@buildbuddha.com") +set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Ron Hough") + +set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) + +include(CPack)