File: hdf_plugin_packaging.cmake

package info (click to toggle)
libvbz-hdf-plugin 1.0.2-3.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,384 kB
  • sloc: cpp: 28,289; python: 392; ansic: 40; sh: 21; makefile: 19; xml: 16
file content (107 lines) | stat: -rw-r--r-- 3,780 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
include(CPackComponent)

set(CPACK_PACKAGE_NAME ont-vbz-hdf-plugin)
set(CPACK_PACKAGE_VENDOR "nanoporetech")
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")

if (NOT VBZ_BUILD_ARCHIVE)
    set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/packaging/readme.txt")
    set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/packaging/readme.txt")
    set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENCE.txt")
    
    cpack_add_component(
            hdf_plugin
            DISPLAYNAME "Hdf5 Plugin"
            GROUP HDF_PLUGIN)

    set(CPACK_COMPONENTS_ALL hdf_plugin)

    if (NOT HDF5_PLUGIN_PATH)
        IF (WIN32)
            set(HDF5_PLUGIN_PATH "C:/ProgramData/hdf5/lib/plugin")
        else()
            set(HDF5_PLUGIN_PATH "/usr/local/hdf5/lib/plugin")
        endif()
    endif()

endif()




if (VBZ_BUILD_ARCHIVE)
    set(CPACK_GENERATOR "TGZ")
elseif (APPLE)
    set(CPACK_GENERATOR "productbuild")
    set(CPACK_PACKAGING_INSTALL_PREFIX "/Applications/OxfordNanopore/${CPACK_PACKAGE_NAME}/")

    set(ONT_VBZ_PLUGIN_SOURCE_PATH "${CPACK_PACKAGING_INSTALL_PREFIX}/hdf5/lib/plugin/libvbz_hdf_plugin.dylib")
    set(ONT_VBZ_PLUGIN_DEST_PATH "${HDF5_PLUGIN_PATH}/libvbz_hdf_plugin.dylib")

    set(POSTFLIGHT_SCRIPT "${CMAKE_BINARY_DIR}/postinstall.sh")
    configure_file(
        "${CMAKE_SOURCE_DIR}/packaging/postinstall.sh.in"
        "${POSTFLIGHT_SCRIPT}"
        @ONLY
    )

    set(CPACK_POSTFLIGHT_HDF_PLUGIN_SCRIPT "${POSTFLIGHT_SCRIPT}")
elseif (WIN32)
    set(CPACK_GENERATOR "WIX")
    set(CPACK_PACKAGE_VENDOR "Oxford Nanopore Technologies, Limited")
    set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/packaging/wix_nanopore_icon.ico")
    set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/packaging/wix_nanopore_background.bmp")
    set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/packaging/wix_nanopore_banner.bmp")

    if(VBZ_MSI_UPGRADE_CODE)
        set(CPACK_WIX_UPGRADE_GUID "${VBZ_MSI_UPGRADE_CODE}")
    endif()

    set(WIX_SOURCE_FILE "${CMAKE_SOURCE_DIR}/packaging/wix_extra.wxs.in")
    set(CPACK_WIX_EXTRA_SOURCES "${CMAKE_BINARY_DIR}/wix_extra.wxs")
    set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/packaging/wix_patch.wxs.xml")
    
    install(CODE "
        set(ONT_VBZ_PLUGIN_SOURCE_PATH \"${CMAKE_BINARY_DIR}/bin/\$\{CMAKE_INSTALL_CONFIG_NAME\}/vbz_hdf_plugin.dll\")
        configure_file(
            \"${WIX_SOURCE_FILE}\"
            \"${CPACK_WIX_EXTRA_SOURCES}\"
            @ONLY
        )"
        COMPONENT hdf_plugin
    )

    set(VBZ_INSTALLATION_PREFIX "OxfordNanopore/${CPACK_PACKAGE_NAME}")
    set(CPACK_WIX_PROGRAM_MENU_FOLDER "${VBZ_INSTALLATION_PREFIX}")
    set(CPACK_PACKAGE_INSTALL_DIRECTORY "${VBZ_INSTALLATION_PREFIX}")
    set(CPACK_WIX_PROPERTY_ALLUSERS 1)  # Install to everyone by default

else()
    set(CPACK_GENERATOR "DEB")
    set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local/")

    set(CPACK_DEB_PACKAGE_COMPONENT ON)
    set(CPACK_DEB_COMPONENT_INSTALL ON)
    find_program(DPKG dpkg)
    execute_process(
        COMMAND ${DPKG} --print-architecture  # e.g. "amd64" or "arm64"
        OUTPUT_VARIABLE DPKG_ARCHITECTURE
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    
    find_program(LSB_RELEASE lsb_release)
    execute_process(
        COMMAND ${LSB_RELEASE} -cs  # e.g. "trusty" or "xenial"
        OUTPUT_VARIABLE LSB_PLATFORM_NAME
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )

    set(CPACK_DEBIAN_PACKAGE_VERSION "${PROJECT_VERSION}-1~${LSB_PLATFORM_NAME}")

    set(CPACK_DEBIAN_HDF_PLUGIN_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
    set(CPACK_DEBIAN_HDF_PLUGIN_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${DPKG_ARCHITECTURE}.deb")
    set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6")
    set(CPACK_DEBIAN_PACKAGE_MAINTAINER nanoporetech.com)
endif()

include(CPack)