[ismrmrd] 68/177: add support for cpack

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:02:03 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag v1.1.0.beta.1
in repository ismrmrd.

commit 9bb1f3bbc439ceb5119a5869af8cc1c0ff9f6898
Author: Ghislain Antony Vaillant <ghisvail at gmail.com>
Date:   Sat Sep 20 23:08:33 2014 +0100

    add support for cpack
    
    - to build a binary package: make package
    - to build a source package: make package_source
---
 CMakeLists.txt               | 19 +++++++++++++++++--
 cmake/cpack_options.cmake.in | 33 +++++++++++++++++++++++++++++++++
 cmake/ismrmrd_cpack.cmake    | 28 ++++++++++++++++++++++++++++
 3 files changed, 78 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a7b331..62cb5f0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,8 +1,12 @@
 cmake_minimum_required(VERSION 2.8)
 project(ISMRMRD)
 
-# add project specific cmake find modules
-list(APPEND CMAKE_MODULE_PATH cmake)
+# set project specific cmake module path
+set (ISMRMRD_CMAKE_DIR ${PROJECT_SOURCE_DIR}/cmake CACHE PATH
+  "Location of CMake scripts")
+
+# and include it to the search list
+list(APPEND CMAKE_MODULE_PATH ${ISMRMRD_CMAKE_DIR})
 
 # set the build type to Release if not specified
 IF(NOT CMAKE_BUILD_TYPE)
@@ -138,3 +142,14 @@ enable_testing()
 #add_subdirectory(doc)
 #add_subdirectory(matlab)
 #add_subdirectory(bindings)
+
+# Create package
+string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
+include(${ISMRMRD_CMAKE_DIR}/ismrmrd_cpack.cmake)
+if(CPACK_GENERATOR)
+  message(STATUS "Found CPack generators: ${CPACK_GENERATOR}")
+  configure_file("${ISMRMRD_CMAKE_DIR}/cpack_options.cmake.in"
+    ${ISMRMRD_CPACK_CFG_FILE} @ONLY)
+  set(CPACK_PROJECT_CONFIG_FILE ${ISMRMRD_CPACK_CFG_FILE})
+  include (CPack)
+endif()
diff --git a/cmake/cpack_options.cmake.in b/cmake/cpack_options.cmake.in
new file mode 100644
index 0000000..66c82b9
--- /dev/null
+++ b/cmake/cpack_options.cmake.in
@@ -0,0 +1,33 @@
+################################################################################
+# Metadata for package generators
+################################################################################
+
+# Common options
+set(CPACK_PACKAGE_VERSION "@ISMRMRD_VERSION_STRING@")
+set(CPACK_PACKAGE_VERSION_MAJOR "@ISMRMRD_VERSION_MAJOR@")
+set(CPACK_PACKAGE_VERSION_MINOR "@ISMRMRD_VERSION_MINOR@")
+set(CPACK_PACKAGE_VERSION_PATCH "@ISMRMRD_VERSION_PATCH@")
+set(CPACK_PACKAGE_NAME "@PROJECT_NAME@")
+set(CPACK_PACKAGE_VENDOR "https://sourceforge.net/p/ismrmrd")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ISMRM Raw Data Format (ISMRMRD)")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "@PROJECT_NAME_LOWER@")
+set(CPACK_RESOURCE_FILE_LICENSE "@CMAKE_CURRENT_SOURCE_DIR@/LICENSE")
+set(CPACK_RESOURCE_FILE_README "@CMAKE_CURRENT_SOURCE_DIR@/README.html")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "@CMAKE_CURRENT_SOURCE_DIR@/README.html")
+set(CPACK_PACKAGE_MAINTAINER "Michael S. Hansen <michael.hansen at nih.gov>")
+set(CPACK_PACKAGE_CONTACT "Michael S. Hansen <michael.hansen at nih.gov>")
+
+# DEB specific
+set(CPACK_DEBIAN_PACKAGE_DEPENDS "@DEBIAN_PACKAGE_DEPENDS@")
+set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
+set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
+set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
+set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Implementation of the ISMRMRD format.")
+
+# RPM specific
+set(CPACK_RPM_PACKAGE_REQUIRES "@RPM_PACKAGE_DEPENDS@")
+set(CPACK_RPM_PACKAGE_DESCRIPTION "Implementation of the ISMRMRD format.")
+
+# Output filename of the generated tarball / package
+set(CPACK_PACKAGE_FILE_NAME "@PROJECT_NAME_LOWER at -@ISMRMRD_VERSION_STRING@")
+set(CPACK_SOURCE_PACKAGE_FILE_NAME "@PROJECT_NAME_LOWER at -@ISMRMRD_VERSION_STRING@")
diff --git a/cmake/ismrmrd_cpack.cmake b/cmake/ismrmrd_cpack.cmake
new file mode 100644
index 0000000..de94909
--- /dev/null
+++ b/cmake/ismrmrd_cpack.cmake
@@ -0,0 +1,28 @@
+################################################################################
+# Find available package generators
+################################################################################
+
+if(UNIX)
+  # DEB
+  find_program(DPKG_PROGRAM dpkg)
+  if(EXISTS ${DPKG_PROGRAM})
+    list(APPEND CPACK_GENERATOR "DEB")
+  endif(EXISTS ${DPKG_PROGRAM})
+  # RPM
+  find_program(RPMBUILD_PROGRAM rpmbuild)
+  if(EXISTS ${RPMBUILD_PROGRAM})
+    list(APPEND CPACK_GENERATOR "RPM")
+  endif(EXISTS ${RPMBUILD_PROGRAM})
+endif(UNIX)
+
+list(APPEND CPACK_SOURCE_GENERATOR "TGZ")
+list(APPEND CPACK_SOURCE_GENERATOR "ZIP")
+list(APPEND CPACK_SOURCE_IGNORE_FILES ";.git;.gitignore;todo.txt;_clang-format;build/")
+
+# set dependencies explictly
+include(InstallRequiredSystemLibraries)
+set(DEBIAN_PACKAGE_DEPENDS "libhdf5-dev")
+set(RPM_PACKAGE_DEPENDS "hdf5-devel")
+
+# where the package metadata are
+set(ISMRMRD_CPACK_CFG_FILE "${PROJECT_BINARY_DIR}/cpack_options.cmake")

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git



More information about the debian-science-commits mailing list