summaryrefslogtreecommitdiffstats
path: root/tests/manual/permissions/CMakeLists.txt
blob: f9fac7e362ab753bd203b9dcb33cc89fe4599f5a (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
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause

qt_internal_add_test(tst_manual_qpermissions
    SOURCES
        tst_qpermissions.cpp
    LIBRARIES
        Qt::CorePrivate
)

if(ANDROID)
    set_property(TARGET tst_manual_qpermissions
        PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
elseif(APPLE)
    # Test an app bundle, but without any usage descriptions

    qt_internal_add_test(tst_qpermissions_app
        SOURCES
            tst_qpermissions.cpp
        DEFINES
            tst_QPermissions=tst_QPermissionsApp
        LIBRARIES
            Qt::CorePrivate
    )

    set_property(TARGET tst_qpermissions_app
        PROPERTY MACOSX_BUNDLE TRUE)
    set_property(TARGET tst_qpermissions_app
        PROPERTY MACOSX_BUNDLE_GUI_IDENTIFIER "io.qt.dev.tst_permissions_app")

    # Test an app bundle with all the required usage descriptions

    qt_internal_add_test(tst_qpermissions_app_with_usage_descriptions
        SOURCES
            tst_qpermissions.cpp
        DEFINES
            tst_QPermissions=tst_QPermissionsAppWithUsageDescriptions
            HAVE_USAGE_DESCRIPTION=1
        LIBRARIES
            Qt::CorePrivate
            Qt::Gui
    )

    set_property(TARGET tst_qpermissions_app_with_usage_descriptions
        PROPERTY MACOSX_BUNDLE TRUE)
    set_property(TARGET tst_qpermissions_app_with_usage_descriptions
        PROPERTY MACOSX_BUNDLE_GUI_IDENTIFIER "io.qt.dev.tst_qpermissions_app_with_usage_descriptions")
    set_property(TARGET tst_qpermissions_app_with_usage_descriptions
        PROPERTY MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist")

    foreach(permission_plugin IN LISTS QT_ALL_PLUGINS_FOUND_BY_FIND_PACKAGE_permissions)
        set(permission_plugin "${QT_CMAKE_EXPORT_NAMESPACE}::${permission_plugin}")
        qt6_import_plugins(tst_qpermissions_app INCLUDE ${permission_plugin})
        qt6_import_plugins(tst_qpermissions_app_with_usage_descriptions INCLUDE ${permission_plugin})
    endforeach()

    if(NOT CMAKE_GENERATOR STREQUAL "Xcode")
        add_custom_command(TARGET tst_qpermissions_app_with_usage_descriptions
            POST_BUILD COMMAND codesign -s - tst_qpermissions_app_with_usage_descriptions.app)
    endif()
endif()