qt5base-lts/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 Revert "Disable Docker-based test servers on Windows temporarily" 2019-07-09 13:49:18 +02:00
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 Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
configure_base.prf configure: cache test output as well 2018-04-10 18:51:13 +00:00
configure.prf Remove winrt 2020-06-06 20:25:49 +02:00
coverage.prf configure: Add switch for clang's "source-based" code coverage feature 2020-01-28 20:26:15 +00:00
create_cmake.prf Merge remote-tracking branch 'origin/5.14' into 5.15 2020-01-29 01:00:56 +01:00
ctest_testcase_common.prf Remove ANGLE 2020-05-26 15:11:40 +02:00
ctest_testcase_installed.prf
ctest_testcase.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 qmake: make CONFIG+=egl work again 2019-01-07 19:07:02 +00:00
entrypoint.prf Move iOS entrypoint logic to entrypoint library 2020-11-10 16:53:31 +01:00
exceptions_off.prf
exceptions.prf
exclusive_builds_post.prf Say hello to Android multi arch build in one go 2019-08-26 12:59:15 +03:00
exclusive_builds.prf Fix duplicates in QMAKE_DIR_REPLACE 2019-07-10 12:35:52 +02:00
file_copies.prf qmake: Fix COPIES for Visual Studio projects 2019-02-21 06:43:56 +00:00
gc_binaries.prf Make the use of -fdata-sections and --gc-sections more generic in Qt 2018-04-27 06:47:35 +00:00
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 Fix parallel lex/yacc invocation for debug_and_release builds 2019-06-06 15:21:37 +02:00
link_ltcg.prf Support different job counts also for ICC LTO 2017-04-07 17:45:04 +00:00
link_pkgconfig.prf
lrelease.prf Fix .qm file name calculation in lrelease.prf 2021-09-10 23:27:15 +02:00
ltcg.prf Merge remote-tracking branch 'origin/5.13' into 5.14 2019-11-13 07:21:33 +01:00
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 Revert "configure: actually resolve libraries into full filepaths" 2019-09-13 10:47:38 +02:00
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 qml_plugin.prf: Use and prefer QML_IMPORT_VERSION over IMPORT_VERSION 2020-01-17 11:16:44 +01:00
qmltestcase.prf Fix running qml tests on Android 2020-08-24 14:50:56 +03: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 Make the use of -fdata-sections and --gc-sections more generic in Qt 2018-04-27 06:47:35 +00:00
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_targets.prf
qt_docs.prf Doc build: fix conflicting response file with moc 2021-11-29 22:50:00 +02:00
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 Fix install targets for generated private headers 2019-02-06 07:17:46 +00: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_module.prf Win32: Enable large address aware explicitly 2021-11-26 16:42:53 +08: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 Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
qt_tool.prf Windows: Automatically set metadata for all Qt apps 2017-07-31 06:19:06 +00:00
qt_tracepoints.prf Move build tools to libexec instead of the bin dir 2021-02-23 17:02:30 +01:00
qt.prf Add permission API backend for macOS and iOS 2022-11-03 15:02:36 +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_functions.prf Fix condition that adds resources for each Android ABI 2021-04-07 17:00:17 +02:00
resources.prf rcc: teach qmake not to use zstd when not available 2022-07-06 19:41:31 +03:00
rtti_off.prf qmake: enable rtti config option for g++/clang 2018-12-13 20:51:39 +00:00
rtti.prf qmake: enable rtti config option for g++/clang 2018-12-13 20:51:39 +00:00
sanitizer.prf configure: Add sanitizer "fuzzer-no-link" 2019-11-14 15:45:02 +01:00
silent.prf Fix CONFIG+=silent for MSVC non-inference rules 2017-07-14 18:49:56 +00:00
simd.prf Add new AVX512 extensions found in Intel CLX, ICL and ICX processors 2020-02-03 11:31:49 -07:00
spec_post.prf Qmake: Introduce and use QMAKE_{SYSTEM,SHELL}_NULL_DEVICE variable, take 2 2017-10-13 13:32:36 +00:00
spec_pre.prf
static_runtime.prf escape literal backslashes in qmake files 2018-12-12 17:24:39 +00:00
testcase_targets.prf
testcase.prf Android: Fix make check to work for single ABI Qt for Android builds 2020-08-26 01:13:27 +02:00
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 Allow using Xcode Command Line Tools to build Qt 2017-06-29 02:00:12 +00:00
yacc.prf yacc: Output the path for the move with the right directory separator 2020-01-13 11:50:02 +00:00