set(CPACK_GENERATOR "DEB") set(CPACK_SET_DESTDIR True) set(CPACK_STRIP_FILES True) set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) string(REPLACE "di-" "" CPACK_PROJECT_APP_NAME "${PROJECT_APP_NAME}") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_BRIEF}) set(CPACK_PACKAGE_VENDOR "Dual Inventive Technology Centre B.V.") set(CPACK_PACKAGE_VERSION "${APPLICATION_VERSION}") string(TOLOWER "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" CPACK_SYSTEM_NAME) set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${APPLICATION_VERSION}-${CPACK_SYSTEM_NAME}" ) set(CPACK_INSTALL_PREFIX "/") #TODO add_custom_target(package_source_git "${PROJECT_SOURCE_DIR}/common/) set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Embedded Development ") set(DEFAULT_DEBIAN_PACKAGE_DEPENDS "logrotate (>= 3.8.7), xz-utils (>= 5.1.1), libjansson (>= 2.7), libhiredis (>= 0.13.3)") if (DEFINED CPACK_DEBIAN_PACKAGE_DEPENDS) set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, ${DEFAULT_DEBIAN_PACKAGE_DEPENDS}") else() set(CPACK_DEBIAN_PACKAGE_DEPENDS "${DEFAULT_DEBIAN_PACKAGE_DEPENDS}") endif() # Debian postinst configure_file("${DI_COMMON_CMAKE_DIR}/templates/debian/postinst.in" "${CMAKE_BINARY_DIR}/debian/postinst" @ONLY) configure_file("${DI_COMMON_CMAKE_DIR}/templates/debian/prerm.in" "${CMAKE_BINARY_DIR}/debian/prerm" @ONLY) configure_file("${DI_COMMON_CMAKE_DIR}/templates/debian/postrm.in" "${CMAKE_BINARY_DIR}/debian/postrm" @ONLY) file(REMOVE "${CMAKE_BINARY_DIR}/debian/conffiles") function(di_install_configfile file) if (ARGC EQUAL 1) set(dir di) else() set(dir ${ARGV1}) endif() get_filename_component(filebase ${file} NAME) if (ARGC EQUAL 3) set(filebase ${ARGV2}) endif() install(FILES ${file} RENAME ${filebase} DESTINATION etc/${dir} COMPONENT configuration ) file(APPEND "${CMAKE_BINARY_DIR}/debian/conffiles" "/etc/${dir}/${filebase}\n") endfunction() set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/debian/conffiles" "${CMAKE_BINARY_DIR}/debian/postinst" "${CMAKE_BINARY_DIR}/debian/postrm" "${CMAKE_BINARY_DIR}/debian/prerm") # Logrotate configure_file("${DI_COMMON_CMAKE_DIR}/templates/debian/logrotate.in" "${CMAKE_BINARY_DIR}/debian/logrotate") di_install_configfile("${CMAKE_BINARY_DIR}/debian/logrotate" "logrotate.d" "${CPACK_PACKAGE_NAME}") # NOTE DONT MOVE must come after all cpack settings! include(CPack)