1include(CPackComponent) 2 3set(CPACK_PACKAGE_NAME ont-vbz-hdf-plugin) 4set(CPACK_PACKAGE_VENDOR "nanoporetech") 5set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}") 6 7if (NOT VBZ_BUILD_ARCHIVE) 8 set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/packaging/readme.txt") 9 set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/packaging/readme.txt") 10 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENCE.txt") 11 12 cpack_add_component( 13 hdf_plugin 14 DISPLAYNAME "Hdf5 Plugin" 15 GROUP HDF_PLUGIN) 16 17 set(CPACK_COMPONENTS_ALL hdf_plugin) 18 19 if (NOT HDF5_PLUGIN_PATH) 20 IF (WIN32) 21 set(HDF5_PLUGIN_PATH "C:/ProgramData/hdf5/lib/plugin") 22 else() 23 set(HDF5_PLUGIN_PATH "/usr/local/hdf5/lib/plugin") 24 endif() 25 endif() 26 27endif() 28 29 30 31 32if (VBZ_BUILD_ARCHIVE) 33 set(CPACK_GENERATOR "TGZ") 34elseif (APPLE) 35 set(CPACK_GENERATOR "productbuild") 36 set(CPACK_PACKAGING_INSTALL_PREFIX "/Applications/OxfordNanopore/${CPACK_PACKAGE_NAME}/") 37 38 set(ONT_VBZ_PLUGIN_SOURCE_PATH "${CPACK_PACKAGING_INSTALL_PREFIX}/hdf5/lib/plugin/libvbz_hdf_plugin.dylib") 39 set(ONT_VBZ_PLUGIN_DEST_PATH "${HDF5_PLUGIN_PATH}/libvbz_hdf_plugin.dylib") 40 41 set(POSTFLIGHT_SCRIPT "${CMAKE_BINARY_DIR}/postinstall.sh") 42 configure_file( 43 "${CMAKE_SOURCE_DIR}/packaging/postinstall.sh.in" 44 "${POSTFLIGHT_SCRIPT}" 45 @ONLY 46 ) 47 48 set(CPACK_POSTFLIGHT_HDF_PLUGIN_SCRIPT "${POSTFLIGHT_SCRIPT}") 49elseif (WIN32) 50 set(CPACK_GENERATOR "WIX") 51 set(CPACK_PACKAGE_VENDOR "Oxford Nanopore Technologies, Limited") 52 set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/packaging/wix_nanopore_icon.ico") 53 set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/packaging/wix_nanopore_background.bmp") 54 set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/packaging/wix_nanopore_banner.bmp") 55 56 if(VBZ_MSI_UPGRADE_CODE) 57 set(CPACK_WIX_UPGRADE_GUID "${VBZ_MSI_UPGRADE_CODE}") 58 endif() 59 60 set(WIX_SOURCE_FILE "${CMAKE_SOURCE_DIR}/packaging/wix_extra.wxs.in") 61 set(CPACK_WIX_EXTRA_SOURCES "${CMAKE_BINARY_DIR}/wix_extra.wxs") 62 set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/packaging/wix_patch.wxs.xml") 63 64 install(CODE " 65 set(ONT_VBZ_PLUGIN_SOURCE_PATH \"${CMAKE_BINARY_DIR}/bin/\$\{CMAKE_INSTALL_CONFIG_NAME\}/vbz_hdf_plugin.dll\") 66 configure_file( 67 \"${WIX_SOURCE_FILE}\" 68 \"${CPACK_WIX_EXTRA_SOURCES}\" 69 @ONLY 70 )" 71 COMPONENT hdf_plugin 72 ) 73 74 set(VBZ_INSTALLATION_PREFIX "OxfordNanopore/${CPACK_PACKAGE_NAME}") 75 set(CPACK_WIX_PROGRAM_MENU_FOLDER "${VBZ_INSTALLATION_PREFIX}") 76 set(CPACK_PACKAGE_INSTALL_DIRECTORY "${VBZ_INSTALLATION_PREFIX}") 77 set(CPACK_WIX_PROPERTY_ALLUSERS 1) # Install to everyone by default 78 79else() 80 set(CPACK_GENERATOR "DEB") 81 set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local/") 82 83 set(CPACK_DEB_PACKAGE_COMPONENT ON) 84 set(CPACK_DEB_COMPONENT_INSTALL ON) 85 find_program(DPKG dpkg) 86 execute_process( 87 COMMAND ${DPKG} --print-architecture # e.g. "amd64" or "arm64" 88 OUTPUT_VARIABLE DPKG_ARCHITECTURE 89 OUTPUT_STRIP_TRAILING_WHITESPACE 90 ) 91 92 find_program(LSB_RELEASE lsb_release) 93 execute_process( 94 COMMAND ${LSB_RELEASE} -cs # e.g. "trusty" or "xenial" 95 OUTPUT_VARIABLE LSB_PLATFORM_NAME 96 OUTPUT_STRIP_TRAILING_WHITESPACE 97 ) 98 99 set(CPACK_DEBIAN_PACKAGE_VERSION "${PROJECT_VERSION}-1~${LSB_PLATFORM_NAME}") 100 101 set(CPACK_DEBIAN_HDF_PLUGIN_PACKAGE_NAME ${CPACK_PACKAGE_NAME}) 102 set(CPACK_DEBIAN_HDF_PLUGIN_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${DPKG_ARCHITECTURE}.deb") 103 set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6") 104 set(CPACK_DEBIAN_PACKAGE_MAINTAINER nanoporetech.com) 105endif() 106 107include(CPack)