From ddc1b965b62a699239851c509e89efe23442a36e Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 30 Jan 2015 13:21:52 +0300 Subject: [PATCH] Added Debian changelog installation step for Debian package generation. --- cmake/OpenCVPackaging.cmake | 34 ++++++++++++++++++++++++++++++++-- cmake/templates/changelog.Debian.in | 4 ++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 cmake/templates/changelog.Debian.in diff --git a/cmake/OpenCVPackaging.cmake b/cmake/OpenCVPackaging.cmake index 3d63c09..a4d4cc0 100644 --- a/cmake/OpenCVPackaging.cmake +++ b/cmake/OpenCVPackaging.cmake @@ -14,7 +14,7 @@ machine perception in the commercial products. Being a BSD-licensed product, OpenCV makes it easy for businesses to utilize and modify the code.") set(CPACK_PACKAGE_VENDOR "OpenCV Foundation") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") - set(CPACK_PACKAGE_CONTACT "admin@opencv.org") + set(CPACK_PACKAGE_CONTACT "OpenCV Developers ") set(CPACK_PACKAGE_VERSION_MAJOR "${OPENCV_VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MINOR "${OPENCV_VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_PATCH "${OPENCV_VERSION_PATCH}") @@ -135,6 +135,36 @@ if(NOT OPENCV_CUSTOM_PACKAGE_LAYOUT) set(CPACK_samples_COMPONENT_INSTALL TRUE) endif(NOT OPENCV_CUSTOM_PACKAGE_LAYOUT) +if(CPACK_GENERATOR STREQUAL "DEB") + find_program(GZIP_TOOL NAMES "gzip" PATHS "/bin" "/usr/bin" "/usr/local/bin") + if(NOT GZIP_TOOL) + message(FATAL_ERROR "Unable to find 'gzip' program") + endif() + + execute_process(COMMAND "date" "-R" + OUTPUT_VARIABLE CHANGELOG_PACKAGE_DATE + OUTPUT_STRIP_TRAILING_WHITESPACE) + + set(CHANGELOG_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}") + set(ALL_COMPONENTS "libs" "dev" "docs" "python" "java" "samples") + foreach (comp ${ALL_COMPONENTS}) + if(CPACK_${comp}_COMPONENT_INSTALL) + set(DEBIAN_CHANGELOG_OUT_FILE "${CMAKE_BINARY_DIR}/deb-packages-gen/${comp}/changelog.Debian") + set(DEBIAN_CHANGELOG_OUT_FILE_GZ "${CMAKE_BINARY_DIR}/deb-packages-gen/${comp}/changelog.Debian.gz") + set(CHANGELOG_PACKAGE_NAME "${CPACK_COMPONENT_${comp}_DISPLAY_NAME}") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/changelog.Debian.in" "${DEBIAN_CHANGELOG_OUT_FILE}" @ONLY) + + execute_process(COMMAND "${GZIP_TOOL}" "-cf9" "${DEBIAN_CHANGELOG_OUT_FILE}" + OUTPUT_FILE "${DEBIAN_CHANGELOG_OUT_FILE_GZ}" + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}") + + install(FILES "${DEBIAN_CHANGELOG_OUT_FILE_GZ}" + DESTINATION "share/doc/${CPACK_COMPONENT_${comp}_DISPLAY_NAME}" + COMPONENT "${comp}") + endif() + endforeach() +endif() + include(CPack) -ENDif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") \ No newline at end of file +ENDif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") diff --git a/cmake/templates/changelog.Debian.in b/cmake/templates/changelog.Debian.in new file mode 100644 index 0000000..70486e8 --- /dev/null +++ b/cmake/templates/changelog.Debian.in @@ -0,0 +1,4 @@ +@CHANGELOG_PACKAGE_NAME@ (@CPACK_PACKAGE_VERSION@) unstable; urgency=low + * Debian changelog stub. See upstream changelog or release notes in user + documentation for more details. + -- @CPACK_PACKAGE_CONTACT@ @CHANGELOG_PACKAGE_DATE@ -- 2.7.4