qt6-bb10/mkspecs/features
Timur Pocheptsov f0a7d74e1d Add permission API backend for macOS and iOS
When submitting applications to the iOS and macOS AppStore the
application goes through static analysis, which will trigger on
uses of various privacy protected APIs, unless the application
has a corresponding usage description for the permission in the
Info.plist file. This applies even if the application never
requests the given permission, but just links to a Qt library
that has the offending symbols or library dependencies.

To ensure that the application does not have to add usage
descriptions to their Info.plist for permissions they never
plan to use we split up the various permission implementations
into small static libraries that register with the Qt plugin
mechanism as permission backends. We can then inspect the
application's Info.plist at configure time and only add the
relevant static permission libraries.

Furthermore, since some permissions can be checked without any
usage description, we allow the implementation to be split up
into two separate translation units. By putting the request in
its own translation unit we can selectively include it during
linking by telling the linker to look for a special symbol.
This is useful for libraries such as Qt Multimedia who would
like to check the current permission status, but without
needing to request any permission of its own.

Done-with: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Change-Id: Ic2a43e1a0c45a91df6101020639f473ffd9454cc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-11-03 15:02:36 +01:00
..
android Add flag that skips Qml import scanning to android deployment settings 2022-10-31 15:39:14 +02:00
data findclasslist.pl: print the line number of where the occurrence came 2022-09-06 13:43:10 -03:00
mac Guard some qmake 'simulator' conditions with iOS scope 2022-10-05 09:07:03 +02:00
uikit CMake: disable the attempt to force SIMD on iOS simulator builds 2022-06-27 20:28:41 -07:00
unix CMake: fix the word order in "no_direct_extern_access" 2022-07-20 14:54:20 -07:00
unsupported
wasm wasm: set ALLOW_MEMORY_GROWTH for multi-threaded builds 2022-09-01 15:42:28 +02:00
win32 qmake: Fix installation of separate debug info for plugins 2022-08-09 12:57:12 +02:00
benchmark.prf
build_pass.prf
cmake_functions.prf CMake: Don't hard-code the sysroot in Qt5XXXConfigExtras.cmake 2020-05-14 21:36:59 +02:00
cmdline.prf
configure.prf Remove winrt 2020-06-06 20:25:49 +02:00
configure_base.prf
coverage.prf
create_cmake.prf
ctest_testcase.prf
ctest_testcase_common.prf Remove ANGLE 2020-05-26 15:11:40 +02:00
ctest_testcase_installed.prf
dbusadaptors.prf
dbuscommon.pri
dbusinterfaces.prf
declarative_debug.prf
default_post.prf qmake: Add support for C++23 2022-04-05 14:27:50 +02:00
default_pre.prf Remove last trace of licheck 2021-04-07 11:00:41 +00:00
designer_defines.prf
device_config.prf
egl.prf
entrypoint.prf Move iOS entrypoint logic to entrypoint library 2020-11-10 16:53:31 +01:00
exceptions.prf
exceptions_off.prf
exclusive_builds.prf
exclusive_builds_post.prf
file_copies.prf
gc_binaries.prf
gcov.prf
include_source_dir.prf
incredibuild_xge.prf
java.prf Android: bump default javac build versions to 8 2020-09-16 20:55:10 +03:00
lex.prf
link_ltcg.prf
link_pkgconfig.prf
lrelease.prf Fix .qm file name calculation in lrelease.prf 2021-09-10 23:27:15 +02:00
ltcg.prf
metatypes.prf Fix qmake's metatype generation feature after moving moc to libexec 2021-02-25 16:10:13 +01:00
moc.prf Move build tools to libexec instead of the bin dir 2021-02-23 17:02:30 +01:00
no_debug_info.prf
permissions.prf Add permission API backend for macOS and iOS 2022-11-03 15:02:36 +01:00
plugin_bundle.prf
precompile_header.prf
qgltf.prf
qlalr.prf Move build tools to libexec instead of the bin dir 2021-02-23 17:02:30 +01:00
qmake_use.prf
qml_debug.prf
qml_module.prf Android: Install the qmldir files when configuring for a single abi 2020-08-03 16:47:31 +02:00
qml_plugin.prf
qmltestcase.prf Fix running qml tests on Android 2020-08-24 14:50:56 +03:00
qt.prf Add permission API backend for macOS and iOS 2022-11-03 15:02:36 +01:00
qt_android_deps.prf Android: Install the qmldir files when configuring for a single abi 2020-08-03 16:47:31 +02:00
qt_app.prf
qt_build_config.prf qmake: Allow using Windows 10 API in MinGW qmake internal projects 2022-01-21 19:55:27 +01:00
qt_build_extra.prf
qt_build_paths.prf CMake: Use target install prefix for MODULE_BASE_OUTDIR 2020-07-01 10:03:50 +02:00
qt_clear_installs.prf
qt_common.prf qmake: Add support for C++23 2022-04-05 14:27:50 +02:00
qt_config.prf qmake: Introduce QT_HOST_LIBEXECS property 2021-02-18 11:46:42 +01:00
qt_configure.prf Make configure -qmake actually work 2020-10-20 09:16:27 +02:00
qt_docs.prf Doc build: fix conflicting response file with moc 2021-11-29 22:50:00 +02:00
qt_docs_targets.prf
qt_example_installs.prf Allow building Qt examples with qmake in-source 2021-06-12 11:06:10 +02:00
qt_functions.prf Move build tools to libexec instead of the bin dir 2021-02-23 17:02:30 +01:00
qt_helper_lib.prf Install 3rd party headers and meta for static builds 2020-11-16 13:08:04 +01:00
qt_installs.prf
qt_module.prf Win32: Enable large address aware explicitly 2021-11-26 16:42:53 +08:00
qt_module_headers.prf Move syncqt.pl to libexec 2021-03-04 09:56:07 +01:00
qt_module_pris.prf Don't rely on the module.pri for the entrypoint linking to the library 2020-11-09 18:08:06 +01:00
qt_parts.prf Configure: Do not automatically enable compilation of examples for tests 2020-05-19 08:42:19 +02:00
qt_plugin.prf CMake: Remove old Qt 5 CMake build system files 2020-10-01 14:57:16 +02:00
qt_prefix_build_check.prf CMake/qmake: Fix qtIsPrefixBuild for a CMake-built qtbase 2020-04-08 15:14:09 +02:00
qt_targets.prf Update copyright year to 2022 2022-01-04 12:44:19 +01:00
qt_test_helper.prf
qt_tool.prf
qt_tracepoints.prf Move build tools to libexec instead of the bin dir 2021-02-23 17:02:30 +01:00
resolve_config.prf
resolve_target.prf Use 'A' for Apple framework version instead of Qt major version 2020-09-23 16:59:06 +02:00
resources.prf rcc: teach qmake not to use zstd when not available 2022-07-06 19:41:31 +03:00
resources_functions.prf Fix condition that adds resources for each Android ABI 2021-04-07 17:00:17 +02:00
rtti.prf
rtti_off.prf
sanitizer.prf
silent.prf
simd.prf
spec_post.prf
spec_pre.prf
static_runtime.prf
testcase.prf Android: Fix make check to work for single ABI Qt for Android builds 2020-08-26 01:13:27 +02:00
testcase_targets.prf
testcocoon.prf
testlib_defines.prf
toolchain.prf macOS: Don't hard-code x86_64 as the architecture when using qmake 2020-12-07 15:35:55 +01:00
uic.prf Move build tools to libexec instead of the bin dir 2021-02-23 17:02:30 +01:00
use_c_linker.prf
vxworks.prf
warn_off.prf
warn_on.prf
wayland-scanner.prf Move qtwaylandscanner to libexec 2021-05-11 16:39:07 +00:00
xctest.prf
yacc.prf