Support for versions older than 3.5 has been dropped.
The minimum version can be forced in most cases via a configuration flag.
We require 3.28 for proper tvOS support anyway.
This will be needed until these contribs are updated. Although some are not
maintained anymore.
Using value() potentially throws an exception that is not always
available on macOS.
Since XCode 16 it's considered available in all macOS, iOS, etc.
```
XCode 16.4+
#define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS _LIBCPP_INTRODUCED_IN_LLVM_4_ATTRIBUTE
XCode 12.5-15.4
# define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS \
__attribute__((availability(macos,strict,introduced=10.13))) \
__attribute__((availability(ios,strict,introduced=12.0))) \
__attribute__((availability(tvos,strict,introduced=12.0))) \
__attribute__((availability(watchos,strict,introduced=5.0)))
XCode 11-12.2
# define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS \
__attribute__((availability(macosx,strict,introduced=10.14))) \
__attribute__((availability(ios,strict,introduced=12.0))) \
__attribute__((availability(tvos,strict,introduced=12.0))) \
__attribute__((availability(watchos,strict,introduced=5.0)))
XCode 9.2
#define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS __attribute__((unavailable))
```
We never use the class directly, nor catch the error.
The only code using gpg-error is gcrypt (and VLC to get error values).
It doesn't use estreams or the threading API provided by gpg-error.
This allows to build on all platforms without having to figure out
which GPGRT_LOCK_INITIALIZER to use.
gcrypt requires gpg-error via pkg-config in static builds so we should
require a gpg-error version with the .pc file.
It contains a .pc file since 1.33 which was released in 2018.
After 1.49 the library adds process spawning which doesn't compile on my
of our platforms.
Providing `sourceVisualRect` now makes the source visual to use sub-texture
instead of filtering out the effect part, which is done when blending is
enabled.
When blending is off, since the opaque effect is drawn first, the fragments
of the source visual that are obscured by the effect area should already be
discarded due to early fragment test, provided that the scene graph uses
depth buffer (which is the default). If not, `sourceVisualRect` can be used
to have the same benefit.
Akin to 75c368c2, if the source texture is not available, a black/transparent
texture is generated and used instead. Not only this is a waste, but also it
can behave like `ViewBlockingRectangle` if blending is disabled, which can
cause glitches.
We can simply make the painter delegate visible when its source is ready,
thanks to aa2b1ec6.
This is essential to fix view texture updates getting delayed
when the sub-rect changes, as well as event accumulation if
`setRect()` is called from different thread(s) in succession
repetitively, which is a case for example when resizing.
Instead of relying on `supportsAtlasTextures`, we now
calculate the atlas coordinate manually because the
proper coordinate is provided after the texture is
already painted during initialization otherwise.
We can do this without worrying about atlas textures
getting detached from the atlas because having
`qt_SubRect_source` in the uniform block serves the
same purpose, except the coordinate in the atlas must
be calculated manually in that case.
For example we may require a newer version of CMake for some targets (iOS, Android)
when the other targets can use a much older version.
This allow keeping required values low while allowing upgrades in some cases.
The contribs already has a way to generate the crossfile.meson file with more features.
It also doesn't rewrite the file if it is the same, avoiding rebuilds of all meson-based contribs.
The main difference is the passing of -arch and -sysroot to the compiler. But these are
already passed as cflags and used for function tests. For example here is the call to
check for clock_gettime in dav1d using
> if cc.has_function('clock_gettime', prefix : '#include <time.h>', args : test_args)
Command line: `/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-I/Volumes/APFS/Programs/Videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/dav1d/.
-I/Volumes/APFS/Programs/Videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/dav1d/vlc_build/.
-I/Volumes/APFS/Programs/Videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/dav1d/include/dav1d
-I/Volumes/APFS/Programs/Videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/dav1d/vlc_build/include/dav1d
-I/Volumes/APFS/Programs/Videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/dav1d/include
-I/Volumes/APFS/Programs/Videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/dav1d/vlc_build/include
-I/Volumes/APFS/Programs/Videolabs/vlc/contrib/arm64-iphoneos/include /tmp/tmp4xnfmvv3/testfile.c -E -P
-mios-version-min=9.0 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.0.sdk
-Werror=partial-availability
-fno-stack-check -g -O2 -P -O0 -Werror=implicit-function-declaration -std=c99` -> 0
This reverts commit 47cdb055b8.