File: package.cmake

package info (click to toggle)
sight 25.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 42,180 kB
  • sloc: cpp: 289,476; xml: 17,257; ansic: 9,878; python: 1,379; sh: 144; makefile: 33
file content (81 lines) | stat: -rw-r--r-- 3,184 bytes parent folder | download
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
#Linux install
macro(linux_package PRJ_NAME)

    string(TOLOWER ${PRJ_NAME} LOWER_PRJ_NAME)
    set(ICON_FILENAME ${LOWER_PRJ_NAME}.ico)

    get_target_property(TARGET_TYPE ${SIGHT_TARGET} SIGHT_TARGET_TYPE)

    if("${TARGET_TYPE}" STREQUAL "APP")

        set(LAUNCHER_PATH "bin/sightrun")
        set(LAUNCHER "sightrun")
        set(PROFILE_PATH "${PRJ_NAME}/profile.xml")

        if(${FW_BUILD_EXTERNAL})
            # install the launcher
            install(PROGRAMS "${Sight_BINARY_DIR}/${LAUNCHER}" DESTINATION "bin")
        endif()
    elseif("${TARGET_TYPE}" STREQUAL "EXECUTABLE")

        set(LAUNCHER_PATH "bin/${PRJ_NAME}")
        set(LAUNCHER "${PRJ_NAME}")
        set(PROFILE_PATH "")
    else()
        message(FATAL_ERROR "'${PRJ_NAME}' is not an installable (type : ${TARGET_TYPE})")
    endif()

    if(${PRJ_NAME} STREQUAL "sight")
        # Needed for fixup_bundle first argument
        set(LAUNCHER_PATH "bin/sightrun.bin")
    endif()

    # TODO: Re-enable the fixup for sight-deps only
    #configure_file(
    #   ${FWCMAKE_RESOURCE_PATH}/install/linux/linux_fixup.cmake.in
    #   ${CMAKE_CURRENT_BINARY_DIR}/linux_fixup.cmake @ONLY
    #)
    #install(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/linux_fixup.cmake)

    if("${TARGET_TYPE}" STREQUAL "APP")
        string(TOLOWER ${PRJ_NAME} APP_NAME)
        set(SIGHT_EXTRA_MODULES_OPT "")
        foreach(MODULE ${SIGHT_EXTRA_MODULES})
            cmake_path(GET MODULE FILENAME MODULE_NAME)
            list(APPEND SIGHT_EXTRA_MODULES_OPT "-B \"../share/${MODULE_NAME}\"")
        endforeach()
        configure_file(
            ${FWCMAKE_RESOURCE_PATH}/install/linux/template.sh.in ${CMAKE_CURRENT_BINARY_DIR}/${APP_NAME} @ONLY
        )
        install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${APP_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)

    elseif("${TARGET_TYPE}" STREQUAL "EXECUTABLE")
        string(TOLOWER ${PRJ_NAME} APP_NAME)
        configure_file(
            ${FWCMAKE_RESOURCE_PATH}/install/linux/template_exe.sh.in ${CMAKE_CURRENT_BINARY_DIR}/${APP_NAME} @ONLY
        )
        install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${APP_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
    endif()

    get_last_git_tag(${PRJ_NAME})
    get_platform_package_suffix()

    set(CPACK_GENERATOR TZST)
    set(CPACK_SOURCE_GENERATOR TZST)
    set(CPACK_PACKAGE_NAME "${PRJ_NAME}")
    set(CPACK_PACKAGE_FILE_NAME "${PRJ_NAME}-${GIT_TAG}-${PLATFORM_SUFFIX}")

    set(CPACK_PACKAGE_VENDOR "${SIGHT_APP_VENDOR}")
    set(CPACK_OUTPUT_FILE_PREFIX packages)
    set(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_CURRENT_BINARY_DIR};${PRJ_NAME};ALL;.")
    set(CPACK_INSTALLED_DIRECTORIES "${CMAKE_INSTALL_PREFIX};.")
    set(CPACK_OUTPUT_CONFIG_FILE "${CMAKE_CURRENT_BINARY_DIR}/CPackConfig.cmake")
    set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "${CMAKE_CURRENT_BINARY_DIR}/CPackSourceConfig.cmake")

    # CPackComponent doesn't work properly with the 'single project' packaging mechanism we hacked here
    # As a workaround, this script allows to remove the dev component files before packing
    set(CPACK_PRE_BUILD_SCRIPTS ${FWCMAKE_RESOURCE_PATH}/install/pre_package.cmake)

    include(CPack)

endmacro()