The tool provides an easy and convenient way of merging
per-architecture macos libraries into the universal ones.
Change-Id: Idcec68ea13e4cf4e201373866f1ebabbbc586414
Reviewed-by: Simo Fält <simo.falt@qt.io>
These scripts are generic for both linux and macos, we may parameterize
them and reuse on both platforms.
Change-Id: Ia61cfbbf5c91e2135e38253c4a96605015d2d1b6
Reviewed-by: Alexey Edelev <semlanik@gmail.com>
There is not particular reason to hold multiple manifests for the vcpkg
for different platforms, since we expect that the direct dependency set
that is used from vcpkg will remain the same on each platform.
Keeping copies of the vcpkg manifest doesn't make much sense.
The vcpkg manifest and configuration file are now in the
coin/provisioning/common/shared/vcpkg directory.
Change-Id: Icc9c88592c68cb591216f3d0668f9984592d6c7b
Reviewed-by: Simo Fält <simo.falt@qt.io>
Made an installation of NuGet in a separate script to be able to share
the packages by an environment variable between multiple scripts.
NuGet is needed for both the Windows App SDK and a virtual camera.
Also added a label on top of the scripts about copyright and license.
Change-Id: I11f035d8eb107d2d2c9e2a93f17a935129bb707e
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
When running 'install-ffmpeg-android.sh' on Ubuntu hosts, it may fail
due to the FFmpeg build process using the host's 'strip' executable.
This causes the build to fail due to the 'strip' throwing an error
due to it not being able to recognize the format of the .so files for
the FFmpeg Android build.
This patch solves this by explicitly using the executable 'llvm-strip'
command from the Android NDK.
Pick-to: 6.11 6.10 6.8
Change-Id: Ia32c31e3e9d1f550a026f2684362e19d663a8863
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Currently, this script is hardcoded to output to the directory
'/usr/local/'. This output is stored in the variable 'prefix'. However,
this variable is used inconsistently in the script, meaning we cannot
actually modify the variable to change the output directory.
This patch does the following:
- Applies the 'prefix' variable where necessary.
- Allows an optional command-line parameter to be applied to 'prefix',
allowing one to specify where the output directory. This is
particularly useful for local builds.
No changes to current CI behavior.
Pick-to: 6.11 6.10 6.8
Change-Id: I51f83ce3844c2aa9db778b1c54091acb64a227e6
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This patch updates build.gradle to set compile- and
targetSdkVersion to 36.
Task-number: QTBUG-138552
Task-number: QTBUG-138549
Pick-to: 6.11 6.10 6.8
Change-Id: I44be99956f39e7bc23e8c5a3d15289dfdd574921
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
RTA is using different means to install Squish for RTA tests, no need
to do it in general provisioning.
Pick-to: 6.11
Change-Id: I4858a282ad7a0b1412f6dd0f4876109fe54a4c88
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
This patch bumps:
-The sdkBuildToolsVersion used in Coin to 36.0.0
-The sdkApiLevel used in Coin to 36
Task-number: QTBUG-138550
Task-number: QTBUG-138549
Pick-to: 6.11 6.10 6.8
Change-Id: Ic63cd28ba39743e517ea3a3e2f9ec08bd5dc3267
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
Axvion analysis will be run also in release branches and this
prevents results to be mixed between brnaches.
Task-number: QTQAINFRA-7599
Pick-to: 6.11 6.10 6.8
Change-Id: I5766d234bce2054d0dc6999ae1cac3f05c197d0e
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
Currently, the iOS FFmpeg provisioning script will install .xcframework
files into a subfolder 'frameworks'. The .xcframework files fulfill a
similar purpose to ordinary .dylib files and should be placed in a
'lib' subfolder, to make provisioning more similar to how we deploy
FFmpeg for other platforms.
This patch makes us install .xcframework files in a 'lib' subfolder
instead.
Task-number: QTBUG-136480
Pick-to: 6.11 6.10
Change-Id: I91f9938b595ecff5b04d49a71e9872f5d7278cda
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This disables 12 more generally Mostly Harmless warnings to have a
realistic chance to get down to a base line of zero violations.
Later we can re-evaluate the disabled rules one by one and re-enable
them if wanted.
Change-Id: Id9fc2e4013fb7c59040868fea54f14dcda6cefe0
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
This patch
- Replaces Android 15 with Android 16 as a maximum version
- Sets Android 16 as significant and switches to r07 version
Task-number: QTQAINFRA-7299
Task-number: QTQAINFRA-7298
Pick-to: 6.11 6.10 6.8
Change-Id: Ic2ac071da7ab1763225c82e441c27f60cc25fe06
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Needed for WebEngine based on Chromium 140
Pick-to: 6.10 6.11
Change-Id: I0cf1df1107cc8f5aa2850239608f03a7c7831676
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
This script is currently located in the 'linux' directory. In future
patches, it will be reused by macOS and Linux hosts.
This patch moves it into the 'unix' folder.
Pick-to: 6.11 6.10 6.8
Change-Id: Ib03b999bef0373dc9600d505b1f4ce926fa97de6
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
The current script relies on some commands intentionally failing during
provisioning because they only apply to certain versions of Xcode.
These errors are silenced using pipes. This is error-prone because we
can no longer catch when these commands are failing in the case where
they should not.
This patch introduces some additional error-handling and conditionals
to make sure we only run commands when they are intended to succeed.
Pick-to: 6.11 6.10 6.8
Change-Id: Ic5048f54adb31d263e28f51312f44fe3b55e6fe5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This patch updates the Android Command-Line Tools in CI from v2.1 to
v19.0.
The zip file for the older version contained a single directory
'tools', this directory has been renamed to 'cmdline-tools' in the
newer version. This patch includes some changes to make sure we still
use the same folder structure as before.
Task-number: QTQAINFRA-7487
Pick-to: 6.11 6.10 6.8
Change-Id: Id9227241283d4c529005c4961449f50ca7af13be
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
The Android provisioning scripts on macOS and Linux perform many of the
same tasks, but with slightly differing approaches. Future patches will
make us run Android emulators on ARM64, which will further make these
scripts similar.
This patch performs some modifications to the macOS provisioning script
to make it more similar to the Linux one. This will help us combine
parts of these scripts in the future.
Task-number: QTQAINFRA-7487
Pick-to: 6.11 6.10 6.8
Change-Id: Idba30d07607780d1ef8c60cc5e038a034c821632
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This script is stored in the directory 'provisioning/common/unix'. This
implies it can be used from Linux and macOS hosts. The script
uses the wget command, but at the time of writing, wget is not
installed on our macOS hosts. If wget is not found, this command will
assume the HTTP proxy is not found rather than fail the script
execution.
This patch rewrites this script to use curl if wget is not found.
This makes it run correctly on macOS. Additionally, it adds a fail
case if neither wget or curl is found on the system.
Pick-to: 6.11 6.10 6.8
Change-Id: Id54b9fc69307ef28eb35cf1c0042df11e704a6e2
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
The Python provisioning on macOS ARM hosts is done multiple times
across separate targets.
This patch moves the code into a common script 'macos/python-arm.sh'.
As a drive-by, we bump the version of all targets to 3.12.11, whch is
the same as the one used in the macOS 15 ARM host.
Pick-to: 6.11 6.10 6.8
Change-Id: I8c1f6f7d635fe47b9faa34dbe6988e89252dc2c9
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Custom patched packages for windows.
Also Add Windows on arm support.
Pick-to: 6.11 6.10 6.8
Fixes: COIN-740
Change-Id: I27f7d36b3501be2a2011b9b8dfa0ec846cd57bf5
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
The installer from Microsoft which is used for ARM machines has a
different default installation path compared to the installer from
Oracle that is used for x64 machines, but the provisioning script did
not take it into consideration.
As a result, the JAVA_HOME variable was pointing to a non-existing dir
on Windows ARM machines.
An attempt to adjust the installation path using TARGETDIR or INSTALLDIR
properties did not work, so this patch simply hardcodes the path that is
used by the current ARM installer.
Amends b3f5b4fd64 that added Java
provisioning to Windows ARM.
Task-number: QTBUG-138968
Pick-to: 6.10 6.8
Change-Id: I2abdc07195a9c633340c2d7b21deaa80762aee67
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
- Rename the sha256 variable to sha1, because that's the actual
algorithm that was used to calculate the checksum.
- Use the `version` variable when constructing `externalUrl`.
Amends 0ac4df3e52.
Change-Id: I79d38fdf5033dce7d0b04c2d8788767b2325895f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
It is required for qtopenapi.
The patch adds the maven provisioning to only those Windows
configurations that are currently used in qtopenapi.
This commit amends 0ac4df3e52 which
provisioned the same files for Linux and macOS.
Task-number: QTBUG-138968
Change-Id: I8ec903959c58185a5c46bdb7c13f178bdc10a109
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Place the downloaded file into the new directory inside C:\Utils and
add it to the PATH, because that's what the qtopenapi build scripts
expect.
Task-number: QTBUG-138968
Change-Id: I113b0095074cc8f0dc0470daf54fa7f22ee22719
Reviewed-by: Toni Saario <toni.saario@qt.io>
This currently flags 294 occurences in Qt Core as errors, practically
all of them related to the implemenation of QDataStream related
functionality.
I think this generally at the wrong level, certainly for Qt Core,
but also for user code: operator>> is (besides operator<<)
/the/ main reason to use the QDataStream class, so if we consider
this risky, QDataStream itself should not be used, i.e. it would
be better to flagging code that creates QDataStream objects not
every use of operator>> of such objects.
Change-Id: If758bde3a77f64cc8c06f8328459dfcd2d94dc8f
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
To all linux, macOS and Windows platforms.
Task-number: QTQAINFRA-7554
Change-Id: I677440fb9faf3f3d36744b59f91f0036449b639b
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
openSSL 3.2.0 or newer required for libcurl in openSUSE 16.0
This solution has possibility to leave default openSSL
version into use for others, and openSUSE 16.0 (or others)
can move to a newer version if needed.
There are currently two tests failing in this update,
but as openSUSE 16.0 is non-blocking in the CI, it
doesn't get blocked.
Tickets created to fix those:
- QTBUG-141722
- QTBUG-141723
Task-number: QTQAINFRA-7502
Task-number: QTQAINFRA-7455
Task-number: QTQAINFRA-7452
Change-Id: Ie9995a3afcdb09d091d75651528a94f71f5ece2a
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
This is an unfortunate combination of clazy-function-args-by-ref and
clazy-function-args-by-value.
function-args-by-ref fixes are almost always safe to apply. They
actually may save an unbounded amount of cycles, and there are typically
only a few of them.
On the other hand, function-args-by-value is a mixed bag: There are a
lot of them and the expected gain is small: It's typically trading one
or two register for one register and a "hot" location on the stack.
Especially when passing down such objects to a through a sequence of
function calls this is not even necessarily a clear win on all
architecture.
In any case it should be considered that especially in the Qt context
changing signatures of public functions is not cheap, if possible
at all.
Change-Id: I281ea086fb15e0a045316591d9af620b5e730f4a
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Our iOS FFmpeg provisioning includes build info.plist manifest files
for the FFMpeg framework files. This manifest includes the version of
FFmpeg that we are deploying. This version string is currently
hardcoded and does not match the version we are actually building.
This patch changes the 'install-ffmpeg-ios.sh' script to
programmatically grab the FFmpeg version from our related scripts, and
inserts it in the info.plist manifest.
Pick-to: 6.10
Task-number: QTBUG-136480
Change-Id: Iafeaade2ff6f2a933a0ba48749af459eef37ab51
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
- add openSUSE15.6 build configuration for qtopenapi.
- add rhel9.4 build configuration for qtopenapi.
- delete macos15-x86_64 build configuration for qtopenapi,
because the current qtopenapi code only builds go binaries
targeting arm64 architecture, and the x86_64 configuration would
fail trying to run those binaries.
Task-number: QTBUG-140130
Change-Id: Ia4f1b91345d3d7a87916ceee319a6037318fac63
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
- replace the linux/install-golang.sh to the unix/install-golang.sh
for macos and linux provisioning configurations.
NOTE:
The Golang version is updated from 1.22.4 to 1.25.2.
Task-number: QTBUG-140130
Change-Id: Ic5e7a93bcad4d82210bcd5c7f4144153c938a603
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Allow the emulator launcher to take new options that are commonly
used:
* --window: shows the emulator window instead of running headless
* --avd: set the emulator name instead of using the env var, this
can be more intuitive and more expected than the env var.
* --help: to guide users how to use this script.
Also, the script now will print a list of available AVD names to
use instead of the less obvious error of no AVD name provided
which forces the user to manually find the names first.
This also, sets the COIN_CTEST_RESULTSDIR to CWD in case
it's not set, this is the case when running as a debug VM.
Pick-to: 6.5 6.8 6.10
Change-Id: Id90ca2fddda713645e9c1621e346d73f1dc85ea1
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Ubuntu 23.10 introduced new apparmor features and those prevent bitbake
to work correctly until a apparmor configuration file is installed.
Task-number: QTBUG-137321
Change-Id: Ib3f5faae07ea116012b1c66554211c53ca0e77e7
Reviewed-by: Toni Saario <toni.saario@qt.io>
The directory and file did not exist in cache. Added them and this
change sets versioning to the nuget file name in cache.
Pick-to: 6.10
Task-number: QTQAINFRA-7264
Task-number: QTQAINFRA-7265
Change-Id: I4cf7ce1b547bd8cd4272a981de6845c06a4d1d79
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
This patch introduces 16KB page size support for Windows
host to do Qt for Android build.
Currently Windows only builds FFmpeg on armeabi-v7a ABI.
32-bit ABI's like armeabi-v7a do not support 16KB page
sizes so the build is done for 4KB page size.
Amends ce488ecbc125cb3484f1cbed592ac9e28867eb66
Task-number: QTBUG-139762
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: Ife7d56dd4a9f6d2892127571cab616b3f861dee6
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
This patch adds needed linker flags for FFmpeg Android
compilation to get FFmpeg binary to be compliant for
16KB page size. 16KB page size is compliant with 4KB
page size.
This patch updates Android OpenSSL to be version 3.0.7,
which is build with two NDK's: NDK27c and NDK29-beta2.
Both with 16KB page size support. They are build with https://github.com/KDAB/android_openssl/pull/69
just changing OpenSSL version from 3.1.1 to 3.0.7 and
NDK version from 25.2.9519653 to 27.2.12479018 (27c) and
another build with 29.0.13599879 (beta2). The both build
artefacts are added to CI-files to be usable.
As the 16KB page size is applicable only to 64-bit ABI's
this patch adds the variable to 90-install-ffmpeg.sh files
for android-x86_64 and android-arm64.
Change is picked to all branches using Android 15 or newer
as Android 15 introduced the 16KB page size support.
Fixes: QTBUG-139762
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: I50bab81b97dad3e9d8c1e834c1928949d1e19687
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Related to 33dd0de8fb51bb83230b8c2524d5aae28ffc799b
Task-number: QTBUG-138144
Change-Id: I2aa4a67f8c14de6645f5e821d269474646e616f3
Reviewed-by: Toni Saario <toni.saario@qt.io>