mirror of
git://code.qt.io/qt/qt5.git
synced 2026-08-05 12:25:47 +08:00
Compare commits
155 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f041bdc03d | |||
| f0534341c8 | |||
| 05133dde5b | |||
| fe9f7dbaa0 | |||
| 83fcb43d5d | |||
| f7ef4d3566 | |||
| e0558b4726 | |||
| d0821a727f | |||
| cc91089c4e | |||
| 50affd347a | |||
| 2c46046bac | |||
| f024adfcdc | |||
| 08c556d85a | |||
| 60843a693b | |||
| e09102be0c | |||
| 89722e4a1b | |||
| 03e36895c1 | |||
| dbc9a28110 | |||
| e32d13a6e9 | |||
| 154e4db084 | |||
| 8b5467f5f3 | |||
| 3abcbc655a | |||
| 4a7fd3f5f1 | |||
| 8582435db6 | |||
| 635b735839 | |||
| 39b09f68a8 | |||
| 0441935fcb | |||
| 331627bab9 | |||
| 0076042a0e | |||
| 76e662d5c2 | |||
| 988c40e4fd | |||
| 280b728594 | |||
| 688e9b9e18 | |||
| 48d9827a9e | |||
| d377250d49 | |||
| 37d5bbad37 | |||
| a9f01de02a | |||
| d32d79070a | |||
| 603af886a8 | |||
| f7aa0c3374 | |||
| 2584b9327f | |||
| fefb7d785c | |||
| 8cf1c39fee | |||
| c5909e8b8e | |||
| 8af386b795 | |||
| c5a7b12f62 | |||
| c14dc902db | |||
| 61a32c365c | |||
| eda1772188 | |||
| 00ee1df29e | |||
| 9705c9c01a | |||
| 8a1ee9fe11 | |||
| bc345548a7 | |||
| 3127f71294 | |||
| 7fd5990118 | |||
| b3c37d04f6 | |||
| df1f486717 | |||
| 15aa91146c | |||
| 2a08d5b694 | |||
| f6b673c300 | |||
| cce1fcb986 | |||
| 589a1a5809 | |||
| 2bce5275e3 | |||
| 8b9149ca0c | |||
| 367441b41c | |||
| 9958d9c9ac | |||
| bbd3c7029f | |||
| 37f53cc0d9 | |||
| 898440075b | |||
| 40944f18c3 | |||
| 7d379bca12 | |||
| e1b2031f68 | |||
| 7c1d6903ed | |||
| 31aee9fcbb | |||
| 33eb44f592 | |||
| 546f7a3ba8 | |||
| 65d1bc2995 | |||
| 3c5a67eacb | |||
| 7f6d01f3a9 | |||
| b58994808e | |||
| 3d1a7e0b80 | |||
| 845bc18ba9 | |||
| 6369bf40a7 | |||
| 50448a3bb8 | |||
| a9fee15f5a | |||
| 3897e68506 | |||
| 4316ca969b | |||
| 54e04d08b8 | |||
| f6c3e33877 | |||
| 18e7fca594 | |||
| f449d46879 | |||
| 251f469fb7 | |||
| 86054fb95a | |||
| fcbd137c15 | |||
| de61eb0b3c | |||
| ed2aa04553 | |||
| 480bec0c8f | |||
| e99cbd70fc | |||
| 2b3aa0d2eb | |||
| 782b6fb70c | |||
| f76a47ab0c | |||
| 4a184bed88 | |||
| 00b0638d66 | |||
| 3b03dc00c1 | |||
| 1b6a8c073a | |||
| 73cad7fe96 | |||
| b2fb8279dc | |||
| 546bcebdaa | |||
| 75b333607c | |||
| 6c0f85bdbd | |||
| 1d998afee6 | |||
| 5d247c1e58 | |||
| 18956e23c4 | |||
| 6722895711 | |||
| 87b82c5a62 | |||
| e3ee9617ac | |||
| 03c30a97d5 | |||
| 3700add7fc | |||
| 08cef8ffb2 | |||
| 7326e7a3b8 | |||
| 59fd96b18f | |||
| 30a9d5669c | |||
| 49b09bab88 | |||
| 8c54a23ab6 | |||
| 13db7987b8 | |||
| 75d3d6297c | |||
| 7b2be59623 | |||
| 04f579997c | |||
| 474c3e5a67 | |||
| a606693372 | |||
| bd9eace754 | |||
| 0796b73482 | |||
| d5459a1d46 | |||
| b170c102dd | |||
| 68bc5e611b | |||
| 656d26f1c5 | |||
| 17b78a06d4 | |||
| 064d6696df | |||
| 250c07e631 | |||
| 7733013b4d | |||
| 5fc5b79f16 | |||
| d4dfc9718b | |||
| 7383c38f43 | |||
| 398d58c520 | |||
| 399f581855 | |||
| 5217ba2d0a | |||
| b5b86a4508 | |||
| b4bb8734fb | |||
| a757f93331 | |||
| 89d35e1a10 | |||
| de278446ba | |||
| 77861386ac | |||
| f5f14e7b58 | |||
| 5ee15a39c9 | |||
| bed250f1eb |
+2
-2
@@ -5,8 +5,8 @@ Makefile
|
||||
CMakeLists.txt.user*
|
||||
CMakeUserPresets.json
|
||||
.vscode
|
||||
build
|
||||
build-*
|
||||
build/
|
||||
build-*/
|
||||
.DS_Store
|
||||
init-repository.opt
|
||||
init-repository.opt.in
|
||||
|
||||
+46
-93
@@ -1,53 +1,46 @@
|
||||
[submodule "qtbase"]
|
||||
path = qtbase
|
||||
url = ../qtbase.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = essential
|
||||
[submodule "qtsvg"]
|
||||
depends = qtbase
|
||||
path = qtsvg
|
||||
url = ../qtsvg.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtdeclarative"]
|
||||
depends = qtbase
|
||||
recommends = qtimageformats qtshadertools qtsvg qtlanguageserver
|
||||
path = qtdeclarative
|
||||
url = ../qtdeclarative.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = essential
|
||||
[submodule "qtactiveqt"]
|
||||
depends = qtbase
|
||||
path = qtactiveqt
|
||||
url = ../qtactiveqt.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtmultimedia"]
|
||||
depends = qtbase qtshadertools
|
||||
recommends = qtdeclarative qtquick3d
|
||||
path = qtmultimedia
|
||||
url = ../qtmultimedia.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qttools"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtactiveqt
|
||||
path = qttools
|
||||
url = ../qttools.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = essential
|
||||
[submodule "qtxmlpatterns"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtxmlpatterns
|
||||
url = ../qtxmlpatterns.git
|
||||
branch = dev
|
||||
status = ignore
|
||||
[submodule "qttranslations"]
|
||||
depends = qttools
|
||||
path = qttranslations
|
||||
url = ../qttranslations.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = essential
|
||||
priority = 30
|
||||
[submodule "qtdoc"]
|
||||
@@ -55,7 +48,7 @@
|
||||
recommends = qtmultimedia qtshadertools qttasktree qtwebengine
|
||||
path = qtdoc
|
||||
url = ../qtdoc.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = essential
|
||||
priority = 40
|
||||
[submodule "qtrepotools"]
|
||||
@@ -68,7 +61,7 @@
|
||||
depends = qtbase
|
||||
path = qtqa
|
||||
url = ../qtqa.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = essential
|
||||
priority = 50
|
||||
[submodule "qtlocation"]
|
||||
@@ -76,283 +69,243 @@
|
||||
recommends = qtdeclarative
|
||||
path = qtlocation
|
||||
url = ../qtlocation.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = preview
|
||||
[submodule "qtpositioning"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtserialport
|
||||
path = qtpositioning
|
||||
url = ../qtpositioning.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtsensors"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtsensors
|
||||
url = ../qtsensors.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtsystems"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtsystems
|
||||
url = ../qtsystems.git
|
||||
branch = dev
|
||||
status = ignore
|
||||
[submodule "qtfeedback"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtmultimedia
|
||||
path = qtfeedback
|
||||
url = ../qtfeedback.git
|
||||
branch = master
|
||||
status = ignore
|
||||
[submodule "qtpim"]
|
||||
depends = qtdeclarative
|
||||
path = qtpim
|
||||
url = ../qtpim.git
|
||||
branch = dev
|
||||
status = ignore
|
||||
[submodule "qtconnectivity"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtconnectivity
|
||||
url = ../qtconnectivity.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtwayland"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwayland
|
||||
url = ../qtwayland.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qt3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtshadertools qtmultimedia
|
||||
path = qt3d
|
||||
url = ../qt3d.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = deprecated
|
||||
[submodule "qtimageformats"]
|
||||
depends = qtbase
|
||||
path = qtimageformats
|
||||
url = ../qtimageformats.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtserialbus"]
|
||||
depends = qtbase
|
||||
recommends = qtserialport
|
||||
path = qtserialbus
|
||||
url = ../qtserialbus.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtserialport"]
|
||||
depends = qtbase
|
||||
path = qtserialport
|
||||
url = ../qtserialport.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtwebsockets"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwebsockets
|
||||
url = ../qtwebsockets.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtwebchannel"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtwebsockets
|
||||
path = qtwebchannel
|
||||
url = ../qtwebchannel.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtwebengine"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtwebchannel qttools qtpositioning
|
||||
path = qtwebengine
|
||||
url = ../qtwebengine.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
priority = 10
|
||||
[submodule "qtcanvas3d"]
|
||||
depends = qtdeclarative
|
||||
path = qtcanvas3d
|
||||
url = ../qtcanvas3d.git
|
||||
branch = dev
|
||||
status = ignore
|
||||
[submodule "qtwebview"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtwebengine
|
||||
path = qtwebview
|
||||
url = ../qtwebview.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtcharts"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtcharts
|
||||
url = ../qtcharts.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = deprecated
|
||||
[submodule "qtdatavis3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtdatavis3d
|
||||
url = ../qtdatavis3d.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = deprecated
|
||||
[submodule "qtvirtualkeyboard"]
|
||||
depends = qtbase qtdeclarative qtsvg
|
||||
recommends = qtmultimedia
|
||||
path = qtvirtualkeyboard
|
||||
url = ../qtvirtualkeyboard.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtgamepad"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtgamepad
|
||||
url = ../qtgamepad.git
|
||||
branch = dev
|
||||
status = ignore
|
||||
[submodule "qtscxml"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtscxml
|
||||
url = ../qtscxml.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtspeech"]
|
||||
depends = qtbase qtmultimedia
|
||||
recommends = qtdeclarative
|
||||
path = qtspeech
|
||||
url = ../qtspeech.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtnetworkauth"]
|
||||
depends = qtbase
|
||||
path = qtnetworkauth
|
||||
url = ../qtnetworkauth.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtremoteobjects"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtremoteobjects
|
||||
url = ../qtremoteobjects.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtwebglplugin"]
|
||||
depends = qtbase qtwebsockets
|
||||
recommends = qtdeclarative
|
||||
path = qtwebglplugin
|
||||
url = ../qtwebglplugin.git
|
||||
branch = dev
|
||||
status = ignore
|
||||
[submodule "qtlottie"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtlottie
|
||||
url = ../qtlottie.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtquicktimeline"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtquicktimeline
|
||||
url = ../qtquicktimeline
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtquick3d"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquicktimeline
|
||||
path = qtquick3d
|
||||
url = ../qtquick3d.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtshadertools"]
|
||||
depends = qtbase
|
||||
path = qtshadertools
|
||||
url = ../qtshadertools.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qt5compat"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qt5compat
|
||||
url = ../qt5compat.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = deprecated
|
||||
[submodule "qtcoap"]
|
||||
depends = qtbase
|
||||
path = qtcoap
|
||||
url = ../qtcoap.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtmqtt"]
|
||||
depends = qtbase qtdeclarative
|
||||
recommends = qtwebsockets
|
||||
path = qtmqtt
|
||||
url = ../qtmqtt.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtopcua"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtopcua
|
||||
url = ../qtopcua.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtlanguageserver"]
|
||||
depends = qtbase
|
||||
path = qtlanguageserver
|
||||
url = ../qtlanguageserver.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = preview
|
||||
[submodule "qthttpserver"]
|
||||
depends = qtbase
|
||||
recommends = qtwebsockets
|
||||
path = qthttpserver
|
||||
url = ../qthttpserver.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtquick3dphysics"]
|
||||
depends = qtbase qtdeclarative qtquick3d qtshadertools
|
||||
path = qtquick3dphysics
|
||||
url = ../qtquick3dphysics.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtgrpc"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtgrpc
|
||||
url = ../qtgrpc.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtquickeffectmaker"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquick3d
|
||||
path = qtquickeffectmaker
|
||||
url = ../qtquickeffectmaker.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qtgraphs"]
|
||||
depends = qtbase qtdeclarative qtquick3d
|
||||
path = qtgraphs
|
||||
url = ../qtgraphs.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = addon
|
||||
[submodule "qttasktree"]
|
||||
depends = qtbase
|
||||
path = qttasktree
|
||||
url = ../qttasktree.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = preview
|
||||
[submodule "qtopenapi"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtopenapi
|
||||
url = ../qtopenapi.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = preview
|
||||
[submodule "qtcanvaspainter"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
path = qtcanvaspainter
|
||||
url = ../qtcanvaspainter.git
|
||||
branch = 6.11
|
||||
branch = 6.11.2
|
||||
status = preview
|
||||
|
||||
@@ -178,7 +178,6 @@ function(qt_ir_command_line_set_input name val)
|
||||
endfunction()
|
||||
|
||||
# Appends a value of a command line option into a global property.
|
||||
# Currently unused
|
||||
function(qt_ir_command_line_append_input name val)
|
||||
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
|
||||
set(name "${commandline_option_${name}_alias}")
|
||||
@@ -240,6 +239,22 @@ function(qt_ir_commandline_string arg val nextok)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Like string, but appends to the existing value instead of overwriting.
|
||||
# Allows repeated flags like: -skip qtwebengine -skip qtwebview
|
||||
function(qt_ir_commandline_addString arg val nextok)
|
||||
if(nextok)
|
||||
qt_ir_args_get_next_command_line_arg(val)
|
||||
|
||||
if("${val}" MATCHES "^-")
|
||||
qt_ir_add_error("No value supplied to command line options '${arg}'.")
|
||||
endif()
|
||||
endif()
|
||||
qt_ir_validate_value("${arg}" "${val}" success)
|
||||
if(success)
|
||||
qt_ir_command_line_append_input("${arg}" "${val}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Sets / handles the value of a command line void option.
|
||||
# This is an option like --force, which doesn't take any arguments.
|
||||
# Currently unused
|
||||
@@ -279,6 +294,7 @@ endfunction()
|
||||
#
|
||||
# Currently handles the following types of CLI arguments:
|
||||
# string
|
||||
# addString (like string, but accumulates values from repeated flags)
|
||||
# boolean
|
||||
# void
|
||||
#
|
||||
|
||||
@@ -315,7 +315,7 @@ function(qt_ir_get_already_initialized_submodules prefix
|
||||
)
|
||||
|
||||
qt_ir_parse_git_config_file_contents("${prefix}"
|
||||
READ_GIT_CONFIG
|
||||
READ_GIT_CONFIG_LOCAL
|
||||
PARENT_REPO_BASE_GIT_PATH "${parent_repo_base_git_path}"
|
||||
WORKING_DIRECTORY "${working_directory}"
|
||||
)
|
||||
|
||||
+36
-21
@@ -89,6 +89,26 @@ function(qt_ir_handle_called_from_configure top_level_src_path out_var_exit_reas
|
||||
|
||||
qt_ir_validate_options_for_configure()
|
||||
|
||||
# Convert -skip values to module-subset exclusions so init-repository respects them.
|
||||
qt_ir_get_option_value(skip skip_modules)
|
||||
if(skip_modules)
|
||||
string(REPLACE "," ";" skip_modules "${skip_modules}")
|
||||
list(TRANSFORM skip_modules STRIP)
|
||||
list(TRANSFORM skip_modules PREPEND "-")
|
||||
|
||||
qt_ir_get_option_value(module-subset existing_subset)
|
||||
if(NOT existing_subset)
|
||||
set(existing_subset "default")
|
||||
endif()
|
||||
|
||||
list(APPEND skip_modules "${existing_subset}")
|
||||
list(REMOVE_DUPLICATES skip_modules)
|
||||
list(JOIN skip_modules "," merged_subset)
|
||||
|
||||
qt_ir_set_option_value(module-subset "${merged_subset}")
|
||||
message(DEBUG "Preprocessed -skip option: module-subset is now: ${merged_subset}")
|
||||
endif()
|
||||
|
||||
# -init_submodules implies --force
|
||||
qt_ir_set_option_value(force TRUE)
|
||||
|
||||
@@ -110,6 +130,11 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
||||
set(extra_configure_args "")
|
||||
set(extra_cmake_args "")
|
||||
|
||||
# Collect modules to skip. These may come from:
|
||||
# 1. The -skip option (consumed by init-repository's option parser)
|
||||
# 2. Exclusion entries in -submodules/--module-subset (e.g. -qtfoo)
|
||||
qt_ir_get_option_value(skip skip_modules)
|
||||
|
||||
# If the -submodules or --module-subset options were specified, transform
|
||||
# the values into something configure understands and pass them to configure.
|
||||
qt_ir_get_option_value(module-subset submodules)
|
||||
@@ -117,6 +142,7 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
||||
qt_ir_get_top_level_submodules(include_submodules exclude_submodules)
|
||||
if(NOT include_submodules AND arg_ALREADY_INITIALIZED)
|
||||
string(REPLACE "," ";" include_submodules "${submodules}")
|
||||
list(FILTER include_submodules EXCLUDE REGEX "^$")
|
||||
endif()
|
||||
|
||||
# qtrepotools is always implicitly cloned, but it doesn't actually
|
||||
@@ -133,25 +159,10 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
||||
endif()
|
||||
|
||||
list(JOIN include_submodules "," include_submodules)
|
||||
list(JOIN exclude_submodules "," exclude_submodules)
|
||||
|
||||
# Handle case when the -skip argument is already passed.
|
||||
# In that case read the passed values, merge with new ones,
|
||||
# remove both the -skip and its values, and re-add it later.
|
||||
list(FIND filtered_args "-skip" skip_index)
|
||||
if(exclude_submodules AND skip_index GREATER -1)
|
||||
list(LENGTH filtered_args filtered_args_length)
|
||||
math(EXPR skip_args_index "${skip_index} + 1")
|
||||
|
||||
if(skip_args_index LESS filtered_args_length)
|
||||
list(GET filtered_args "${skip_args_index}" skip_args)
|
||||
string(REPLACE "," ";" skip_args "${skip_args}")
|
||||
list(APPEND skip_args ${exclude_submodules})
|
||||
list(REMOVE_DUPLICATES skip_args)
|
||||
list(JOIN skip_args "," exclude_submodules)
|
||||
list(REMOVE_AT filtered_args "${skip_args_index}")
|
||||
list(REMOVE_AT filtered_args "${skip_index}")
|
||||
endif()
|
||||
# Merge exclusions from module-subset into the skip list.
|
||||
if(exclude_submodules)
|
||||
list(APPEND skip_modules ${exclude_submodules})
|
||||
endif()
|
||||
|
||||
# Handle case when only '-submodules existing' is passed and the
|
||||
@@ -159,9 +170,13 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
||||
if(include_submodules)
|
||||
list(APPEND extra_configure_args "-submodules" "${include_submodules}")
|
||||
endif()
|
||||
if(exclude_submodules)
|
||||
list(APPEND extra_configure_args "-skip" "${exclude_submodules}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Forward all collected skip modules to configure.
|
||||
if(skip_modules)
|
||||
list(REMOVE_DUPLICATES skip_modules)
|
||||
list(JOIN skip_modules "," skip_csv)
|
||||
list(APPEND extra_configure_args "-skip" "${skip_csv}")
|
||||
endif()
|
||||
|
||||
# Insert the extra arguments into the proper positions before and after '--'.
|
||||
|
||||
@@ -37,6 +37,7 @@ macro(qt_ir_set_known_command_line_options)
|
||||
qt_ir_commandline_option(init-submodules TYPE boolean)
|
||||
# We alias qtbase's submodules option to init-repository module-subset.
|
||||
qt_ir_commandline_option(submodules ALIAS module-subset TYPE string)
|
||||
qt_ir_commandline_option(skip TYPE addString)
|
||||
|
||||
set_property(GLOBAL PROPERTY _qt_ir_known_command_line_options "${commandline_known_options}")
|
||||
endmacro()
|
||||
|
||||
@@ -1386,7 +1386,7 @@ function(qt_internal_foreach_repo_run)
|
||||
|
||||
set(color_supported FALSE)
|
||||
set(output_goes_where "")
|
||||
if(NOT tty_exit_CODE AND tty_name)
|
||||
if(NOT tty_exit_code AND tty_name)
|
||||
set(color_supported TRUE)
|
||||
set(output_goes_where "OUTPUT_FILE" "${tty_name}")
|
||||
endif()
|
||||
|
||||
@@ -16,6 +16,13 @@ instructions:
|
||||
variableName: CONFIGURE_ENV_PREFIX
|
||||
variableValue: "{{.Env.ENV_PREFIX}}"
|
||||
|
||||
# Re-fetch the qlitehtml repository in the Coin git mirror, otherwise the
|
||||
# RunCMake.InitRepository test might fail trying to checkout a newer sha1 than what is
|
||||
# available in the Coin git mirror.
|
||||
- type: UpdateRepo
|
||||
gitRemote: code.qt.io
|
||||
repos: [playground/qlitehtml.git]
|
||||
|
||||
- type: ExecuteCommand
|
||||
command: "{{.Env.CONFIGURE_ENV_PREFIX}} cmake {{.SourceDir}}/tests/manual/RunCMake"
|
||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||
|
||||
@@ -62,7 +62,7 @@ Configurations:
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'COMMON_TEST_CMAKE_ARGS=-DQT_SKIP_DOCKER_COMPOSE=ON',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt',
|
||||
'VCPKG_HOST_TRIPLET=arm64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-linux-qt',
|
||||
]
|
||||
@@ -120,15 +120,15 @@ Configurations:
|
||||
# Test on Ubuntu 24.04 x64 X11
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-developer-build-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly', 'InsignificantTests']
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'ubuntu-24.04-x64-developer-build'
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly', 'InsignificantTests']
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'ubuntu-24.04-x64'
|
||||
-
|
||||
Id: 'opensuse-15.6-developer-build'
|
||||
@@ -155,6 +155,7 @@ Configurations:
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
'SCCACHE_C_CUSTOM_CACHE_BUSTER=v1'
|
||||
]
|
||||
-
|
||||
Id: 'sles-15_sp6-static'
|
||||
@@ -185,12 +186,12 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'Packaging', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
|
||||
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON',
|
||||
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
|
||||
'VCPKG_HOST_TRIPLET=x64-windows-qt',
|
||||
@@ -214,7 +215,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-arm64'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Target arch: 'arm64'
|
||||
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
@@ -224,9 +225,9 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
|
||||
'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}} -DQT_FORCE_BUILD_TOOLS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
'OPENSSL_CONF_x64={{.Env.OPENSSL_CONF_x64_arm64}}',
|
||||
'OPENSSL_INCLUDE_x64={{.Env.OPENSSL_INCLUDE_x64_arm64}}',
|
||||
'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}',
|
||||
'OPENSSL_INCLUDE={{.Env.OPENSSL_INCLUDE_x64_arm64}}',
|
||||
'OPENSSL_LIB={{.Env.OPENSSL_LIB_x64_arm64}}',
|
||||
'OPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}}',
|
||||
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc_arm64}}',
|
||||
'VCPKG_HOST_TRIPLET=x64-windows-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-windows-qt',
|
||||
@@ -242,7 +243,7 @@ Configurations:
|
||||
Platform dependency: 'windows-11_24H2-msvc2022-arm64'
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-developer-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
Configure arguments: '-debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20'
|
||||
@@ -260,6 +261,18 @@ Configurations:
|
||||
Compiler: 'GCC'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
-
|
||||
Id: 'rhel-10.0'
|
||||
Template: 'qtci-linux-RHEL-10.0-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON',
|
||||
@@ -281,7 +294,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'visionos-developer-build'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
@@ -293,7 +306,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24h2-mingw13'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Mingw'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
|
||||
@@ -306,7 +319,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-llvm'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'Packaging', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
|
||||
@@ -319,7 +332,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-mingw13-developer-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Mingw'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
Configure arguments: '-developer-build -release -force-asserts -force-debug-info -separate-debug-info -make examples'
|
||||
|
||||
@@ -3,7 +3,7 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-minimal-static-test'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'Packaging', 'UseConfigure', 'MinimalStaticTests']
|
||||
Configure arguments: '-static -release -headersclean -nomake examples -qt-libjpeg -no-icu -qt-doubleconversion -qt-zlib -c++std c++20 -no-feature-sql-psql'
|
||||
@@ -67,13 +67,13 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'macos-14-minimal-static-tests-x86_64'
|
||||
Template: 'qtci-macos-14-x86_64-105'
|
||||
Template: 'qtci-macos-14-x86_64-106'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-x86_64-minimal-static-test'
|
||||
-
|
||||
Id: 'macos-14-minimal-static-tests-arm64'
|
||||
Template: 'qtci-macos-14-arm-106'
|
||||
Template: 'qtci-macos-14-arm-108'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-x86_64-minimal-static-test'
|
||||
|
||||
@@ -13,7 +13,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-minimal-static'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
|
||||
Configure arguments: '-release -force-debug-info -static -nomake examples -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
|
||||
@@ -17,7 +17,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'android-armv7-on-windows'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'armv7'
|
||||
Compiler: 'Mingw'
|
||||
@@ -51,7 +51,7 @@ Configurations:
|
||||
'ANDROID_EMULATOR=emulator_x86_api_28'
|
||||
]
|
||||
-
|
||||
Id: 'android-15-x86_64-on-linux'
|
||||
Id: 'android-16-x86_64-on-linux'
|
||||
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'x86_64'
|
||||
@@ -67,21 +67,24 @@ Configurations:
|
||||
# configuration, to ensure builds without this option work too.
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_35'
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_36'
|
||||
]
|
||||
-
|
||||
Id: 'android-16-x86_64-on-linux'
|
||||
Id: 'android-17-x86_64-on-linux'
|
||||
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'x86_64'
|
||||
Compiler: 'GCC'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'rhel-9.6'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests']
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
|
||||
# configuration, to ensure builds without this option work too.
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_36'
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||
]
|
||||
|
||||
@@ -28,7 +28,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'webassembly-windows'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'Mingw'
|
||||
Target compiler: 'Clang'
|
||||
|
||||
@@ -10,7 +10,7 @@ Configurations:
|
||||
Platform dependency: [
|
||||
'rhel-9.6',
|
||||
'android-9-x86-on-linux',
|
||||
'android-15-x86_64-on-linux'
|
||||
'android-16-x86_64-on-linux'
|
||||
]
|
||||
Features: [
|
||||
'Sccache',
|
||||
@@ -24,7 +24,7 @@ Configurations:
|
||||
Environment variables: [
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-host=QT_CI_ARTIFACT_ID_PATH_rhel-9.6',
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-x86=QT_CI_ARTIFACT_ID_PATH_android-9-x86-on-linux',
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-15-x86_64-on-linux',
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-16-x86_64-on-linux',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"',
|
||||
'ANDROID_EMULATOR=emulator_x86_api_28'
|
||||
]
|
||||
|
||||
@@ -9,10 +9,10 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'macos-universal-on-arm64'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Target arch: 'x86_64-arm64'
|
||||
Features: ['Packaging', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
|
||||
@@ -31,7 +31,7 @@ Configurations:
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
-
|
||||
Id: 'macos-14-x86_64-tests'
|
||||
Template: 'qtci-macos-14-x86_64-105'
|
||||
Template: 'qtci-macos-14-x86_64-106'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
@@ -46,25 +46,25 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'macos-13-arm64-tests'
|
||||
Template: 'qtci-macos-13-arm-107'
|
||||
Template: 'qtci-macos-13-arm-108'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
-
|
||||
Id: 'macos-14-arm64-tests'
|
||||
Template: 'qtci-macos-14-arm-106'
|
||||
Template: 'qtci-macos-14-arm-108'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
-
|
||||
Id: 'macos-15-arm64-tests'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
-
|
||||
Id: 'macos-26-arm64-tests'
|
||||
Template: 'qtci-macos-26-arm-104'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
@@ -87,7 +87,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'macos-arm64-developer-build'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure']
|
||||
Configure arguments: '-developer-build -nomake examples -debug -framework'
|
||||
@@ -97,7 +97,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'macos-26-arm64-developer-build'
|
||||
Template: 'qtci-macos-26-arm-104'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'Insignificant']
|
||||
Configure arguments: '-developer-build -nomake examples -debug -framework'
|
||||
@@ -109,25 +109,25 @@ Configurations:
|
||||
# Test on all supported macOS versions (deployment targets)
|
||||
-
|
||||
Id: 'macos-13-arm64-developer-build-tests'
|
||||
Template: 'qtci-macos-13-arm-107'
|
||||
Template: 'qtci-macos-13-arm-108'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly']
|
||||
Platform dependency: 'macos-arm64-developer-build'
|
||||
-
|
||||
Id: 'macos-14-arm64-developer-build-tests'
|
||||
Template: 'qtci-macos-14-arm-106'
|
||||
Template: 'qtci-macos-14-arm-108'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly']
|
||||
Platform dependency: 'macos-arm64-developer-build'
|
||||
-
|
||||
Id: 'macos-15-arm64-developer-build-tests'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly']
|
||||
Platform dependency: 'macos-arm64-developer-build'
|
||||
-
|
||||
Id: 'macos-26-arm64-developer-build-tests'
|
||||
Template: 'qtci-macos-26-arm-104'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Platform dependency: 'macos-26-arm64-developer-build'
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-developer-build-cxx23'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
Configure arguments: '-debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++23'
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-examples-and-tests-build'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'NoSubmoduleDependencies']
|
||||
Configure arguments: '-make examples -make tests'
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'ubuntu-22.04'
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-22.04-Axivion'
|
||||
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['UseConfigure', 'VMSize16', 'RunAsPlatformDependency', 'PysideAxivion']
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
@@ -7,7 +7,7 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'qnx-710-arm64-on-windows'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Target os: 'QNX_710'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Mingw'
|
||||
|
||||
@@ -2,11 +2,14 @@ Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"ubuntu-22.04"
|
||||
'ubuntu-22.04'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-22.04'
|
||||
Features: ['Axivion', 'DisableTests', 'UseConfigure', 'VMSize16']
|
||||
Id: 'ubuntu-22.04-Axivion'
|
||||
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['UseConfigure', 'VMSize16', 'TestOnly']
|
||||
Environment variables: ['AXIVION_ANALYSIS=1']
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'ubuntu-24.04-x64'
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
-
|
||||
Id: 'imx8-arm64-developer-build-2404'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
|
||||
Target os: 'IMX8'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'GCC'
|
||||
Platform dependency: 'ubuntu-24.04-x64'
|
||||
Features: ['Elinux', 'Sccache', 'UseConfigure', 'DoNotAbortTestingOnFirstFailure']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE=/opt/b2qt/imx8qm/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux-" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE="/opt/b2qt/imx8qm/sysroots/x86_64-pokysdk-linux/usr/share/cmake/OEToolchainConfig.cmake" -DQT_FORCE_BUILD_TOOLS=ON -DQT_NO_PACKAGE_VERSION_INCOMPATIBLE_WARNING=TRUE',
|
||||
'QT_YOCTO_ENVSETUP=/opt/b2qt/imx8qm/environment-setup-cortexa72-cortexa53-crypto-poky-linux',
|
||||
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS=/opt/b2qt/imx8qm/sysroots/cortexa72-cortexa53-crypto-poky-linux',
|
||||
'GST_PLUGIN_SCANNER=/opt/b2qt/imx8qm/sysroots/cortexa72-cortexa53-crypto-poky-linux/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-linux-qt'
|
||||
]
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-run-cmake-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'NoSubmoduleDependencies', 'TopLevelRunCMakeTests', 'DisableTests', 'VMSize16']
|
||||
Configure arguments: ''
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-unity-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'Debug', 'UseConfigure', 'DoNotRunTests']
|
||||
Configure arguments: '-debug -force-debug-info -headersclean -make examples -qt-zlib'
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Module only: True
|
||||
Configurations:
|
||||
-
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease']
|
||||
Configure arguments: ''
|
||||
@@ -21,14 +21,14 @@ Configurations:
|
||||
Configure arguments: ''
|
||||
Environment variables: []
|
||||
-
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'DebugAndRelease']
|
||||
Configure arguments: ''
|
||||
Environment variables: []
|
||||
# without tests
|
||||
-
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'DisableTests']
|
||||
Configure arguments: ''
|
||||
@@ -36,7 +36,7 @@ Configurations:
|
||||
Environment script: ['%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat', 'amd64']
|
||||
# oldest Qt version
|
||||
-
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'OldestQt']
|
||||
Configure arguments: ''
|
||||
@@ -55,7 +55,7 @@ Configurations:
|
||||
Configure arguments: ''
|
||||
Environment variables: []
|
||||
-
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'OldestQt']
|
||||
Configure arguments: ''
|
||||
|
||||
@@ -13,6 +13,6 @@ Configurations:
|
||||
Features: ['TestOnly']
|
||||
-
|
||||
Id: 'qtgp-on-windows-24h2'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['TestOnly']
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-24.04-x86-static-qtlite'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'MinimalStaticTests']
|
||||
Configure arguments: >
|
||||
@@ -224,7 +224,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'ubuntu-24.04-x86-static-qtlite-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly','InsignificantTests']
|
||||
Platform dependency: 'ubuntu-24.04-x86-static-qtlite'
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'macos-quick-bridges'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
@@ -24,7 +24,7 @@ Configurations:
|
||||
Environment variables: []
|
||||
-
|
||||
Id: 'linux-quick-bridges'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
@@ -46,7 +46,7 @@ Configurations:
|
||||
Environment variables: []
|
||||
-
|
||||
Id: 'windows-quick-bridges'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
|
||||
@@ -12,7 +12,7 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'macos-quick-minimal'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'MinimalStaticTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
@@ -145,13 +145,13 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'macos-quick-minimal-tests'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'InsignificantTests', 'Insignificant']
|
||||
Platform dependency: 'macos-quick-minimal'
|
||||
-
|
||||
Id: 'linux-quick-minimal'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
@@ -293,7 +293,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-static-quicklite'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
|
||||
@@ -12,7 +12,7 @@ Include: [
|
||||
'android-arm64-on-macos',
|
||||
'android-armv7-on-windows',
|
||||
'android-9-x86-on-linux',
|
||||
'android-15-x86_64-on-linux'
|
||||
'android-16-x86_64-on-linux'
|
||||
],
|
||||
offline_documentation.yaml
|
||||
]
|
||||
@@ -34,7 +34,7 @@ Configurations:
|
||||
'ANDROID_EMULATOR=automotive_emulator_x86_64_api_34'
|
||||
]
|
||||
-
|
||||
Id: "automotive-android-10-x86_64-on-linux-rhel_9_6"
|
||||
Id: "automotive-android-12-x86_64-on-linux-rhel_9_6"
|
||||
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'x86_64'
|
||||
@@ -47,5 +47,5 @@ Configurations:
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}}',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_EMULATOR=automotive_emulator_x86_64_api_29'
|
||||
'ANDROID_EMULATOR=automotive_emulator_x86_64_api_31'
|
||||
]
|
||||
|
||||
@@ -12,28 +12,28 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-quick-bridges-dotnet'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesDotnet']
|
||||
|
||||
-
|
||||
Id: 'windows-quick-bridges-rust'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesRust']
|
||||
|
||||
-
|
||||
Id: 'windows-quick-bridges-python'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesPython']
|
||||
|
||||
-
|
||||
Id: 'windows-quick-bridges-java'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesJava']
|
||||
@@ -61,21 +61,21 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'macos-quick-bridges-java'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Platform dependency: 'macos-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesJava']
|
||||
|
||||
-
|
||||
Id: 'macos-quick-bridges-python'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Platform dependency: 'macos-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesPython']
|
||||
|
||||
-
|
||||
Id: 'macos-quick-bridges-swift'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Platform dependency: 'macos-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesSwift']
|
||||
|
||||
@@ -12,5 +12,5 @@ Configurations:
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Features: ['Sccache', 'TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Platform dependency: 'webassembly-linux-thread-asyncify-new'
|
||||
|
||||
@@ -2,67 +2,67 @@ Version: 2
|
||||
Module only: True
|
||||
Configurations:
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET1'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET2'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET3'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET4'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET5'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET6'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET7'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET8'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET9'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Packaging']
|
||||
Target arch: 'TARGET10'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Insignificant']
|
||||
Target arch: 'INSIGNIFICANT_TARGET1'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Insignificant']
|
||||
Target arch: 'INSIGNIFICANT_TARGET2'
|
||||
-
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
|
||||
Compiler: 'Yocto'
|
||||
Features: ['Insignificant']
|
||||
Target arch: 'INSIGNIFICANT_TARGET3'
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
set -ex
|
||||
|
||||
sudo tee -a /etc/dconf/db/local.d/00-media-automount <<"EOF"
|
||||
[org/gnome/desktop/media-handling]
|
||||
automount=false
|
||||
automount-open=false
|
||||
EOF
|
||||
|
||||
sudo dconf update
|
||||
@@ -0,0 +1,88 @@
|
||||
### RHEL 10.0 ###
|
||||
Hard Disk: 500G
|
||||
Network: CI
|
||||
Video Card: Total Video Memory: 64MB
|
||||
Boot options/Firmware: BIOS
|
||||
Language: English (United States)
|
||||
Keyboard: English (US), Norwegian (Windows), Finnish (Windows)
|
||||
Time & Date: Etc/Coordinated Universal Time
|
||||
Software Selection: Server with GUI
|
||||
Installation Destination: Automatic partitioning selected
|
||||
Root Passowrd: Set
|
||||
Network & Host..: Connected
|
||||
KDUMP enabled: Memory Reservation: automatic
|
||||
Begin Installation
|
||||
Reboot
|
||||
# Configure Settings
|
||||
Notifications:
|
||||
* Lock Screen Notifications: OFF
|
||||
* Applications: Set notification off
|
||||
* Do Not Disturb: on
|
||||
Applications:
|
||||
* Disable notifications from all applications
|
||||
Privacy:
|
||||
* Blank Screen Delay: Never
|
||||
* Screen Lock: OFF
|
||||
Power:
|
||||
* Blank screen: Never
|
||||
Displays:
|
||||
* Resolution: 1280 x 800
|
||||
Users:
|
||||
* Automatic login on
|
||||
# Add user to sudoers
|
||||
Add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
|
||||
Add 'GRUB_GFXMODE=1280x800' to /etc/default/grub
|
||||
sudo grub2-mkconfig -o /etc/grub2.cfg
|
||||
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
|
||||
# Add support for virtio driver
|
||||
su
|
||||
echo "add_drivers+=\" virtio-blk \"" >> /etc/dracut.conf.d/virtio.conf
|
||||
dracut -f
|
||||
|
||||
# NOTE!
|
||||
# - RHEL uses 'sudo subscription-manager release --set=10.0' in provisioning
|
||||
# - Do not update Tier 1 via GUI without using this same --set before provisioning
|
||||
# - To avoid System to have newer packages than RPMS which will cause update issues
|
||||
|
||||
# Register RHEL before it's possible to install qemu-guest-agent
|
||||
subscription-manager register
|
||||
|
||||
yum -y install qemu-guest-agent
|
||||
|
||||
# Do these from Opennebula UI!
|
||||
|
||||
# Enable network connection from right upper corner
|
||||
This is done when the VM is launched as persistent in OpenNebula.
|
||||
# Fetch and run coin-setup
|
||||
Download http://coin/coin/binary/linux_amd64/coin-setup
|
||||
# run as qt user
|
||||
run './coin-setup'
|
||||
# Switch to use GNOME Classic user interface
|
||||
# GNOME Classic was selected because there's an issue with Standard (wayland display server).
|
||||
# Autotest start failing because terminal session remains in Activities Overview.
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3854
|
||||
First execute script ./01-disable-automounting.sh (dconf update crash in GNOME Classic)
|
||||
logout -> Select user (without it the drop down menu won't appear) -> switch to 'GNOME Classic' -desktop session from drop down menu in login screen
|
||||
|
||||
# If gear icon is not seen, check is 'GNOME Classic' -desktop session installed, and install if it's missing
|
||||
ls /usr/share/xsessions/
|
||||
# This should list something like these if it's installed
|
||||
gnome-classic.desktop
|
||||
gnome.desktop
|
||||
|
||||
# To install GNOME Classic if it's missing
|
||||
sudo dnf reinstall gnome-classic-session
|
||||
|
||||
# In RHEL 10.0 even with 'GNOME Classic' -desktop the Activities Overview is still in use
|
||||
# It can be bypassed via 'No Overview' -GNOME extension:
|
||||
# - https://extensions.gnome.org/extension/4099/no-overview/
|
||||
# - Select GNOME Shell version 47 to download
|
||||
# - Unpack extension from tar.gz
|
||||
sudo mv <extension_folder> /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||
sudo chown -R root: /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||
sudo chmod 755 -R /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||
sudo reboot
|
||||
gnome-extensions list
|
||||
gnome-extensions enable no-overview@fthx
|
||||
|
||||
Reboot
|
||||
Regular → Executable
Regular → Executable
Regular → Executable
@@ -53,6 +53,17 @@ run 'sudo ufw disable'
|
||||
|
||||
run 'sudo apt install qemu-guest-agent'
|
||||
|
||||
# Install no-overview gnome extension to prevent desktop overview at boot (QTBUG-132070)
|
||||
# - https://extensions.gnome.org/extension/4099/no-overview/
|
||||
# - Select GNOME Shell version 46 to download
|
||||
# - Unpack extension to (mkdir): /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||
sudo chown -R root /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||
sudo chmod 755 -R /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||
sudo reboot
|
||||
gnome-extensions list
|
||||
gnome-extensions enable no-overview@fthx
|
||||
gnome-extensions info no-overview@fthx # Check for "Active"
|
||||
|
||||
# Fetch and run coin-setup (in Opennebula)
|
||||
Download http://coin/coin/binary/linux_amd64/coin-setup
|
||||
run 'chmod +x ./coin-setup' to make it executable
|
||||
|
||||
@@ -63,3 +63,9 @@ https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
|
||||
* Modify 'Windows Software Development Kit' from Add or remove programs
|
||||
- Add feature 'Debugging Tools for Windows'
|
||||
############################################################
|
||||
|
||||
Visual Studio 2026 and build tools were later updated to 17.14.33 in VS installer.
|
||||
This updated (Latest) MSVC components to:
|
||||
- MSVC v14.44.35211.0
|
||||
- Windows 11 SDK (10.0.26100.7705)
|
||||
.NET SDK was added
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
*.iml
|
||||
.gradle
|
||||
.idea
|
||||
/local.properties
|
||||
/.idea/caches
|
||||
/.idea/libraries
|
||||
/.idea/modules.xml
|
||||
/.idea/workspace.xml
|
||||
/.idea/navEditor.xml
|
||||
/.idea/assetWizardSettings.xml
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
|
||||
@@ -4,19 +4,19 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace 'com.example.gradle_project'
|
||||
compileSdk 35
|
||||
compileSdk 36
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.example.gradle_project"
|
||||
minSdk 28
|
||||
targetSdk 35
|
||||
targetSdk 36
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
android:allowBackup="true"
|
||||
android:label="gradle_project"
|
||||
android:supportsRtl="true"
|
||||
tools:targetApi="35">
|
||||
tools:targetApi="36">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true">
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[versions]
|
||||
agp = "8.10.1"
|
||||
core = "1.16.0"
|
||||
agp = "9.0.0"
|
||||
core = "1.17.0"
|
||||
appcompat = "1.7.1"
|
||||
material = "1.12.0"
|
||||
material = "1.13.0"
|
||||
constraintlayout = "2.2.1"
|
||||
|
||||
[libraries]
|
||||
|
||||
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
|
||||
toolsVersion="19.0"
|
||||
toolsFile="commandlinetools-linux-13114758_latest.zip"
|
||||
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
|
||||
sdkBuildToolsVersion="35.0.1"
|
||||
sdkApiLevel="android-35"
|
||||
sdkBuildToolsVersion="36.0.0"
|
||||
sdkApiLevel="android-36"
|
||||
toolsSha1="5fdcc763663eefb86a5b8879697aa6088b041e70"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
@@ -50,9 +50,9 @@ sdkApiLevelAutomotiveMax="android-34"
|
||||
androidAutomotiveMaxUrl="$basePath/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
|
||||
androidAutomotiveMaxSha="2cc5dae4fd0bdefb188a3b84019d0d1e65501519"
|
||||
# Android Automotive min SDK level image
|
||||
sdkApiLevelAutomotiveMin="android-29"
|
||||
sdkApiLevelAutomotiveMin="android-31"
|
||||
androidAutomotiveMinUrl="$basePath/${sdkApiLevelAutomotiveMin}_automotive.tar.gz"
|
||||
androidAutomotiveMinSha="e6092585c00f87eb3b20a2eb7fdf6add42342d2f"
|
||||
androidAutomotiveMinSha="0b6498e0c0022c40b8bb2b275f704e6a298c04a3"
|
||||
|
||||
toolsTargetFile="/tmp/$toolsFile"
|
||||
toolsSourceFile="$basePath/$toolsFile"
|
||||
@@ -78,18 +78,25 @@ function InstallNdk() {
|
||||
ndkTargetFile="/tmp/$ndkFile"
|
||||
ndkSourceFile="$basePath/$ndkFile"
|
||||
|
||||
ndkTargetDir="$targetFolder/$ndkVersion"
|
||||
sudo mkdir -p "$ndkTargetDir"
|
||||
|
||||
DownloadURL "$ndkSourceFile" "$ndkSourceFile" "$ndkSha1" "$ndkTargetFile"
|
||||
echo "Unzipping Android NDK to '$targetFolder'"
|
||||
echo "Unzipping Android NDK to '$ndkTargetDir'"
|
||||
# Get the package base directory name as string
|
||||
zipBase=$(sudo zipinfo -1 "$ndkTargetFile" 2>/dev/null | awk '!seen {sub("/.*",""); print; seen=1}')
|
||||
sudo unzip -q "$ndkTargetFile" -d "$targetFolder"
|
||||
sudo unzip -q "$ndkTargetFile" -d "$ndkTargetDir"
|
||||
rm "$ndkTargetFile"
|
||||
androidNdkRoot="${targetFolder}/${zipBase}"
|
||||
androidNdkRoot="${ndkTargetDir}/${zipBase}"
|
||||
}
|
||||
|
||||
InstallNdk $ndkVersionLatest $ndkSha1Latest
|
||||
SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$androidNdkRoot"
|
||||
|
||||
# To be used by vcpkg
|
||||
SetEnvVar "ANDROID_NDK_HOME" "$androidNdkRoot"
|
||||
export ANDROID_NDK_HOME="$androidNdkRoot"
|
||||
|
||||
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
|
||||
InstallNdk $ndkVersionPreview $ndkSha1Preview
|
||||
SetEnvVar "ANDROID_NDK_ROOT_PREVIEW" "$androidNdkRoot"
|
||||
@@ -105,10 +112,6 @@ if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
|
||||
SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY2" "$androidNdkRoot"
|
||||
fi
|
||||
|
||||
# To be used by vcpkg
|
||||
SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionLatest"
|
||||
export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionLatest"
|
||||
|
||||
echo "Changing ownership of Android files."
|
||||
if uname -a |grep -q "el7"; then
|
||||
sudo chown -R qt:wheel "$targetFolder"
|
||||
@@ -184,34 +187,36 @@ echo "Unzipping the Android 9 to $minVersionDestination"
|
||||
sudo unzip -o -q "$minVersionFilePath" -d "$minVersionDestination"
|
||||
rm "$minVersionFilePath"
|
||||
|
||||
echo "Download and unzip Android 15 System Image"
|
||||
maxVersionFileName="x86_64-35_r08.zip"
|
||||
maxVersionDestination="$sdkTargetFolder/system-images/android-35/google_apis/"
|
||||
echo "Download and unzip Android 16 System Image"
|
||||
maxVersionFileName="x86_64-36_r07.zip"
|
||||
maxVersionDestination="$sdkTargetFolder/system-images/android-36/google_apis/"
|
||||
maxVersionFilePath="$maxVersionDestination/$maxVersionFileName"
|
||||
maxVersionCiUrl="$basePath/system_images/google_apis/$maxVersionFileName"
|
||||
maxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$maxVersionFileName"
|
||||
maxVersionSha1="d79169884cabc6680cb29d32c2112ad46c858c1b"
|
||||
maxVersionSha1="c6bf44bdcd885bb902b4ba752d111a073ad7a817"
|
||||
|
||||
mkdir -p "$maxVersionDestination"
|
||||
DownloadURL "$maxVersionCiUrl" "$maxVersionUrl" "$maxVersionSha1" "$maxVersionFilePath"
|
||||
|
||||
echo "Unzipping the Android 15 to $maxVersionDestination"
|
||||
echo "Unzipping the Android 16 to $maxVersionDestination"
|
||||
sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination"
|
||||
rm "$maxVersionFilePath"
|
||||
|
||||
echo "Download and unzip Android 16 System Image for insignificant"
|
||||
insignificantMaxVersionFileName="x86_64-36_r06.zip"
|
||||
insignificantMaxVersionDestination="$sdkTargetFolder/system-images/android-36/google_apis/"
|
||||
echo "Download and unzip Android 17 Beta 3 16KB System Image"
|
||||
insignificantMaxVersionFileName="x86_64-ps16k-37.0_r03.zip"
|
||||
insignificantMaxVersionDestination="$sdkTargetFolder/system-images/android-37/google_apis_ps16k/"
|
||||
insignificantMaxVersionFilePath="$insignificantMaxVersionDestination/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionCiUrl="$basePath/system_images/google_apis/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionSha1="a9b0b4a0488e0c6c380f5485507950f011388511"
|
||||
insignificantMaxVersionSha1="b89a6686f9a9e9942d596bed45d422cbccb70c98"
|
||||
|
||||
mkdir -p "$insignificantMaxVersionDestination"
|
||||
DownloadURL "$insignificantMaxVersionCiUrl" "$insignificantMaxVersionUrl" "$insignificantMaxVersionSha1" "$insignificantMaxVersionFilePath"
|
||||
|
||||
echo "Unzipping the Android 16 insignicant to $insignificantMaxVersionDestination"
|
||||
echo "Unzipping the Android 17 Beta3 16KB to $insignificantMaxVersionDestination"
|
||||
sudo unzip -o -q "$insignificantMaxVersionFilePath" -d "$insignificantMaxVersionDestination"
|
||||
# Hack to avoid SDK version bug in source.properties file, the usage of ".0" messes things for avdmanager. TODO: undo when official comes
|
||||
sudo sed -i 's/AndroidVersion.ApiLevel=37.0/AndroidVersion.ApiLevel=37/g' "$insignificantMaxVersionDestination/x86_64/source.properties"
|
||||
rm "$insignificantMaxVersionFilePath"
|
||||
|
||||
echo "Checking the contents of Android SDK again..."
|
||||
@@ -220,12 +225,12 @@ ls -l "$sdkTargetFolder"
|
||||
echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
|
||||
-k "system-images;android-28;google_apis;x86"
|
||||
|
||||
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_35 -c 2048M -f \
|
||||
-k "system-images;android-35;google_apis;x86_64"
|
||||
|
||||
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_36 -c 2048M -f \
|
||||
-k "system-images;android-36;google_apis;x86_64"
|
||||
|
||||
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_37 -c 2048M -f \
|
||||
-k "system-images;android-37;google_apis,page_size_16kb,ai_glasses_compatible;x86_64"
|
||||
|
||||
echo "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax"
|
||||
DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \
|
||||
"/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
|
||||
@@ -237,7 +242,7 @@ echo "Install minimum supported SDK level image for Android Automotive $sdkApiLe
|
||||
DownloadURL "$androidAutomotiveMinUrl" "$androidAutomotiveMinUrl" "$androidAutomotiveMinSha" \
|
||||
"/tmp/${sdkApiLevelAutomotiveMin}_automotive.tar.gz"
|
||||
sudo tar -xzf "/tmp/${sdkApiLevelAutomotiveMin}_automotive.tar.gz" -C $sdkTargetFolder/system-images
|
||||
echo "no" | ./avdmanager create avd -n automotive_emulator_x86_64_api_29 -c 2048M -f \
|
||||
echo "no" | ./avdmanager create avd -n automotive_emulator_x86_64_api_31 -c 2048M -f \
|
||||
-k "system-images;${sdkApiLevelAutomotiveMin};android-automotive;x86_64"
|
||||
|
||||
# Purely informative, show the list of avd devices
|
||||
@@ -250,12 +255,16 @@ cp "${scripts_dir_name}/../unix/${emulator_script_filename}" "${HOME}"
|
||||
ANDROID_EMULATOR_RUNNER="${HOME}/${emulator_script_filename}"
|
||||
SetEnvVar "ANDROID_EMULATOR_RUNNER" "$ANDROID_EMULATOR_RUNNER"
|
||||
|
||||
SetEnvVar "PATH" "\$PATH:$sdkTargetFolder/emulator"
|
||||
SetEnvVar "PATH" "\$PATH:$sdkTargetFolder/platform-tools"
|
||||
SetEnvVar "PATH" "\$PATH:$sdkTargetFolder/cmdline-tools/latest/bin"
|
||||
|
||||
# Gradle Caching
|
||||
cp -r "${scripts_dir_name}/android/gradle_project" /tmp/gradle_project
|
||||
cd /tmp/gradle_project
|
||||
# Get Gradle files from qtbase
|
||||
qtbaseGradleUrl="https://code.qt.io/cgit/qt/qtbase.git/plain/src/3rdparty/gradle"
|
||||
commit_sha="bb12c984b2c838bdb06169ef7d659384c02c8b82"
|
||||
commit_sha="269a75dbd1262a714eb238c42e5159a0a8979818"
|
||||
curl "$qtbaseGradleUrl/gradle.properties?h=$commit_sha" > gradle.properties
|
||||
curl "$qtbaseGradleUrl/gradlew?h=$commit_sha" > gradlew
|
||||
curl "$qtbaseGradleUrl/gradlew.bat?h=$commit_sha" > gradlew.bat
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
"_active": true,
|
||||
"excludes": [
|
||||
"$(splitpath:EXCLUDE_FILES)"
|
||||
],
|
||||
"includes": [
|
||||
"$(splitpath:INCLUDE_FILES)"
|
||||
]
|
||||
},
|
||||
"Frameworks-QtSupport": {
|
||||
@@ -272,14 +275,17 @@
|
||||
"Stylechecks": {
|
||||
"excludes": [
|
||||
"$(splitpath:EXCLUDE_FILES)"
|
||||
],
|
||||
"includes": [
|
||||
"$(splitpath:INCLUDE_FILES)"
|
||||
]
|
||||
}
|
||||
},
|
||||
"_Format": "1.0",
|
||||
"_VersionNum": [
|
||||
7,
|
||||
10,
|
||||
4,
|
||||
17655
|
||||
11,
|
||||
5,
|
||||
19102
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,4 +10,22 @@ export EXCLUDE_FILES="build/*:src/3rdparty/*"
|
||||
export MODULE=$TESTED_MODULE_COIN
|
||||
export PACKAGE="Add-ons"
|
||||
export IRNAME=build/$TESTED_MODULE_COIN.ir
|
||||
|
||||
ROOT_DIR=src
|
||||
MAGIC="Qt-Security score:critical"
|
||||
|
||||
INCLUDE_FILES=""
|
||||
|
||||
while IFS= read -r file; do
|
||||
if [ -z "$INCLUDE_FILES" ]; then
|
||||
INCLUDE_FILES="$file"
|
||||
else
|
||||
INCLUDE_FILES="$INCLUDE_FILES:$file"
|
||||
fi
|
||||
done <<EOF
|
||||
$(grep -rl "$MAGIC" "$ROOT_DIR")
|
||||
EOF
|
||||
|
||||
export INCLUDE_FILES
|
||||
|
||||
axivion_ci "$@"
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
diffutils
|
||||
make
|
||||
yasm
|
||||
@@ -0,0 +1,4 @@
|
||||
diffutils
|
||||
libva-devel
|
||||
make
|
||||
yasm
|
||||
@@ -0,0 +1,3 @@
|
||||
diffutils
|
||||
make
|
||||
yasm
|
||||
@@ -0,0 +1,4 @@
|
||||
diffutils
|
||||
libva-dev
|
||||
make
|
||||
yasm
|
||||
Regular → Executable
Regular → Executable
Regular → Executable
@@ -21,13 +21,13 @@ prefix="${2:-$default_prefix}"
|
||||
pkgconfig_path="$PKG_CONFIG_PATH"
|
||||
|
||||
install_ff_nvcodec_headers() {
|
||||
local nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
|
||||
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip"
|
||||
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip"
|
||||
local nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e"
|
||||
local nv_codec_version="11.1.5.3" # use 11.x.x.x to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
|
||||
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/tags/n$nv_codec_version.zip"
|
||||
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-$nv_codec_version.zip"
|
||||
local nv_codec_sha1="78715d521de102362e553dc92577bbe81905a321"
|
||||
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
|
||||
local target_dir="$HOME"
|
||||
local nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version"
|
||||
local nv_codec_dir="$target_dir/nv-codec-headers-n$nv_codec_version"
|
||||
|
||||
if [ ! -d "$nv_codec_dir" ]; then
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
|
||||
@@ -15,18 +15,20 @@ case "$uname_m" in
|
||||
x86_64|amd64)
|
||||
sha256="6f98805688d19672bd699fbbfa2c2cf0fc054ac3df1f0e6a47664d963d530255"
|
||||
pkgname="ninja-$version-linux-x64.zip"
|
||||
pkgnameExt="ninja-linux.zip"
|
||||
dirname="ninja-$version-linux-x64"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
sha256="5c25c6570b0155e95fce5918cb95f1ad9870df5768653afe128db822301a05a1"
|
||||
pkgname="ninja-$version-linux-arm64.zip"
|
||||
pkgnameExt="ninja-linux-aarch64.zip"
|
||||
dirname="ninja-$version-linux-arm64"
|
||||
;;
|
||||
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
||||
esac
|
||||
|
||||
internalUrl="http://ci-files01-hki.ci.qt.io/input/ninja/$pkgname"
|
||||
externalUrl="https://github.com/ninja-build/ninja/releases/download/v$version/$pkgname"
|
||||
externalUrl="https://github.com/ninja-build/ninja/releases/download/v$version/$pkgnameExt"
|
||||
|
||||
targetFile="$HOME/$pkgname"
|
||||
DownloadURL "$internalUrl" "$externalUrl" "$sha256" "$targetFile"
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
|
||||
echo "Installing vcpkg android ports"
|
||||
|
||||
pushd "${BASH_SOURCE%/*}/vcpkg" || exit
|
||||
cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
|
||||
|
||||
pushd "${BASH_SOURCE%/*}/../shared/vcpkg" || exit
|
||||
"$VCPKG_ROOT/vcpkg" install --triplet x86-android-qt --x-install-root x86-android-qt-tmp --debug
|
||||
"$VCPKG_ROOT/vcpkg" install --triplet x86_64-android-qt --x-install-root x86_64-android-qt-tmp --debug
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ QEMU_VER="8.2.3"
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/qemu/qemu-$QEMU_VER.tar.xz"
|
||||
AltUrl="https://download.qemu.org/qemu-$QEMU_VER.tar.xz"
|
||||
SHA1="1b29c8105cf8d15b9e7fb6f8e85170b6c54a1788"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp" "$appPrefix"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp" ""
|
||||
|
||||
targetFolder=/tmp/qemu-${QEMU_VER}
|
||||
mkdir -p "$targetFolder/build"
|
||||
|
||||
@@ -43,9 +43,17 @@ if [ ! -d "$targetFolder" ]; then
|
||||
fi
|
||||
|
||||
# QNX SDP
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20250612.tar.xz"
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20260410.tar.xz"
|
||||
targetFile="qnx800.tar.xz"
|
||||
sha1="d7ca20be6867b569067a17e8b3fa633c7eadad89"
|
||||
sha1="a3fdcd98e12bc5054d00f18e4088af26288fd020"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
|
||||
|
||||
# IANA timezone database overlay. Packaged separately from the SDP so it can be
|
||||
# bumped without rebuilding the SDP tarball. Archive root is qnx800/target/qnx/
|
||||
# so it overlays onto $targetFolder (/opt/) directly.
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/zoneinfo-2026a.tar.xz"
|
||||
targetFile="zoneinfo.tar.xz"
|
||||
sha1="8c1678ff673bb588f63fc9277497cd38e0ea2253"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
|
||||
|
||||
sudo cp "$aarch64le_toolchain" "$targetPath"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
# Loopback — the QNX SDP's default /etc/hosts ships these, but this
|
||||
# file overrides that default. Tests that connect to http(s)://localhost
|
||||
# (e.g. tst_qhttpserver, tst_abstractoauth2) need them present.
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
|
||||
# Need to add all testserver names statically
|
||||
# as current Docker uses Multicast DNS (mDNS) (avahi)
|
||||
# Which does not work with QNX qemu
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
# Loopback — the QNX SDP's default /etc/hosts ships these, but this
|
||||
# file overrides that default. Tests that connect to http(s)://localhost
|
||||
# (e.g. tst_qhttpserver, tst_abstractoauth2) need them present.
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
|
||||
# Need to add all testserver names statically
|
||||
# as current Docker uses Multicast DNS (mDNS) (avahi)
|
||||
# Which does not work with QNX qemu
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ lib/libEGL.so.1=usr/lib/libEGL.so.1
|
||||
lib/libz.so.2=usr/lib/libz.so.2
|
||||
lib/libzstd.so.1=usr/lib/libzstd.so.1
|
||||
lib/libxml2.so.2=usr/lib/libxml2.so.2
|
||||
lib/libfreetype.so.24=usr/lib/libfreetype.so.24
|
||||
lib/libfreetype.so.26=usr/lib/libfreetype.so.26
|
||||
lib/libbz2.so.1=usr/lib/libbz2.so.1
|
||||
lib/liblzma.so.5=usr/lib/liblzma.so.5
|
||||
lib/libdbus-1.so=usr/lib//libdbus-1.so
|
||||
@@ -54,7 +54,7 @@ xbin/fsevmgr=sbin/fsevmgr
|
||||
lib/libscreen.so.1=usr/lib/libscreen.so.1
|
||||
|
||||
# for fontconfig
|
||||
lib/libfontconfig.so.1=usr/lib/libfontconfig.so.1
|
||||
lib/libfontconfig.so.17=usr/lib/libfontconfig.so.17
|
||||
xbin/fc-cache=bin/fc-cache
|
||||
xbin/fc-match=local/misc_files/fc-match
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ set -ex
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/sccache.sh"
|
||||
|
||||
targetVersion=v0.11.0
|
||||
targetVersion=v0.15.0
|
||||
if [[ $(uname -m) == 'aarch64' ]]; then
|
||||
targetArch=aarch64-unknown-linux-musl
|
||||
sha1=b7606d0fb461c0aa7351f511d9223416a322d52a
|
||||
sha256=3a6a3712b49da3d263bf2d30d702de4302793016019e800bfb81c0c69401d8f8
|
||||
else
|
||||
targetArch=x86_64-unknown-linux-musl
|
||||
sha1=ef389a20c85b732cccd48436a5e28ed40bed2806
|
||||
sha256=782d2b5dd7ae0a55ebe368ab258114d0928d019ac2d949ab85d5d02f3926709e
|
||||
fi
|
||||
|
||||
installSccache "$targetArch" "$targetVersion" "$sha1"
|
||||
installSccache "$targetArch" "$targetVersion" "$sha256"
|
||||
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script installs Syft
|
||||
|
||||
# Syft is used for generating SBOM (Software Bill of Materials) files.
|
||||
|
||||
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
|
||||
version="1.45.1"
|
||||
|
||||
uname_m="$(uname -m)"
|
||||
case "$uname_m" in
|
||||
x86_64|amd64)
|
||||
SHA1="06e1d56173209977df8b11ad955843cb62f874fd"
|
||||
arch="amd64"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
SHA1="c48638b3998066dbd139e94e116a81a6cc6299be"
|
||||
arch="arm64"
|
||||
;;
|
||||
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
||||
esac
|
||||
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/syft/syft_${version}_linux_${arch}.tar.gz"
|
||||
AltUrl="https://github.com/anchore/syft/releases/download/v${version}/syft_${version}_linux_${arch}.tar.gz"
|
||||
targetFolder="/opt/syft-$version"
|
||||
appPrefix=""
|
||||
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix"
|
||||
|
||||
SetEnvVar "PATH" "$targetFolder:\$PATH"
|
||||
|
||||
echo "Syft = $version" >> ~/versions.txt
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script verifies that all installed packages originate from the current release version and not from newer releases.
|
||||
# The caller provides a regex that matches the allowed release version and excludes packages from newer releases.
|
||||
|
||||
set -ex
|
||||
|
||||
verify_release_packages() {
|
||||
local regex_verify="$1"
|
||||
|
||||
if rpm -qa --queryformat="%{NAME} %{RELEASE}\n" | grep -E " .*$regex_verify" >/dev/null; then
|
||||
echo "Found packages that belong to other RHEL release, aborting"
|
||||
exit 1
|
||||
else
|
||||
echo "All package versions checked OK"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
|
||||
toolsVersion="19.0"
|
||||
toolsFile="commandlinetools-mac-13114758_latest.zip"
|
||||
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
|
||||
sdkBuildToolsVersion="35.0.1"
|
||||
sdkApiLevel="android-35"
|
||||
sdkBuildToolsVersion="36.0.0"
|
||||
sdkApiLevel="android-36"
|
||||
toolsSha1="c3e06a1959762e89167d1cbaa988605f6f7c1d24"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
@@ -69,13 +69,16 @@ function InstallNdk() {
|
||||
ndkTargetFile="/tmp/$ndkFile"
|
||||
ndkSourceFile="$basePath/$ndkFile"
|
||||
|
||||
ndkTargetDir="$targetFolder/$ndkVersion"
|
||||
sudo mkdir -p "$ndkTargetDir"
|
||||
|
||||
DownloadURL "$ndkSourceFile" "$ndkSourceFile" "$ndkSha1" "$ndkTargetFile"
|
||||
echo "Unzipping Android NDK to '$targetFolder'"
|
||||
echo "Unzipping Android NDK to '$ndkTargetDir'"
|
||||
# Get the package base directory name as string
|
||||
zipBase=$(sudo zipinfo -1 "$ndkTargetFile" 2>/dev/null | awk '!seen {sub("/.*",""); print; seen=1}')
|
||||
sudo unzip -q "$ndkTargetFile" -d "$targetFolder"
|
||||
sudo unzip -q "$ndkTargetFile" -d "$ndkTargetDir"
|
||||
rm "$ndkTargetFile"
|
||||
androidNdkRoot="${targetFolder}/${zipBase}"
|
||||
androidNdkRoot="${ndkTargetDir}/${zipBase}"
|
||||
}
|
||||
|
||||
InstallNdk $ndkVersionLatest $ndkSha1Latest
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
diffutils
|
||||
yasm
|
||||
+302
@@ -0,0 +1,302 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script will build and install FFmpeg shared libraries.
|
||||
#
|
||||
# The script will package iOS and iOS-simulator binaries into one
|
||||
# single .xcframework. This .xcframework cannot contain .dylibs
|
||||
# directly. It must contain .framework files. Unlike macOS, binaries
|
||||
# should NOT be lipoed together.
|
||||
#
|
||||
# From https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle
|
||||
# "Avoid using dynamic library files (.dylib files) for dynamic
|
||||
# linking. An XCFramework can include dynamic library files, but only
|
||||
# macOS supports these libraries for dynamic linking. Dynamic linking
|
||||
# on iOS, iPadOS, tvOS, visionOS, and watchOS requires the XCFramework
|
||||
# to contain .framework bundles."
|
||||
#
|
||||
# This script can take an optional final parameter to control
|
||||
# installation directory.
|
||||
set -eoux pipefail
|
||||
|
||||
# Must match or be lower than the minimum iOS version supported by the version of Qt that is
|
||||
# is currently being built.
|
||||
readonly MINIMUM_IOS_VERSION="16.0"
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
||||
|
||||
ffmpeg_source_dir=$(download_ffmpeg)
|
||||
ffmpeg_version="n$(<"${ffmpeg_source_dir}/RELEASE")"
|
||||
if [ ! -n "$ffmpeg_version" ]; then
|
||||
echo "Error. Unable to determine FFmpeg version."
|
||||
exit 1
|
||||
fi
|
||||
ffmpeg_build_type="shared"
|
||||
ffmpeg_config_options=$(get_ffmpeg_config_options "$ffmpeg_build_type")
|
||||
default_prefix="/usr/local/ios/ffmpeg"
|
||||
prefix="${1:-$default_prefix}"
|
||||
|
||||
# Qt doesn't utilize all FFmpeg components. This is a list of the ones
|
||||
# we care about
|
||||
ffmpeg_components="libavcodec libavformat libavutil libswresample libswscale"
|
||||
|
||||
target_platform_to_sdk() {
|
||||
local target_platform="$1"
|
||||
if [[ "$target_platform" == "arm64-simulator" ]] \
|
||||
|| [[ "$target_platform" == "x86_64-simulator" ]]; then
|
||||
echo "iphonesimulator"
|
||||
elif [ "$target_platform" == "arm64-iphoneos" ]; then
|
||||
echo "iphoneos"
|
||||
else
|
||||
echo "Error finding corresponding iOS SDK for target platform: ${target_platform}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
build_ffmpeg_ios() {
|
||||
local target_platform="$1"
|
||||
local target_cpu_arch=""
|
||||
local target_sdk;
|
||||
target_sdk="$(target_platform_to_sdk "${target_platform}")"
|
||||
|
||||
if [ "$target_platform" == "arm64-simulator" ]; then
|
||||
target_cpu_arch="arm64"
|
||||
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
||||
elif [ "$target_platform" == "x86_64-simulator" ]; then
|
||||
target_cpu_arch="x86_64"
|
||||
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
||||
elif [ "$target_platform" == "arm64-iphoneos" ]; then
|
||||
target_cpu_arch="arm64"
|
||||
minos="-miphoneos-version-min=$MINIMUM_IOS_VERSION"
|
||||
else
|
||||
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
|
||||
sudo mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
local sysroot;
|
||||
sysroot="$(xcrun --sdk "${target_sdk}" --show-sdk-path)"
|
||||
local cc;
|
||||
cc="$(xcrun -f --sdk ${target_sdk} clang)"
|
||||
local cxx;
|
||||
cxx="$(xcrun -f --sdk ${target_sdk} clang++)"
|
||||
|
||||
# We add -g so we get debug symbols.
|
||||
local common_arch_flags="${minos} -arch ${target_cpu_arch} -g"
|
||||
|
||||
local config_parameters=(
|
||||
$ffmpeg_config_options
|
||||
--sysroot="${sysroot}"
|
||||
--enable-cross-compile
|
||||
--enable-optimizations
|
||||
--prefix="$prefix"
|
||||
--arch="$target_cpu_arch"
|
||||
--cc="$cc"
|
||||
--cxx="$cxx"
|
||||
--extra-cflags="${common_arch_flags}"
|
||||
--extra-cxxflags="${common_arch_flags}"
|
||||
--extra-ldflags="${common_arch_flags}"
|
||||
--target-os=darwin
|
||||
--install-name-dir="@rpath"
|
||||
--disable-audiotoolbox
|
||||
|
||||
# We perform manual stripping after generating dSYMs.
|
||||
# Make sure to skip it during FFmpeg compilation.
|
||||
--disable-stripping
|
||||
)
|
||||
sudo "$ffmpeg_source_dir/configure" "${config_parameters[@]}"
|
||||
|
||||
sudo make install DESTDIR="$build_dir/installed" -j4
|
||||
popd
|
||||
}
|
||||
|
||||
build_info_plist() {
|
||||
local file_path="$1"
|
||||
local framework_name="$2"
|
||||
local framework_id="$3"
|
||||
|
||||
# Apple plist format has a strict requirement that the version string
|
||||
# contains up to 3 numerics separated by a dot. Meanwhile, FFmpeg versioning
|
||||
# tends to use an 'n' prefix in their versioning. We use a regex to convert
|
||||
# and verify the version string.
|
||||
#
|
||||
# https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion
|
||||
local formatted_ffmpeg_version
|
||||
if [[ $ffmpeg_version =~ ([0-9]+(\.[0-9]+){0,2}) ]]; then
|
||||
formatted_ffmpeg_version="${BASH_REMATCH[1]}"
|
||||
else
|
||||
echo "Unable to format FFmpeg version string '$ffmpeg_version' into corresponding Apple Info.plist format"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local minimum_version_key="MinimumOSVersion"
|
||||
local supported_platforms="iPhoneOS"
|
||||
|
||||
info_plist="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${framework_name}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>${framework_id}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${framework_name}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${formatted_ffmpeg_version}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${formatted_ffmpeg_version}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>${minimum_version_key}</key>
|
||||
<string>${MINIMUM_IOS_VERSION}</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>${supported_platforms}</string>
|
||||
</array>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>"
|
||||
echo $info_plist | sudo tee ${file_path} 1>/dev/null
|
||||
}
|
||||
|
||||
# Create a 'traditional' framework from the corresponding dylib.
|
||||
# This includes creating a folder for it, and inserting Info.plist
|
||||
# and dylib. We also patch runpaths in the dylib to match the
|
||||
# frameworks directory structure.
|
||||
#
|
||||
# There is no command-line tool for generating .framework
|
||||
# files. By inspecting .frameworks generated through Xcode, we
|
||||
# have found they are primarily a directory with a very specific
|
||||
# layout. The code below generates a matching layout.
|
||||
#
|
||||
# See https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html
|
||||
create_framework() {
|
||||
local ffmpeg_component_name="$1"
|
||||
local platform="$2"
|
||||
|
||||
local ffmpeg_build_path="${ffmpeg_source_dir}/build_ios/${platform}/installed/${prefix}"
|
||||
local ffmpeg_component_src_dylib="${ffmpeg_build_path}/lib/${ffmpeg_component_name}.dylib"
|
||||
local ffmpeg_component_framework="${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework"
|
||||
local ffmpeg_component_target_dylib="${ffmpeg_component_framework}/${ffmpeg_component_name}"
|
||||
|
||||
# Make directory for the .framework
|
||||
sudo mkdir -p "${ffmpeg_component_framework}"
|
||||
|
||||
# Inser the Info.plist
|
||||
build_info_plist \
|
||||
"${ffmpeg_component_framework}/Info.plist" \
|
||||
"${ffmpeg_component_name}" \
|
||||
"io.qt.ffmpegkit.${ffmpeg_component_name}"
|
||||
|
||||
# Copy in the dylib
|
||||
sudo cp \
|
||||
"${ffmpeg_component_src_dylib}" \
|
||||
"${ffmpeg_component_target_dylib}"
|
||||
|
||||
# By default, runpaths will look for FFmpeg dependencies in
|
||||
# '@rpath/libavcodec.xx.yy.dylib'. We want this path to be in the form
|
||||
# '@rpath/libavcodec.framework/libavcodec.dylib'.
|
||||
|
||||
# Set the dylibs self-identity
|
||||
sudo install_name_tool \
|
||||
-id "@rpath/${ffmpeg_component_name}.framework/${ffmpeg_component_name}" \
|
||||
"${ffmpeg_component_target_dylib}"
|
||||
|
||||
# Update the runpaths for each FFmpeg dependency entry
|
||||
otool -L "$ffmpeg_component_target_dylib" \
|
||||
| tail -n +2 \
|
||||
| awk '{print $1}' \
|
||||
| while read -r dep; do
|
||||
# Go through all dependency entries of this .dylib,
|
||||
# see if they point to a FFmpeg component. If it does,
|
||||
# modify the entry to match the final
|
||||
# directory structure.
|
||||
for ffdep in $ffmpeg_components; do
|
||||
if [[ "$dep" == */${ffdep}.* ]]; then
|
||||
echo "Rewriting dependency: $dep -> @rpath/${ffdep}.framework/${ffdep}"
|
||||
sudo install_name_tool -change \
|
||||
"$dep" \
|
||||
"@rpath/${ffdep}.framework/${ffdep}" \
|
||||
"$ffmpeg_component_target_dylib"
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
# dSYM symbols must be generated manually, these are required for
|
||||
# App Store deployment. We generate them from the .dylibs inside
|
||||
# our .frameworks. This has to be done after patching the runpaths.
|
||||
# At the end, we strip the dylib.
|
||||
create_dsym() {
|
||||
local ffmpeg_component_name="$1"
|
||||
local platform="$2"
|
||||
|
||||
local ffmpeg_build_path="${ffmpeg_source_dir}/build_ios/${platform}/installed/${prefix}"
|
||||
local target_dylib="${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework/${ffmpeg_component_name}"
|
||||
|
||||
sudo dsymutil "${target_dylib}" \
|
||||
-o "${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework.dSYM"
|
||||
|
||||
local target_sdk;
|
||||
target_sdk=$(target_platform_to_sdk "${platform}")
|
||||
|
||||
local strip;
|
||||
strip="$(xcrun -f --sdk ${target_sdk} strip)"
|
||||
sudo ${strip} -x "${target_dylib}"
|
||||
}
|
||||
|
||||
create_xcframework() {
|
||||
# Create 'traditional' framework from the corresponding dylib,
|
||||
# also creating
|
||||
local framework_name="$1"
|
||||
local target_platform_a="$2"
|
||||
local target_platform_b="$3"
|
||||
|
||||
local platform_a_build="${ffmpeg_source_dir}/build_ios/${target_platform_a}/installed/${prefix}"
|
||||
local fw_a="${platform_a_build}/framework/${framework_name}.framework"
|
||||
local dsym_a="${fw_a}.dSYM"
|
||||
|
||||
local platform_b_build="${ffmpeg_source_dir}/build_ios/${target_platform_b}/installed/${prefix}"
|
||||
local fw_b="${platform_b_build}/framework/${framework_name}.framework"
|
||||
local dsym_b="${fw_b}.dSYM"
|
||||
|
||||
sudo mkdir -p "$prefix/lib/"
|
||||
sudo xcodebuild -create-xcframework \
|
||||
-framework "$fw_a" -debug-symbols "$dsym_a" \
|
||||
-framework $fw_b -debug-symbols "$dsym_b" \
|
||||
-output "${prefix}/lib/${framework_name}.xcframework"
|
||||
}
|
||||
|
||||
build_ffmpeg_ios "arm64-iphoneos"
|
||||
build_ffmpeg_ios "x86_64-simulator"
|
||||
|
||||
for name in $ffmpeg_components; do
|
||||
create_framework "$name" "arm64-iphoneos"
|
||||
create_framework "$name" "x86_64-simulator"
|
||||
|
||||
create_dsym "$name" "arm64-iphoneos"
|
||||
create_dsym "$name" "x86_64-simulator"
|
||||
done
|
||||
|
||||
# Create corresponding xcframeworks containing both arm64 and x86_64-simulator frameworks:
|
||||
for name in $ffmpeg_components; do
|
||||
create_xcframework "$name" "arm64-iphoneos" "x86_64-simulator"
|
||||
done
|
||||
|
||||
# xcframeworks are already installed directly into the target output directory.
|
||||
# We need to install headers
|
||||
sudo cp -r "${ffmpeg_source_dir}/build_ios/arm64-iphoneos/installed/${prefix}/include" "$prefix"
|
||||
|
||||
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" "$prefix"
|
||||
@@ -41,7 +41,11 @@ build_ffmpeg() {
|
||||
popd
|
||||
}
|
||||
|
||||
brew install yasm
|
||||
# Install required packages through Brew
|
||||
required_ffmpeg_packages=()
|
||||
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../macos/ffmpeg_required_brew_packages.txt"
|
||||
brew install "${required_ffmpeg_packages[@]}"
|
||||
|
||||
export MACOSX_DEPLOYMENT_TARGET=12
|
||||
fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ set -ex
|
||||
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
|
||||
echo "Installing Java Development Kit"
|
||||
version=17.0.12
|
||||
version=21.0.9
|
||||
targetFile=jdk-${version}_macos-x64_bin.dmg
|
||||
expectedHash="6fba2fbe5d181bd2ef7fd79e0335278c13f611cb"
|
||||
expectedHash="3df8761bfba8d6a4633ecc92f1eff0a58d79c304"
|
||||
|
||||
url=ci-files01-hki.ci.qt.io:/hdd/www/input/mac
|
||||
# url_alt=https://www.oracle.com/java/technologies/downloads/#jdk17-mac
|
||||
# url_alt=https://download.oracle.com/java/21/archive/jdk-21.0.8_macos-x64_bin.dmg
|
||||
|
||||
echo "Mounting $targetFile"
|
||||
sudo mkdir -p /Volumes/files
|
||||
|
||||
@@ -8,10 +8,10 @@ set -ex
|
||||
|
||||
echo "Installing Java Development Kit"
|
||||
|
||||
targetFile=zulu17.54.21-ca-jdk17.0.13-macosx_aarch64.dmg
|
||||
targetFile=zulu21.46.19-ca-jdk21.0.9-macosx_aarch64.dmg
|
||||
|
||||
url=ci-files01-hki.ci.qt.io:/hdd/www/input/mac
|
||||
# url_alt=https://cdn.azul.com/zulu/bin/zulu17.54.21-ca-jdk17.0.13-macosx_aarch64.dmg
|
||||
# url_alt=https://cdn.azul.com/zulu/bin/zulu21.46.19-ca-jdk21.0.9-macosx_aarch64.dmg
|
||||
|
||||
echo "Mounting $targetFile"
|
||||
sudo mkdir -p /Volumes/files
|
||||
@@ -22,12 +22,12 @@ sudo umount /Volumes/files
|
||||
sudo hdiutil attach "/tmp/$targetFile"
|
||||
|
||||
echo Installing JDK
|
||||
cd /Volumes/Azul\ Zulu\ JDK\ 17.54+21 && sudo installer -pkg Double-Click\ to\ Install\ Azul\ Zulu\ JDK\ 17.pkg -target /
|
||||
cd /Volumes/Azul\ Zulu\ JDK\ 21.46+19 && sudo installer -pkg Double-Click\ to\ Install\ Azul\ Zulu\ JDK\ 21.pkg -target /
|
||||
|
||||
echo "Unmounting $targetFile"
|
||||
sudo hdiutil unmount /Volumes/Azul\ Zulu\ JDK\ 17.54+21 -force
|
||||
sudo hdiutil unmount /Volumes/Azul\ Zulu\ JDK\ 21.46+19 -force
|
||||
|
||||
echo "Disable auto update"
|
||||
sudo defaults write /Library/Preferences/com.oracle.java.Java-Updater JavaAutoUpdateEnabled -bool false
|
||||
|
||||
echo "JDK Version = 17.0.13" >> ~/versions.txt
|
||||
echo "JDK Version = 21.0.9" >> ~/versions.txt
|
||||
|
||||
@@ -19,7 +19,7 @@ class Libiodbc < Formula
|
||||
|
||||
def install
|
||||
if build.with? "universal"
|
||||
ENV['CFLAGS'] = '-O -arch arm64 -arch x86_64 -mmacosx-version-min=10.9'
|
||||
ENV['CFLAGS'] = '-O -arch arm64 -arch x86_64 -mmacosx-version-min=10.9 -std=gnu89'
|
||||
end
|
||||
system "./autogen.sh"
|
||||
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2020 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# Install libusb
|
||||
set -ex
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
brew install libusb
|
||||
read -r -a arr <<< "$(brew list --versions libusb)"
|
||||
version=${arr[1]}
|
||||
echo "libusb = $version" >> ~/versions.txt
|
||||
|
||||
mkdir /tmp/arm64/
|
||||
mkdir /tmp/amd64/
|
||||
|
||||
case $(sw_vers -productVersion) in
|
||||
11*) codename=big_sur;;
|
||||
12*) codename=monterey;;
|
||||
13*) codename=ventura;;
|
||||
14*) codename=sonoma;;
|
||||
esac
|
||||
|
||||
brew fetch --bottle-tag=arm64_"${codename}" libusb
|
||||
brew fetch --bottle-tag="${codename}" libusb
|
||||
tar xf "$(brew --cache --bottle-tag=arm64_"${codename}" libusb)" -C /tmp/arm64/
|
||||
tar xf "$(brew --cache --bottle-tag="${codename}" libusb)" -C /tmp/amd64
|
||||
for f in /tmp/arm64/libusb/"$version"/lib/* ; do
|
||||
if lipo -info "$f" >/dev/null 2>&1; then
|
||||
file="$(basename "$f")"
|
||||
lipo -create -output "$(brew --cellar)/libusb/$version/lib/$file" \
|
||||
"/tmp/arm64/libusb/$version/lib/$file" \
|
||||
"/tmp/amd64/libusb/$version/lib/$file"
|
||||
fi
|
||||
done
|
||||
@@ -6,12 +6,12 @@ set -ex
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/sccache.sh"
|
||||
|
||||
targetVersion=v0.11.0
|
||||
targetVersion=v0.15.0
|
||||
if [[ `arch` == arm* ]]; then
|
||||
targetArch=aarch64-apple-darwin
|
||||
sha1=3261ab99e5bb1f9f36eafa597d11491bd85da5ec
|
||||
sha256=430ef7b5f54256d3ed5bfe77e8b0afc51aa209aeebe4f95b69c3a52ce3acc6e9
|
||||
else
|
||||
targetArch=x86_64-apple-darwin
|
||||
sha1=57810789bf2813dfa9bf5da26a712dc30b56ce16
|
||||
sha256=f8da93e0689122268f720ddb48c8357f3da18be8c88aff23a8e75a7a219367db
|
||||
fi
|
||||
installSccache "$targetArch" "$targetVersion" "$sha1"
|
||||
installSccache "$targetArch" "$targetVersion" "$sha256"
|
||||
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script installs Syft
|
||||
|
||||
# Syft is used for generating SBOM (Software Bill of Materials) files.
|
||||
|
||||
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
|
||||
version="1.45.1"
|
||||
|
||||
uname_m="$(uname -m)"
|
||||
case "$uname_m" in
|
||||
x86_64|amd64)
|
||||
SHA1="ecd1a9283e4ce025b5905a85e505fcba237edd51"
|
||||
arch="amd64"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
SHA1="996f3985f14ebbe8661c0b72d7ad520200155c46"
|
||||
arch="arm64"
|
||||
;;
|
||||
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
||||
esac
|
||||
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/syft/syft_${version}_darwin_${arch}.tar.gz"
|
||||
AltUrl="https://github.com/anchore/syft/releases/download/v${version}/syft_${version}_darwin_${arch}.tar.gz"
|
||||
targetFolder="/opt/syft-$version"
|
||||
appPrefix=""
|
||||
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix"
|
||||
|
||||
SetEnvVar "PATH" "$targetFolder:\$PATH"
|
||||
|
||||
echo "Syft = $version" >> ~/versions.txt
|
||||
@@ -1 +1 @@
|
||||
--disable-programs --disable-doc --disable-debug --enable-network --disable-lzma --enable-pic --disable-vulkan --disable-v4l2-m2m --disable-decoder=truemotion1
|
||||
--disable-programs --disable-doc --disable-debug --enable-network --disable-lzma --enable-pic --disable-vulkan --disable-v4l2-m2m --disable-decoder=truemotion1 --disable-avdevice --disable-avfilter
|
||||
|
||||
@@ -7,25 +7,28 @@ set -euox pipefail
|
||||
lib_dir="$1/lib"
|
||||
additional_suffix="${2:-}"
|
||||
set_rpath="${3:-yes}"
|
||||
page_size="${4:-}"
|
||||
custom_readelf="${5:-""}"
|
||||
|
||||
# readelf and patchelf are prerequisite tools for this script. Check
|
||||
# that they are available.
|
||||
if [ "$(uname -s)" = "Darwin" ]; then
|
||||
# Under Homebrew, binutils package is not symlinked into PATH.
|
||||
# This lets us use readelf provided by Homebrew.
|
||||
readelf_homebrew_path="$(brew --prefix binutils)/bin/readelf"
|
||||
if [[ ! -x "$readelf_homebrew_path" ]]; then
|
||||
echo "Found no valid readelf executable. It is possible it was not correctly installed through Homebrew."
|
||||
# If custom_readelf is not provided, we fallback to host readelf.
|
||||
if [ -n "$custom_readelf" ]; then
|
||||
if ! command -v "$custom_readelf"; then
|
||||
echo "Error. Provided readelf executable '${custom_readelf}' is not a valid executable"
|
||||
exit 1
|
||||
fi
|
||||
readelf() { "$readelf_homebrew_path" "$@"; }
|
||||
fi
|
||||
|
||||
if ! command -v readelf; then
|
||||
elif ! command -v readelf; then
|
||||
echo "Found no valid readelf command. It is possible it was not correctly installed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
readelf_wrapper() {
|
||||
if [ -n "$custom_readelf" ]; then
|
||||
"$custom_readelf" "$@"
|
||||
else
|
||||
readelf "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
if ! command -v patchelf; then
|
||||
echo "Found no valid patchelf command. It is possible it was not correctly installed."
|
||||
exit 1
|
||||
@@ -37,7 +40,7 @@ if [[ "$patchelf_version" == "0.18.0" ]]; then
|
||||
echo "WARNING: patchelf version 0.18.0 is known to have issues with Android." >&2
|
||||
fi
|
||||
|
||||
ffmpeg_libs=("avcodec" "avdevice" "avfilter" "avformat" "avutil" "swresample" "swscale")
|
||||
ffmpeg_libs=("avcodec" "avformat" "avutil" "swresample" "swscale")
|
||||
stub_prefix="Qt6FFmpegStub-"
|
||||
|
||||
for lib_name in "${ffmpeg_libs[@]}"; do
|
||||
@@ -56,7 +59,7 @@ for lib_name in "${ffmpeg_libs[@]}"; do
|
||||
fi
|
||||
|
||||
read_needed_deps() {
|
||||
readelf -d "$lib_path" | grep '(NEEDED)'
|
||||
readelf_wrapper -d "$lib_path" | grep '(NEEDED)'
|
||||
}
|
||||
|
||||
while read -r line; do
|
||||
@@ -81,7 +84,12 @@ for lib_name in "${ffmpeg_libs[@]}"; do
|
||||
stub_name="${stub_name%%.*}${additional_suffix}.${stub_name#*.}" # Add additional_suffix
|
||||
fi
|
||||
|
||||
patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" "$lib_path"
|
||||
additional_command_args=""
|
||||
if [ -n "$page_size" ]; then
|
||||
additional_command_args+="--page-size ${page_size}"
|
||||
fi
|
||||
|
||||
patchelf ${additional_command_args} --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" "$lib_path"
|
||||
fi
|
||||
done <<< "$(read_needed_deps)"
|
||||
|
||||
|
||||
@@ -4,4 +4,5 @@ ntia-conformance-checker ; python_version >= '3.9'
|
||||
sbomaudit ; python_version >= '3.9'
|
||||
sbom2doc ; python_version >= '3.9'
|
||||
reuse<=5.1.1 ; python_version >= '3.9'
|
||||
cyclonedx-python-lib==11.0.0 ; python_version >= '3.9'
|
||||
cyclonedx-python-lib==11.5.0 ; python_version >= '3.9'
|
||||
jsonschema>=4.20 ; python_version >= '3.12'
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
FROM ubuntu:16.04
|
||||
ARG COIN_RUNS_IN_QT_COMPANY
|
||||
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
|
||||
&& sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \
|
||||
|| echo "Internal package repository not found. Using public repositories."
|
||||
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
|
||||
&& { printf '%s\n' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-amd64 main restricted universe multiverse' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-updates-amd64 main restricted universe multiverse' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-backports-amd64 main restricted universe' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-security-amd64 main restricted universe multiverse' \
|
||||
> /etc/apt/sources.list; \
|
||||
} \
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
FROM ubuntu:18.04
|
||||
ARG COIN_RUNS_IN_QT_COMPANY
|
||||
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
|
||||
&& sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \
|
||||
|| echo "Internal package repository not found. Using public repositories."
|
||||
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
|
||||
&& { printf '%s\n' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-amd64 main restricted universe multiverse' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-updates-amd64 main restricted universe multiverse' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-backports-amd64 main restricted universe' \
|
||||
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-security-amd64 main restricted universe multiverse' \
|
||||
> /etc/apt/sources.list; \
|
||||
} \
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
|
||||
"default-registry": {
|
||||
"kind": "git",
|
||||
"repository": "https://git.qt.io/aledelev/vcpkg",
|
||||
"repository": "https://git.qt.io/qtbuildsystem/vcpkg",
|
||||
"baseline": "9c5c2a0ab75aff5bcd08142525f6ff7f6f7ddeee"
|
||||
},
|
||||
"overlay-triplets": [ "./../../shared/triplets" ]
|
||||
"overlay-triplets": [ "./../triplets" ]
|
||||
}
|
||||
@@ -1,2 +1 @@
|
||||
https://git.qt.io/aledelev/vcpkg.git
|
||||
https://git.qt.io/mrmsdbdl/vcpkg-mirror.git
|
||||
https://git.qt.io/qtbuildsystem/vcpkg.git
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
vcpkg_tool_release_tag=2025-09-03
|
||||
windows_x64_checksum=4523B5B2CE77BD0F6DCA55140D831EA6EB03046D5F4496C85DF94AC1A7EFAB01
|
||||
windows_arm64_checksum=1E8653243C0E7D73FF1F0F3F25A55C8154888F331510F9545AD200EDD3CCB962
|
||||
linux_checksum=f0c4b30afc2f7baa9cc4372ac325042418251343e0192dbfac94c4f602e9d3ed
|
||||
unix_checksum=f0c4b30afc2f7baa9cc4372ac325042418251343e0192dbfac94c4f602e9d3ed
|
||||
|
||||
@@ -116,7 +116,7 @@ set_common_environment () {
|
||||
CMD_INSTALL="sudo install"
|
||||
|
||||
COIN_RUNS_IN_QT_COMPANY=false
|
||||
if ping -c1 repo-clones.ci.qt.io >/dev/null 2>&1
|
||||
if ping -c1 repo-clones-apt.ci.qt.io >/dev/null 2>&1
|
||||
then
|
||||
COIN_RUNS_IN_QT_COMPANY=true
|
||||
fi
|
||||
|
||||
@@ -2,13 +2,9 @@
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
ffmpeg_version_default() {
|
||||
echo "n7.1.2"
|
||||
}
|
||||
|
||||
download_ffmpeg() {
|
||||
local version="${1:-$(ffmpeg_version_default)}"
|
||||
local sha1="${2:-1e4e937facdbde15943dd093121836bf69f27c7c}"
|
||||
local version="${1:-"n7.1.3"}"
|
||||
local sha1="${2:-27051817deec88bed3b9652d49f9127d22268d83}"
|
||||
|
||||
local ffmpeg_name="FFmpeg-$version"
|
||||
local target_dir="$HOME"
|
||||
|
||||
@@ -24,43 +24,46 @@ assert_envvar_is_populated_dir() {
|
||||
}
|
||||
|
||||
build_ffmpeg_android() {
|
||||
local target_arch=$1
|
||||
local target_dir=$2
|
||||
local ndk_root=$3
|
||||
local openssl_android_path=$4
|
||||
local target_dir=$1
|
||||
local ndk_root=$2
|
||||
local openssl_android_path=$3
|
||||
|
||||
sudo mkdir -p "$target_dir"
|
||||
|
||||
local openssl_include="$openssl_android_path/include"
|
||||
local target_arch
|
||||
local openssl_libs
|
||||
local libs_prefix
|
||||
local target_cpu
|
||||
local target_toolchain_arch
|
||||
|
||||
if [ "$target_arch" == "x86_64" ]; then
|
||||
target_toolchain_arch="x86_64-linux-android"
|
||||
target_arch=x86_64
|
||||
target_cpu=x86-64
|
||||
openssl_libs="$openssl_android_path/x86_64"
|
||||
libs_prefix="_x86_64"
|
||||
elif [ "$target_arch" == "x86" ]; then
|
||||
if [ "$os" == "android-x86" ]; then
|
||||
target_toolchain_arch="i686-linux-android"
|
||||
target_arch=x86
|
||||
target_cpu=i686
|
||||
openssl_libs="$openssl_android_path/x86"
|
||||
libs_prefix="_x86"
|
||||
elif [ "$target_arch" == "arm32" ]; then
|
||||
elif [ "$os" == "android-x86_64" ]; then
|
||||
target_toolchain_arch="x86_64-linux-android"
|
||||
target_arch=x86_64
|
||||
target_cpu=x86-64
|
||||
openssl_libs="$openssl_android_path/x86_64"
|
||||
libs_prefix="_x86_64"
|
||||
elif [ "$os" == "android-arm32" ]; then
|
||||
target_toolchain_arch="armv7a-linux-androideabi"
|
||||
target_arch=arm
|
||||
target_cpu=armv7-a
|
||||
openssl_libs="$openssl_android_path/armeabi-v7a"
|
||||
libs_prefix="_arm32-v7a"
|
||||
elif [ "$target_arch" == "arm64" ]; then
|
||||
elif [ "$os" == "android-arm64" ]; then
|
||||
target_toolchain_arch="aarch64-linux-android"
|
||||
target_arch=aarch64
|
||||
target_cpu=armv8-a
|
||||
openssl_libs="$openssl_android_path/arm64-v8a"
|
||||
libs_prefix="_arm64-v8a"
|
||||
else
|
||||
>&2 echo "Unhandled android os param: $os"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
|
||||
@@ -82,12 +85,13 @@ build_ffmpeg_android() {
|
||||
local cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang
|
||||
local ar=${toolchain_bin}/llvm-ar
|
||||
local ranlib=${toolchain_bin}/llvm-ranlib
|
||||
local strip=${toolchain_bin}/llvm-strip
|
||||
local ffmpeg_config_options
|
||||
|
||||
ffmpeg_config_options=$(get_ffmpeg_config_options $build_type)
|
||||
ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera"
|
||||
ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/"
|
||||
ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}"
|
||||
ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib} --strip=${strip}"
|
||||
ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
|
||||
if [ $page_size == "use_16kb_page_size" ]; then
|
||||
ffmpeg_config_options+=" --extra-ldflags=-Wl,-z,max-page-size=16384"
|
||||
@@ -115,33 +119,41 @@ build_ffmpeg_android() {
|
||||
|
||||
if [[ "$build_type" == "shared" ]]; then
|
||||
local fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
|
||||
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no"
|
||||
|
||||
local page_size_arg=""
|
||||
if [ $page_size == "use_16kb_page_size" ]; then
|
||||
page_size_arg="16384"
|
||||
fi
|
||||
local set_rpath_arg="no"
|
||||
local readelf_path_arg="${toolchain_bin}/llvm-readelf"
|
||||
sudo "$fix_dependencies" \
|
||||
"$target_dir" \
|
||||
"$libs_prefix" \
|
||||
"$set_rpath_arg" \
|
||||
"$page_size_arg" \
|
||||
"$readelf_path_arg"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$os" == "android-x86" ]; then
|
||||
target_arch=x86
|
||||
target_dir="/usr/local/android/ffmpeg-x86"
|
||||
envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST"
|
||||
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1"
|
||||
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2"
|
||||
envvar_preview="FFMPEG_DIR_ANDROID_X86_NDK_PREVIEW"
|
||||
elif [ "$os" == "android-x86_64" ]; then
|
||||
target_arch=x86_64
|
||||
target_dir="/usr/local/android/ffmpeg-x86_64"
|
||||
envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST"
|
||||
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1"
|
||||
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2"
|
||||
envvar_preview="FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW"
|
||||
elif [ "$os" == "android-arm32" ]; then
|
||||
target_arch=arm32
|
||||
target_dir="/usr/local/android/ffmpeg-arm32"
|
||||
envvar_latest="FFMPEG_DIR_ANDROID_ARM32_NDK_LATEST"
|
||||
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY1"
|
||||
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY2"
|
||||
envvar_preview="FFMPEG_DIR_ANDROID_ARM32_NDK_PREVIEW"
|
||||
elif [ "$os" == "android-arm64" ]; then
|
||||
target_arch=arm64
|
||||
target_dir="/usr/local/android/ffmpeg-arm64"
|
||||
envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST"
|
||||
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1"
|
||||
@@ -159,26 +171,26 @@ fi
|
||||
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST"
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
|
||||
build_ffmpeg_android "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
|
||||
set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest"
|
||||
|
||||
if [ "${ANDROID_NDK_ROOT_PREVIEW}" ]; then
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_PREVIEW"
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_PREVIEW"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
|
||||
build_ffmpeg_android "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
|
||||
set_ffmpeg_dir_env_var "$envvar_preview" "$target_dir/preview"
|
||||
fi
|
||||
|
||||
if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1"
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
|
||||
build_ffmpeg_android "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
|
||||
set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir/nightly1"
|
||||
fi
|
||||
|
||||
if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2"
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
|
||||
build_ffmpeg_android "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
|
||||
set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2"
|
||||
fi
|
||||
|
||||
@@ -1,184 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script will build and install FFmpeg static libs
|
||||
# Can take an optional final parameter to control installation directory
|
||||
set -ex
|
||||
|
||||
# Must match or be lower than the minimum iOS version supported by the version of Qt that is
|
||||
# is currently being built.
|
||||
readonly MINIMUM_IOS_VERSION="16.0"
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
||||
|
||||
ffmpeg_version=$(ffmpeg_version_default)
|
||||
ffmpeg_source_dir=$(download_ffmpeg)
|
||||
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
|
||||
default_prefix="/usr/local/ios/ffmpeg"
|
||||
prefix="${1:-$default_prefix}"
|
||||
dylib_regex="^@rpath/.*\.dylib$"
|
||||
|
||||
build_ffmpeg_ios() {
|
||||
local target_platform=$1
|
||||
local target_cpu_arch=""
|
||||
if [ "$target_platform" == "arm64-simulator" ]; then
|
||||
target_sdk="iphonesimulator"
|
||||
target_cpu_arch="arm64"
|
||||
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
||||
elif [ "$target_platform" == "x86_64-simulator" ]; then
|
||||
target_sdk="iphonesimulator"
|
||||
target_cpu_arch="x86_64"
|
||||
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
||||
elif [ "$target_platform" == "arm64-iphoneos" ]; then
|
||||
target_sdk="iphoneos"
|
||||
target_cpu_arch="arm64"
|
||||
minos="-miphoneos-version-min=$MINIMUM_IOS_VERSION"
|
||||
else
|
||||
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
|
||||
sudo mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \
|
||||
--sysroot="$(xcrun --sdk "$target_sdk" --show-sdk-path)" \
|
||||
--enable-cross-compile \
|
||||
--enable-optimizations \
|
||||
--prefix=$prefix \
|
||||
--arch=$target_cpu_arch \
|
||||
--cc="xcrun --sdk ${target_sdk} clang -arch $target_cpu_arch" \
|
||||
--cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_cpu_arch" \
|
||||
--target-os=darwin \
|
||||
--extra-ldflags="$minos" \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--install-name-dir='@rpath' \
|
||||
--disable-audiotoolbox
|
||||
|
||||
sudo make install DESTDIR="$build_dir/installed" -j4
|
||||
popd
|
||||
}
|
||||
|
||||
build_info_plist() {
|
||||
local file_path="$1"
|
||||
local framework_name="$2"
|
||||
local framework_id="$3"
|
||||
|
||||
# Apple plist format has a strict requirement that the version string
|
||||
# contains up to 3 numerics separated by a dot. Meanwhile, FFmpeg versioning
|
||||
# tends to use an 'n' prefix in their versioning. We use a regex to convert
|
||||
# and verify the version string.
|
||||
#
|
||||
# https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion
|
||||
local formatted_ffmpeg_version
|
||||
if [[ $ffmpeg_version =~ ([0-9]+(\.[0-9]+){0,2}) ]]; then
|
||||
formatted_ffmpeg_version="${BASH_REMATCH[1]}"
|
||||
else
|
||||
echo "Unable to format FFmpeg version string '$ffmpeg_version' into corresponding Apple Info.plist format"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local minimum_version_key="MinimumOSVersion"
|
||||
local supported_platforms="iPhoneOS"
|
||||
|
||||
info_plist="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${framework_name}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>${framework_id}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${framework_name}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${formatted_ffmpeg_version}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${formatted_ffmpeg_version}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>${minimum_version_key}</key>
|
||||
<string>${MINIMUM_IOS_VERSION}</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>${supported_platforms}</string>
|
||||
</array>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>"
|
||||
echo $info_plist | sudo tee ${file_path} 1>/dev/null
|
||||
}
|
||||
|
||||
|
||||
create_framework() {
|
||||
# Create a 'traditional' framework from the corresponding dylib.
|
||||
local framework_name="$1"
|
||||
local platform="$2" # For now it's either arm64, x86_64-simulator, see below.
|
||||
local ffmpeg_library_path="$ffmpeg_source_dir/build_ios/${platform}/installed$prefix"
|
||||
local framework_complete_path="${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
|
||||
|
||||
sudo mkdir -p "${ffmpeg_library_path}/framework/${framework_name}.framework"
|
||||
sudo cp "${ffmpeg_library_path}/lib/${framework_name}.dylib" "${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
|
||||
|
||||
# Fix LC_ID_DYLIB (to be libavcodec.framework/libavcodec instead of @rpath/libavcodec.xx.yy.dylib
|
||||
sudo install_name_tool -id @rpath/${framework_name}.framework/${framework_name} "${framework_complete_path}"
|
||||
|
||||
build_info_plist "${ffmpeg_library_path}/framework/${framework_name}.framework/Info.plist" "${framework_name}" "io.qt.ffmpegkit."${framework_name}
|
||||
|
||||
# Fix all FFmpeg-related LC_LOAD_DYLIB, similar to how we fixed LC_ID_DYLIB above:
|
||||
otool -L "$framework_complete_path" | awk '/\t/ {print $1}' | egrep "$dylib_regex" | while read -r dependency_path; do
|
||||
found_name=$(tmp=${dependency_path/*\/}; echo ${tmp/\.*})
|
||||
if [ "$found_name" != "$framework_name" ]
|
||||
then
|
||||
sudo install_name_tool -change "$dependency_path" @rpath/${found_name}.framework/${found_name} "${framework_complete_path}"
|
||||
fi
|
||||
done
|
||||
#sudo mkdir -p "$prefix/framework/"
|
||||
#sudo cp -r "${ffmpeg_library_path}/framework/${framework_name}.framework" "$prefix/framework/"
|
||||
}
|
||||
|
||||
create_xcframework() {
|
||||
# Create 'traditional' framework from the corresponding dylib,
|
||||
# also creating
|
||||
local framework_name="$1"
|
||||
local target_platform_a="$2"
|
||||
local target_platform_b="$3"
|
||||
|
||||
local fw_a="$ffmpeg_source_dir/build_ios/${target_platform_a}/installed$prefix/framework/${framework_name}.framework"
|
||||
local fw_b="$ffmpeg_source_dir/build_ios/${target_platform_b}/installed$prefix/framework/${framework_name}.framework"
|
||||
|
||||
sudo mkdir -p "$prefix/lib/"
|
||||
sudo xcodebuild -create-xcframework -framework $fw_a -framework $fw_b -output "${prefix}/lib/${framework_name}.xcframework"
|
||||
}
|
||||
|
||||
build_ffmpeg_ios "x86_64-simulator"
|
||||
build_ffmpeg_ios "arm64-iphoneos"
|
||||
|
||||
ffmpeg_libs="libavcodec libavformat libavutil libswresample libswscale"
|
||||
|
||||
for name in $ffmpeg_libs; do
|
||||
create_framework $name "arm64-iphoneos"
|
||||
create_framework $name "x86_64-simulator"
|
||||
done
|
||||
|
||||
# Create corresponding (xc)frameworks containing both arm64 and arm64-simulator frameworks:
|
||||
for name in $ffmpeg_libs; do
|
||||
create_xcframework $name "arm64-iphoneos" "x86_64-simulator"
|
||||
done
|
||||
|
||||
# xcframeworks are already installed directly into the target output directory.
|
||||
# We need to install headers
|
||||
sudo cp -r "$ffmpeg_source_dir/build_ios/arm64-iphoneos/installed$prefix/include" $prefix
|
||||
|
||||
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" $prefix
|
||||
@@ -9,19 +9,19 @@ source "${BASH_SOURCE%/*}/DownloadURL.sh"
|
||||
# shellcheck source=./SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/SetEnvVar.sh"
|
||||
|
||||
# This script will install go 1.25.2
|
||||
version="1.25.2"
|
||||
# This script will install go 1.26.2
|
||||
version="1.26.2"
|
||||
|
||||
if [[ "$os" == "linux" ]]; then
|
||||
uname_m="$(uname -m)"
|
||||
case "$uname_m" in
|
||||
x86_64|amd64)
|
||||
sha256="a08c8c36946c86890ca46185765da34442ce64aa"
|
||||
sha256="990e6b4bbba816dc3ee129eaeaf4b42f17c2800b88a2166c265ac1a200262282"
|
||||
pkgname="go$version.linux-amd64.tar.gz"
|
||||
dirname="go$version.linux-amd64"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
sha256="13690a4ecac03e6cca6988a6d2ce80bfa938eb7b"
|
||||
sha256="c958a1fe1b361391db163a485e21f5f228142d6f8b584f6bef89b26f66dc5b23"
|
||||
pkgname="go$version.linux-arm64.tar.gz"
|
||||
dirname="go$version.linux-arm64"
|
||||
;;
|
||||
@@ -31,12 +31,12 @@ elif [ "$os" == "macos" ]; then
|
||||
uname_m="$(uname -m)"
|
||||
case "$uname_m" in
|
||||
x86_64|amd64)
|
||||
sha256="eda89df8fd85a49e4046f85340236248a5d2a7cd"
|
||||
sha256="bc3f1500d9968c36d705442d90ba91addf9271665033748b82532682e90a7966"
|
||||
pkgname="go$version.darwin-amd64.tar.gz"
|
||||
dirname="go$version.darwin-amd64"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
sha256="1745a71d18f9946f7aac9f9528e3227c8132cc08"
|
||||
sha256="32af1522bf3e3ff3975864780a429cc0b41d190ec7bf90faa661d6d64566e7af"
|
||||
pkgname="go$version.darwin-arm64.tar.gz"
|
||||
dirname="go$version.darwin-arm64"
|
||||
;;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# Copyright (C) 2025 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script install OpenSSL from sources.
|
||||
# Requires GCC and Perl to be in PATH.
|
||||
set -ex
|
||||
os="$1"
|
||||
version=${2:-"3.0.7"}
|
||||
sha=${3:-"f20736d6aae36bcbfa9aba0d358c71601833bf27"}
|
||||
version=${2:-"3.5.4"}
|
||||
sha=${3:-"b75daac8e10f189abe28a076ba5905d363e4801f"}
|
||||
|
||||
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
# shellcheck source=../unix/DownloadURL.sh
|
||||
@@ -37,6 +37,7 @@ if [[ "$os" == "linux" ]]; then
|
||||
make && make install_sw install_ssldirs
|
||||
SetEnvVar "OPENSSL_HOME" "$opensslHome"
|
||||
SetEnvVar "PATH" "\"$opensslHome/bin:\$PATH\""
|
||||
SetEnvVar "PKG_CONFIG_PATH" "\"$opensslHome/lib64/pkgconfig:\$PKG_CONFIG_PATH\""
|
||||
if uname -a |grep -q "Debian"; then
|
||||
SetEnvVar "LD_LIBRARY_PATH" "\"$opensslHome/lib:$LD_LIBRARY_PATH\""
|
||||
else
|
||||
@@ -103,6 +104,18 @@ elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then
|
||||
SetEnvVar "OPENSSL_INCLUDE" "\"$openssl_install_dir/include\""
|
||||
SetEnvVar "OPENSSL_LIB" "\"$openssl_install_dir/lib\""
|
||||
|
||||
# Set runtime loader (dyld) and OpenSSL providers for SSL tests (QTBUG-142392)
|
||||
SetEnvVar "DYLD_LIBRARY_PATH" "\"$opensslTargetLocation/lib:\$DYLD_LIBRARY_PATH\""
|
||||
SetEnvVar "OPENSSL_MODULES" "\"$opensslTargetLocation/lib/ossl-modules\""
|
||||
# Check that the versioned dylibs exists and ML-DSA is available
|
||||
test -f "$opensslTargetLocation/lib/libcrypto.3.dylib"
|
||||
test -f "$opensslTargetLocation/lib/libssl.3.dylib"
|
||||
test -d "$opensslTargetLocation/lib/ossl-modules"
|
||||
|
||||
OPENSSL_MODULES="$opensslTargetLocation/lib/ossl-modules" \
|
||||
"$opensslTargetLocation/bin/openssl" list -signature-algorithms | \
|
||||
grep -q -i 'ML-DSA' || { echo "ML-DSA not available"; exit 1; }
|
||||
|
||||
security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a "$opensslTargetLocation/ssl/cert.pem" > /dev/null
|
||||
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a "$opensslTargetLocation/ssl/cert.pem" > /dev/null
|
||||
fi
|
||||
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script will build and install rust toolchain
|
||||
set -ex
|
||||
|
||||
PROVISIONING_DIR="$(dirname "$0")/../../"
|
||||
|
||||
# shellcheck source=./../unix/common.sourced.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/common.sourced.sh"
|
||||
# shellcheck source=./../unix/DownloadURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
# shellcheck source=./../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
version="1.92.0"
|
||||
sourceName="rustc-$version-src"
|
||||
sourceFile="$sourceName.tar.xz"
|
||||
cachedUrl="http://ci-files01-hki.ci.qt.io/input/rust/$sourceFile"
|
||||
officialUrl="https://static.rust-lang.org/dist/$sourceFile"
|
||||
sourcesSHA256="ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307"
|
||||
|
||||
function BuildRust() {
|
||||
buildFolder=$1
|
||||
installPrefix=$2
|
||||
target=$3
|
||||
channel=$4
|
||||
outputTarball=$5
|
||||
tmpFolder=$6
|
||||
|
||||
targetFile=$tmpFolder/$sourceFile
|
||||
srcFolder=$tmpFolder/$sourceName
|
||||
|
||||
if [ ! -d "$srcFolder" ]; then
|
||||
DownloadURL $cachedUrl $officialUrl $sourcesSHA256 $targetFile
|
||||
tar -C "$tmpFolder" -Jxf "$targetFile"
|
||||
fi
|
||||
|
||||
mkdir -p "$buildFolder"
|
||||
cd "$buildFolder"
|
||||
|
||||
$srcFolder/configure \
|
||||
--prefix=$installPrefix \
|
||||
--sysconfdir=etc \
|
||||
--enable-llvm-link-shared \
|
||||
--enable-profiler \
|
||||
--disable-cargo-native-static \
|
||||
--disable-vendor \
|
||||
--disable-docs \
|
||||
--disable-lld \
|
||||
--target=$target \
|
||||
--release-description=QtCI \
|
||||
--release-channel=$channel
|
||||
|
||||
echo "Building rust"
|
||||
python $srcFolder/x.py dist
|
||||
|
||||
# x.py doesnt like running as root so install under our temporary folder for now
|
||||
export DESTDIR=$tmpFolder
|
||||
|
||||
echo "Installing rust"
|
||||
python $srcFolder/x.py install
|
||||
|
||||
# rustc must be in path for cargo to work
|
||||
OLDPATH=$PATH
|
||||
export PATH=$DESTDIR$installPrefix/bin:$PATH
|
||||
|
||||
echo "Installing rust bindgen tool."
|
||||
$tmpFolder$installPrefix/bin/cargo install bindgen-cli --root $DESTDIR$installPrefix
|
||||
|
||||
tar -czf "$outputTarball" -C "$DESTDIR$installPrefix" .
|
||||
|
||||
rm -rf "$buildFolder"
|
||||
export PATH=$OLDPATH
|
||||
unset DESTDIR
|
||||
}
|
||||
|
||||
function InstallRust() {
|
||||
buildFolder=$1
|
||||
installPrefix=$2
|
||||
target=$3
|
||||
channel=$4
|
||||
prebuiltSHA256=$5
|
||||
|
||||
tmpFolder=$(mktemp -d)
|
||||
|
||||
# e.g rust-1.92.0-macos-arm64-prebuilt.tar.gz or rust-1.92.0-macos-amd64-prebuilt.tar.gz
|
||||
prebuiltFile="rust-$version-$PROVISIONING_OS-$PROVISIONING_ARCH-prebuilt.tar.gz"
|
||||
prebuiltRust="http://ci-files01-hki.ci.qt.io/input/rust/$prebuiltFile"
|
||||
prebuiltTarget="$tmpFolder$prebuiltFile"
|
||||
|
||||
DownloadURL $prebuiltRust "" $prebuiltSHA256 $prebuiltTarget $tmpFolder || (
|
||||
if [ $COIN_RUNS_IN_QT_COMPANY = true ]
|
||||
then
|
||||
echo "Fetching prebuilt rust failed."
|
||||
exit 1
|
||||
else
|
||||
echo "Fetching prebuilt rust failed. Building from sources."
|
||||
BuildRust $buildFolder $installPrefix $target $channel $prebuiltTarget
|
||||
fi
|
||||
)
|
||||
|
||||
sudo mkdir "$installPrefix"
|
||||
sudo tar -xzf "$prebuiltTarget" -C "$installPrefix"
|
||||
rm -rf "$prebuiltTarget"
|
||||
rm -rf "$tmpFolder"
|
||||
|
||||
SetEnvVar "PATH" "$installPrefix/bin:\$PATH"
|
||||
|
||||
echo "Rust = $version" >> ~/versions.txt
|
||||
}
|
||||
+5
-4
@@ -7,12 +7,11 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
echo "Installing vcpkg ports"
|
||||
|
||||
pushd "${BASH_SOURCE%/*}/vcpkg" || exit
|
||||
cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
|
||||
pushd "${BASH_SOURCE%/*}/../shared/vcpkg" || exit
|
||||
|
||||
install_root=x64-linux-qt-tmp
|
||||
install_root=$1-tmp
|
||||
|
||||
"$VCPKG_ROOT/vcpkg" install --triplet x64-linux-qt --x-install-root $install_root --debug
|
||||
"$VCPKG_ROOT/vcpkg" install --triplet $1 --x-install-root $install_root --debug
|
||||
|
||||
cmake "-DVCPKG_EXECUTABLE=$VCPKG_ROOT/vcpkg"\
|
||||
"-DVCPKG_INSTALL_ROOT=$PWD/$install_root"\
|
||||
@@ -26,5 +25,7 @@ cp -R $install_root/* "$VCPKG_ROOT/installed/"
|
||||
SetEnvVar "VCPKG_INSTALLED_DIR" "$VCPKG_ROOT/installed/"
|
||||
|
||||
rm -rf $install_root
|
||||
rm -rf "$VCPKG_ROOT/buildtrees/"
|
||||
rm -rf "$VCPKG_ROOT/packages/"
|
||||
|
||||
popd || exit
|
||||
+2
-2
@@ -34,7 +34,7 @@ do
|
||||
"vcpkg_tool_release_tag")
|
||||
vcpkgToolReleaseTag=${keyValue[1]}
|
||||
;;
|
||||
"linux_checksum")
|
||||
"unix_checksum")
|
||||
vcpkgToolChecksum=${keyValue[1]}
|
||||
;;
|
||||
esac
|
||||
@@ -86,7 +86,7 @@ SetEnvVar "VCPKG_ROOT" "$vcpkgRoot"
|
||||
export VCPKG_ROOT="$vcpkgRoot"
|
||||
|
||||
# Set a source for vcpkg Binary and Asset Cache
|
||||
# The `coin/provisioning/common/linux/mount-vcpkg-cache-drive.sh` script is
|
||||
# The `coin/provisioning/common/<platform>/mount-vcpkg-cache-drive.sh` script is
|
||||
# mounting the SMB share located in `vcpkg-server.ci.qt.io/vcpkg` to
|
||||
# $HOME/vcpkg-cache/
|
||||
export VCPKG_BINARY_SOURCES="files,$HOME/vcpkg-cache/binaries,readwrite"
|
||||
@@ -63,6 +63,7 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \
|
||||
-DCMAKE_INSTALL_PREFIX="$installPrefix" \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
"${extraCMakeArgs[@]}" \
|
||||
"$extraOpenSslArg" \
|
||||
-DgRPC_BUILD_TESTS=OFF \
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
source "${BASH_SOURCE%/*}/DownloadURL.sh"
|
||||
source "${BASH_SOURCE%/*}/SetEnvVar.sh"
|
||||
|
||||
version="7.15.0"
|
||||
version="7.18.0"
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/qtopenapi/openapi_client_generators/openapi-generator-cli-$version.jar"
|
||||
AltUrl="https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/$version/openapi-generator-cli-$version.jar"
|
||||
SHA1="bb58e257f724fb46b7f2b309a9fa98e63fd7199f"
|
||||
SHA1="8bd615a50b15ebf5be30e612af112526a6e81ac4"
|
||||
targetFolder="/opt/qt-openapi/"
|
||||
targetFile="openapi-generator-cli.jar"
|
||||
|
||||
@@ -22,3 +22,13 @@ sudo mv "$targetFile" "$targetFolder"
|
||||
|
||||
SetEnvVar "PATH" "$targetFolder:\$PATH"
|
||||
|
||||
# Extract baseline cache
|
||||
sha1="e397b7934a8c892753166435aff8775c0b5aa5bf"
|
||||
pkgname="maven_cache-openapi-$version.tar.gz"
|
||||
internalUrl="http://ci-files01-hki.ci.qt.io/input/qtopenapi/maven/$pkgname"
|
||||
|
||||
targetFile="$HOME/$pkgname"
|
||||
DownloadURL "$internalUrl" "$internalUrl" "$sha1" "$targetFile"
|
||||
echo "Extracting maven cache to ~/.m2"
|
||||
tar -xzf "$targetFile" -C "$HOME"
|
||||
rm "$targetFile"
|
||||
|
||||
@@ -16,6 +16,7 @@ source "${BASH_SOURCE%/*}/SetEnvVar.sh"
|
||||
# shellcheck source=./DownloadURL.sh
|
||||
source "${BASH_SOURCE%/*}/DownloadURL.sh"
|
||||
|
||||
zswitch=$1 # Since 7z 25.01 multi-hop symbolic links are restricted with -snl switch levels
|
||||
version="20.1.3"
|
||||
baseUrl="https://download.qt.io/development_releases/prebuilt/libclang"
|
||||
cachedUrl="http://ci-files01-hki.ci.qt.io/input/libclang/dynamic"
|
||||
@@ -40,7 +41,7 @@ DownloadURL "$url_cached" "$url" "$sha1" "$zip"
|
||||
if command -v 7zr &> /dev/null; then
|
||||
sudo 7zr x $zip -o/usr/local/
|
||||
else
|
||||
sudo 7z x $zip -o/usr/local/
|
||||
sudo 7z x $zswitch $zip -o/usr/local/
|
||||
fi
|
||||
sudo mv /usr/local/libclang "$destination"
|
||||
rm -rf $zip
|
||||
|
||||
@@ -20,6 +20,7 @@ PROVISIONING_DIR="$(dirname "$0")/../../"
|
||||
# shellcheck source=./common.sourced.sh
|
||||
source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
|
||||
|
||||
zswitch=$1 # Since 7z 25.01 multi-hop symbolic links are restricted with -snl switch levels
|
||||
libclang_version="20.1.0"
|
||||
|
||||
if uname -a |grep -q Darwin; then
|
||||
@@ -61,7 +62,7 @@ DownloadURL $url_cached $url $sha1 $zip
|
||||
if command -v 7zr &> /dev/null; then
|
||||
sudo 7zr x $zip -o/usr/local/
|
||||
else
|
||||
sudo 7z x $zip -o/usr/local/
|
||||
sudo 7z x $zswitch $zip -o/usr/local/
|
||||
fi
|
||||
sudo mv /usr/local/libclang "$destination"
|
||||
rm -rf $zip
|
||||
|
||||
@@ -5,95 +5,154 @@
|
||||
# This script install prebuilt OpenSSL which was built against Android NDK 25.
|
||||
# OpenSSL build will fail with Android NDK 22, because it's missing platforms and sysroot directories
|
||||
|
||||
set -ex
|
||||
set -eux
|
||||
# shellcheck source=../unix/DownloadURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
sslVersionForLatest="3.0.7"
|
||||
ndkVersionLatest="r27c"
|
||||
prebuiltOpensslShaLatest="2cc15dd990460c2c7157ab257a47071fbd9e0ac8"
|
||||
outputPathBase="${HOME}"
|
||||
|
||||
sslVersionForPreview="3.0.7"
|
||||
sslVersionForLatest="3.5.4"
|
||||
ndkVersionLatest="r27c"
|
||||
featureSuffixLatest="_16kb_fixed_symversions"
|
||||
prebuiltOpensslShaLatest="b9dc30ed77bfd26e526e81d558d6964585b27283"
|
||||
|
||||
sslVersionForPreview="3.5.4"
|
||||
ndkVersionPreview="r29-beta2"
|
||||
prebuiltOpensslShaPreview="76c9788216440111be97ea1a63c4d8cd807baacd"
|
||||
featureSuffixPreview="_16kb_fixed_symversions"
|
||||
prebuiltOpensslShaPreview="89b6692e983c7e9678dcd9fc03da623fb75593d3"
|
||||
|
||||
ndkVersionNightly1=$ndkVersionLatest
|
||||
sslVersionForNightly1=$sslVersionForLatest
|
||||
featureSuffixNightly1=""
|
||||
prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest
|
||||
|
||||
ndkVersionNightly2=$ndkVersionLatest
|
||||
sslVersionForNightly2=$sslVersionForLatest
|
||||
featureSuffixNightly2=""
|
||||
prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest
|
||||
|
||||
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r29-beta2
|
||||
# Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd"
|
||||
exports_file="/tmp/export.sh"
|
||||
# source previously made environmental variables.
|
||||
if uname -a |grep -q "Ubuntu"; then
|
||||
# shellcheck disable=SC1090
|
||||
grep -e "^export" "$HOME/.profile" > $exports_file && source $exports_file
|
||||
rm -rf "$exports_file"
|
||||
else
|
||||
# shellcheck disable=SC1090
|
||||
grep -e "^export" "$HOME/.bashrc" > $exports_file && source $exports_file
|
||||
rm -rf "$exports_file"
|
||||
fi
|
||||
: <<'EOB' SOURCE BUILD INSTRUCTIONS
|
||||
Openssl 3.5.4 prebuilt was made using Android NDK r27c Revision 27.2.12479018
|
||||
and r29-beta2 Revision 29.0.13599879
|
||||
|
||||
officialUrl="https://www.openssl.org/source/openssl-$sslVersionForLatest.tar.gz"
|
||||
cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$sslVersionForLatest.tar.gz"
|
||||
targetFile="/tmp/openssl-$sslVersionForLatest.tar.gz"
|
||||
sha="f20736d6aae36bcbfa9aba0d358c71601833bf27"
|
||||
opensslHome="${HOME}/openssl/android/openssl-${sslVersionForLatest}"
|
||||
DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile"
|
||||
mkdir -p "${HOME}/openssl/android/"
|
||||
tar -xzf "$targetFile" -C "${HOME}/openssl/android/"
|
||||
if uname -a |grep -q "Darwin"; then
|
||||
TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/darwin-x86_64/bin
|
||||
else
|
||||
TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin
|
||||
fi
|
||||
cd "$opensslHome"
|
||||
PATH=$TOOLCHAIN:$PATH CC=clang ./Configure android-arm
|
||||
PATH=$TOOLCHAIN:$PATH CC=clang make build_generated
|
||||
By using a helpful (build_ssl.sh) script from:
|
||||
Android OpenSSL support for Qt
|
||||
https://github.com/KDAB/android_openssl/commit/b71f1470962019bd89534a2919f5925f93bc5779
|
||||
|
||||
Download the same NDK version that the Qt branch supports
|
||||
https://developer.android.com/ndk/downloads
|
||||
|
||||
Modify the script to your liking: set a path to NDK root, set OpenSSL version
|
||||
(script will download needed OpenSSL packages)
|
||||
Set ANDROID_API to the lowest version of Android which will be used.
|
||||
EOB
|
||||
|
||||
function BuildOutputPath() {
|
||||
local ndkVersion="$1"
|
||||
local suffix="$2"
|
||||
local sslVersion="$3"
|
||||
|
||||
echo "${outputPathBase}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}"
|
||||
}
|
||||
|
||||
function InstallPrebuiltOpenssl() {
|
||||
local ndkVersion="$1"
|
||||
local suffix="$2"
|
||||
local sha="$3"
|
||||
local sslVersion="$4"
|
||||
local output_dir="$5"
|
||||
|
||||
ndkVersion=$1
|
||||
sha=$2
|
||||
sslVersion=$3
|
||||
local prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
|
||||
local targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
|
||||
|
||||
opensslHome="${HOME}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb"
|
||||
if [[ ! -d ${opensslHome} ]]; then
|
||||
prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb.zip"
|
||||
targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb.zip"
|
||||
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
|
||||
|
||||
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
|
||||
unzip -o "$targetFile" -d "${HOME}"
|
||||
sudo rm -f "$targetFile"
|
||||
local tmp_extract
|
||||
tmp_extract="$(mktemp -d "${TMPDIR:-/tmp}/openssl-extract.XXXXXX")"
|
||||
unzip -q -o "$targetFile" -d "$tmp_extract"
|
||||
rm -f "$targetFile"
|
||||
|
||||
# We assume there is only one top-level directory in the openssl zip
|
||||
local temp_openssl_root
|
||||
temp_openssl_root="$(find "$tmp_extract" -mindepth 1 -maxdepth 1 -type d | head -n 1)"
|
||||
if [[ -z "$temp_openssl_root" ]]; then
|
||||
echo "ERROR: Expected a single top-level directory in the archive, but none was found." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv "$temp_openssl_root" "$output_dir"
|
||||
rm -rf "$tmp_extract"
|
||||
|
||||
# There have been cases where necessary symlinks are lost when unarchiving.
|
||||
# Force-create them now.
|
||||
local abi_list="arm64-v8a armeabi-v7a x86 x86_64"
|
||||
for abi in $abi_list; do
|
||||
ln -fs "${output_dir}/include" "${output_dir}/${abi}/include"
|
||||
ln -fs "${output_dir}/${abi}/libcrypto_3.so" "${output_dir}/${abi}/libcrypto.so"
|
||||
ln -fs "${output_dir}/${abi}/libssl_3.so" "${output_dir}/${abi}/libssl.so"
|
||||
done
|
||||
}
|
||||
|
||||
if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then
|
||||
InstallPrebuiltOpenssl $ndkVersionNightly1 $prebuiltOpensslShaNightly1 $sslVersionForNightly1
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$opensslHome"
|
||||
echo "OpenSSL for Android $ndkVersionNightly1 = $sslVersionForNightly1" >> ~/versions.txt
|
||||
outputDirNightly1=$(BuildOutputPath \
|
||||
"$ndkVersionNightly1" \
|
||||
"$featureSuffixNightly1" \
|
||||
"$sslVersionForNightly1")
|
||||
|
||||
InstallPrebuiltOpenssl \
|
||||
"$ndkVersionNightly1" \
|
||||
"$featureSuffixNightly1" \
|
||||
"$prebuiltOpensslShaNightly1" \
|
||||
"$sslVersionForNightly1" \
|
||||
"$outputDirNightly1"
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$outputDirNightly1"
|
||||
echo "OpenSSL for Android ${ndkVersionNightly1} = ${sslVersionForNightly1}" >> ~/versions.txt
|
||||
fi
|
||||
|
||||
if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
|
||||
InstallPrebuiltOpenssl $ndkVersionNightly2 $prebuiltOpensslShaNightly2 $sslVersionForNightly2
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY2" "$opensslHome"
|
||||
echo "OpenSSL for Android $ndkVersionNightly2 = $sslVersionForNightly2" >> ~/versions.txt
|
||||
outputDirNightly2=$(BuildOutputPath \
|
||||
"$ndkVersionNightly2" \
|
||||
"$featureSuffixNightly2" \
|
||||
"$sslVersionForNightly2")
|
||||
|
||||
InstallPrebuiltOpenssl \
|
||||
"$ndkVersionNightly2" \
|
||||
"$featureSuffixNightly2" \
|
||||
"$prebuiltOpensslShaNightly2" \
|
||||
"$sslVersionForNightly2" \
|
||||
"$outputDirNightly2"
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$outputDirNightly2"
|
||||
echo "OpenSSL for Android ${ndkVersionNightly2} = ${sslVersionForNightly2}" >> ~/versions.txt
|
||||
fi
|
||||
|
||||
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
|
||||
InstallPrebuiltOpenssl $ndkVersionPreview $prebuiltOpensslShaPreview $sslVersionForPreview
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$opensslHome"
|
||||
echo "OpenSSL for Android $ndkVersionPreview = $sslVersionForPreview" >> ~/versions.txt
|
||||
outputDirPreview="$(BuildOutputPath \
|
||||
"$ndkVersionPreview" \
|
||||
"$featureSuffixPreview" \
|
||||
"$sslVersionForPreview")"
|
||||
|
||||
InstallPrebuiltOpenssl \
|
||||
"$ndkVersionPreview" \
|
||||
"$featureSuffixPreview" \
|
||||
"$prebuiltOpensslShaPreview" \
|
||||
"$sslVersionForPreview" \
|
||||
"$outputDirPreview"
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$outputDirPreview"
|
||||
echo "OpenSSL for Android ${ndkVersionPreview} = ${sslVersionForPreview}" >> ~/versions.txt
|
||||
fi
|
||||
|
||||
InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslShaLatest $sslVersionForLatest
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome"
|
||||
echo "OpenSSL for Android $ndkVersionLatest = $sslVersionForLatest" >> ~/versions.txt
|
||||
outputDirLatest="$(BuildOutputPath \
|
||||
"$ndkVersionLatest" \
|
||||
"$featureSuffixLatest" \
|
||||
"$sslVersionForLatest")"
|
||||
|
||||
InstallPrebuiltOpenssl \
|
||||
"$ndkVersionLatest" \
|
||||
"$featureSuffixLatest" \
|
||||
"$prebuiltOpensslShaLatest" \
|
||||
"$sslVersionForLatest" \
|
||||
"$outputDirLatest"
|
||||
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$outputDirLatest"
|
||||
echo "OpenSSL for Android ${ndkVersionLatest} = ${sslVersionForLatest}" >> ~/versions.txt
|
||||
|
||||
@@ -36,4 +36,6 @@ function installSccache {
|
||||
# Prevents some random network I/O errors from failing compilation
|
||||
# Does not seem to affect much though
|
||||
SetEnvVar "SCCACHE_IGNORE_SERVER_IO_ERROR" "1"
|
||||
# Enable a local preprocessor cache.
|
||||
SetEnvVar SCCACHE_DIRECT 1
|
||||
}
|
||||
|
||||
@@ -15,15 +15,15 @@ if (Is64BitWinHost) {
|
||||
# Msys need to be installed to target machine
|
||||
# More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html
|
||||
|
||||
$openssl_version_latest = "3.0.7"
|
||||
$ndk_version_latest = "r27c"
|
||||
$prebuilt_ssl_sha1_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e"
|
||||
$openssl_sha1_latest = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
|
||||
$openssl_version_latest = "3.5.4"
|
||||
$ndk_version_latest = "r27c_16kb"
|
||||
$prebuilt_ssl_sha1_latest = "a76cd9ec719d4e71473dcf451d648a9766247081"
|
||||
$openssl_sha1_latest = "b75daac8e10f189abe28a076ba5905d363e4801f"
|
||||
|
||||
$openssl_version_preview = "3.0.7"
|
||||
$ndk_version_preview = "r29-beta2"
|
||||
$prebuilt_ssl_sha1_preview = "c2cf8fabfb7e00b31abcc554e6e306dafd99ae1b"
|
||||
$openssl_sha1_preview = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
|
||||
$openssl_version_preview = "3.5.4"
|
||||
$ndk_version_preview = "r29-beta2_16kb"
|
||||
$prebuilt_ssl_sha1_preview = "664bab8b4f5e01c8bb87ab0ea8333b2ef1af703d"
|
||||
$openssl_sha1_preview = "b75daac8e10f189abe28a076ba5905d363e4801f"
|
||||
|
||||
$openssl_version_nightly1 = $openssl_version_latest
|
||||
$ndk_version_nightly1 = $ndk_version_latest
|
||||
|
||||
@@ -41,8 +41,8 @@ $ndkOfficialUrlNightly2 = "https://dl.google.com/android/repository/android-ndk-
|
||||
$toolsVersion = "19.0"
|
||||
$toolsFile = "commandlinetools-win-13114758_latest.zip"
|
||||
$sdkApi = "ANDROID_API_VERSION"
|
||||
$sdkApiLevel = "android-35"
|
||||
$sdkBuildToolsVersion = "35.0.1"
|
||||
$sdkApiLevel = "android-36"
|
||||
$sdkBuildToolsVersion = "36.0.0"
|
||||
$toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile"
|
||||
$toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile"
|
||||
$toolsChecksum = "54a582f3bf73e04253602f2d1c80bd5868aac115"
|
||||
@@ -52,25 +52,26 @@ $sdkZip = "c:\Windows\Temp\$toolsFile"
|
||||
New-Item -ItemType Directory -Path C:\Utils\Android\
|
||||
New-Item -ItemType Directory -Path C:\Windows\Temp\android_extract
|
||||
|
||||
function Install($1, $2, $3, $4) {
|
||||
function Install($1, $2, $3, $4, $5) {
|
||||
$cacheUrl = $1
|
||||
$zip = $2
|
||||
$checksum = $3
|
||||
$offcialUrl = $4
|
||||
$ndkVersion = $5
|
||||
$tempExtractDir = "C:\Windows\Temp\android_extract"
|
||||
|
||||
Download $offcialUrl $cacheUrl $zip
|
||||
Verify-Checksum $zip "$checksum"
|
||||
Extract-7Zip $zip $tempExtractDir
|
||||
$baseDirectory = (Get-ChildItem $tempExtractDir -Attributes D | Select-Object -First 1).Name
|
||||
Move-Item -Path ($tempExtractDir + "\" + $baseDirectory) -Destination "C:\Utils\Android\$baseDirectory" -Force
|
||||
Move-Item -Path ($tempExtractDir + "\" + $baseDirectory) -Destination "C:\Utils\Android\$ndkVersion\$baseDirectory" -Force
|
||||
Remove $zip
|
||||
|
||||
return "C:\Utils\Android\$baseDirectory"
|
||||
return "C:\Utils\Android\$ndkVersion\$baseDirectory"
|
||||
}
|
||||
|
||||
Write-Host "Installing Android NDK $nkdVersionLatest"
|
||||
$ndkFolderLatest = Install $ndkCachedUrlLatest $ndkZip $ndkChecksumLatest $ndkOfficialUrlLatest
|
||||
$ndkFolderLatest = Install $ndkCachedUrlLatest $ndkZip $ndkChecksumLatest $ndkOfficialUrlLatest $nkdVersionLatest
|
||||
Set-EnvironmentVariable "ANDROID_NDK_ROOT_LATEST" $ndkFolderLatest
|
||||
# To be used by vcpkg
|
||||
Set-EnvironmentVariable "ANDROID_NDK_HOME" $ndkFolderLatest
|
||||
@@ -84,14 +85,14 @@ if ($ndkVersionPreview -ne $ndkVersionLatest) {
|
||||
|
||||
if ($ndkVersionNightly1 -ne $ndkVersionLatest) {
|
||||
Write-Host "Installing Android NDK $ndkVersionNightly1"
|
||||
$ndkFolderNightly = Install $ndkCachedUrlNightly1 $ndkZip $ndkChecksumNightly1 $ndkOfficialUrlNightly1
|
||||
$ndkFolderNightly = Install $ndkCachedUrlNightly1 $ndkZip $ndkChecksumNightly1 $ndkOfficialUrlNightly1 $ndkVersionNightly1
|
||||
Set-EnvironmentVariable "ANDROID_NDK_ROOT_NIGHTLY1" $ndkFolderNightly
|
||||
Write-Output "Android NDK = $ndkVersionNightly1" >> ~/versions.txt
|
||||
}
|
||||
|
||||
if ($ndkVersionNightly2 -ne $ndkVersionLatest) {
|
||||
Write-Host "Installing Android NDK $ndkVersionNightly2"
|
||||
$ndkFolderNightly = Install $ndkCachedUrlNightly2 $ndkZip $ndkChecksumNightly2 $ndkOfficialUrlNightly2
|
||||
$ndkFolderNightly = Install $ndkCachedUrlNightly2 $ndkZip $ndkChecksumNightly2 $ndkOfficialUrlNightly2 $ndkVersionNightly2
|
||||
Set-EnvironmentVariable "ANDROID_NDK_ROOT_NIGHTLY2" $ndkFolderNightly
|
||||
Write-Output "Android NDK = $ndkVersionNightly2" >> ~/versions.txt
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user