qt5base-lts/mkspecs
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
..
aix-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
aix-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
android-clang Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
common Bump supported macOS SDK version for qmake to macOS 13 2022-10-14 21:05:51 +02:00
cygwin-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
darwin-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
devices Add new mkspecs device for Raspberry Pi 4 (64-bit) 2022-07-14 15:09:34 +03:00
dummy move all target spec handling to qmake-based configure system 2016-12-13 18:56:34 +00:00
features Add permission API backend for macOS and iOS 2022-11-03 15:02:36 +01:00
freebsd-clang Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
freebsd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
haiku-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
hpuxi-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
hurd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-armv7 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-armv7-imx6 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-armv8-rcar Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-x86 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-aarch64-gnu-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-arm-gnueabi-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang-libc++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang-libc++-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-g++-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc-k1om Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-llvm Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-lsb-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
lynxos-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
macx-clang Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
macx-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
macx-icc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
macx-ios-clang Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
macx-xcode Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
modules Adjust wiki links to the new redirect 2015-03-04 15:36:12 +00:00
netbsd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
openbsd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-aarch64le-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-armle-v7-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-x86-64-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-x86-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc-64-stlport Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc-stlport Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
unsupported Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
wasm-emscripten wasm: don't set GL_DEBUG 2022-09-08 12:15:24 +00:00
win32-arm64-msvc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-clang-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-clang-msvc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-icc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-icc-k1om Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-msvc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00