keepassxc

Форк
0
/
KPXCMacDeployHelpers.cmake 
61 строка · 1.9 Кб
1
# Running macdeployqt on a POST_BUILD copied binaries is pointless when using CPack because
2
# the copied binaries will be overridden by the corresponding install(TARGETS) commands.
3
# That's why we run macdeployqt using install(CODE) on the already installed binaries.
4
# The precondition is that all install(TARGETS) calls have to be called before this function is
5
# called.
6
# macdeloyqt is called only once, but it is given all executables that should be processed.
7
function(kpxc_run_macdeployqt_at_install_time)
8
    set(NO_VALUE_OPTIONS)
9
    set(SINGLE_VALUE_OPTIONS
10
        APP_NAME
11
    )
12
    set(MULTI_VALUE_OPTIONS
13
        EXTRA_BINARIES
14
    )
15
    cmake_parse_arguments(PARSE_ARGV 0 ARG
16
        "${NO_VALUE_OPTIONS}" "${SINGLE_VALUE_OPTIONS}" "${MULTI_VALUE_OPTIONS}"
17
    )
18

19
    set(ESCAPED_PREFIX "\${CMAKE_INSTALL_PREFIX}")
20
    set(APP_BUNDLE_NAME "${ARG_APP_NAME}.app")
21
    set(APP_BUNDLE_PATH "${ESCAPED_PREFIX}/${APP_BUNDLE_NAME}")
22

23
    # Collect extra binaries and plugins that should be handled by macdpeloyqt.
24
    set(EXTRA_BINARIES "")
25
    foreach(EXTRA_BINARY ${ARG_EXTRA_BINARIES})
26
        set(INSTALLED_BINARY_PATH "${ESCAPED_PREFIX}/${EXTRA_BINARY}")
27
        list(APPEND EXTRA_BINARIES "-executable=${INSTALLED_BINARY_PATH}")
28
    endforeach()
29

30
    list(JOIN EXTRA_BINARIES " " EXTRA_BINARIES_STR)
31

32
    if(CMAKE_VERSION VERSION_GREATER "3.14")
33
        set(COMMAND_ECHO "COMMAND_ECHO STDOUT")
34
    else()
35
        set(COMMAND_ECHO "")
36
    endif()
37

38
    set(COMMAND_ARGS
39
        ${MACDEPLOYQT_EXE}
40
        ${APP_BUNDLE_PATH}
41

42
        # Adjusts dependency rpaths of extra binaries
43
        ${EXTRA_BINARIES_STR}
44

45
        # Silences warnings on subsequent re-installations
46
        -always-overwrite
47
    )
48

49
    install(CODE
50
    "
51
execute_process(
52
    COMMAND ${COMMAND_ARGS}
53
    ${COMMAND_ECHO}
54
    RESULT_VARIABLE EXIT_CODE
55
)
56
if(NOT EXIT_CODE EQUAL 0)
57
    message(FATAL_ERROR
58
        \"Running ${COMMAND_ARGS} failed with exit code \${EXIT_CODE}.\")
59
endif()
60
")
61
endfunction()
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.