summaryrefslogtreecommitdiffstats
path: root/tests/data/CMakeLists.txt
blob: 31b6479924c63341819e54d274f420d0d69733a5 (plain)
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

if (NOT QT_FEATURE_am_installer)
    message(WARNING "QT_FEATURE_am_installer is disabled, cannot generate test packages")
    return()
endif()

file(GLOB_RECURSE TEST_DATA_FILES
    RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
    certificates/*
    hello-world.red/*
    manifests/*
    create-test-packages.sh
    icon.png
    info-big.yaml
    info.yaml
    testfile
    utilities.sh
)

add_custom_target(Test-Data-Files SOURCES
    ${TEST_DATA_FILES}
)

foreach(file ${TEST_DATA_FILES})
    if (NOT ${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
        add_custom_command(OUTPUT ${file}
                           COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${CMAKE_CURRENT_BINARY_DIR}/${file}
                           DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
                           COMMENT "Copying file: ${file}")
    endif()
    list(APPEND ALL_TEST_DATA_FILES ${CMAKE_CURRENT_BINARY_DIR}/${file})
endforeach()

qt_internal_collect_command_environment(env_path env_plugin_path)

qt_am_internal_find_host_packager()

if (WIN32)
    find_program(bash bash.exe
                 PATHS ENV PATH
                 HINTS "C:/Program Files/Git/bin"
                 HINTS "C:/Program Files (x86)/Git/bin"
    )

    if (bash STREQUAL "bash-NOTFOUND")
        add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/packages
                           COMMAND "${CMAKE_COMMAND}" -E echo "Not generating test packages, because bash.exe could not be located."
        )
    else()
        # We need to set the PATH *inside* the bash, because MingW's bash.exe will always prepend
        # /mingw64/bin to $PATH, which in most cases has incompatible versions of the stdc++ and
        # gcc libs, preventing the appman-packager from starting.

        add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/packages
                           COMMAND ${bash} -c 'export PATH="`cygpath -u -p \"${env_path}\"`:$$PATH" \; ${CMAKE_CURRENT_BINARY_DIR}/create-test-packages.sh $<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::appman-packager>'
                           DEPENDS ${ALL_TEST_DATA_FILES}
        )
    endif()
else()
    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/packages
                       COMMAND "${CMAKE_COMMAND}" -E env "PATH=${env_path}${QT_PATH_SEPARATOR}$ENV{PATH}"
                               ${CMAKE_CURRENT_BINARY_DIR}/create-test-packages.sh $<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::appman-packager>
                       DEPENDS ${ALL_TEST_DATA_FILES}
    )
endif()

add_custom_target(create-test-packages ALL
                  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/packages
)