mirror of
git://code.qt.io/qt/qt5.git
synced 2025-12-25 01:16:14 +08:00
Compare commits
5 Commits
6.9.2
...
v6.9.0-rc1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4490f928ea | ||
|
|
6498e80ba0 | ||
|
|
42772064c5 | ||
|
|
9babd80169 | ||
|
|
da35483fb0 |
86
.gitmodules
vendored
86
.gitmodules
vendored
@@ -1,40 +1,40 @@
|
||||
[submodule "qtbase"]
|
||||
path = qtbase
|
||||
url = ../qtbase.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = essential
|
||||
[submodule "qtsvg"]
|
||||
depends = qtbase
|
||||
path = qtsvg
|
||||
url = ../qtsvg.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtdeclarative"]
|
||||
depends = qtbase
|
||||
recommends = qtimageformats qtshadertools qtsvg qtlanguageserver
|
||||
path = qtdeclarative
|
||||
url = ../qtdeclarative.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = essential
|
||||
[submodule "qtactiveqt"]
|
||||
depends = qtbase
|
||||
path = qtactiveqt
|
||||
url = ../qtactiveqt.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtmultimedia"]
|
||||
depends = qtbase qtshadertools
|
||||
recommends = qtdeclarative qtquick3d
|
||||
path = qtmultimedia
|
||||
url = ../qtmultimedia.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qttools"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtactiveqt
|
||||
path = qttools
|
||||
url = ../qttools.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = essential
|
||||
[submodule "qtxmlpatterns"]
|
||||
depends = qtbase
|
||||
@@ -47,7 +47,7 @@
|
||||
depends = qttools
|
||||
path = qttranslations
|
||||
url = ../qttranslations.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = essential
|
||||
priority = 30
|
||||
[submodule "qtdoc"]
|
||||
@@ -55,7 +55,7 @@
|
||||
recommends = qtmultimedia qtshadertools qtwebengine
|
||||
path = qtdoc
|
||||
url = ../qtdoc.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = essential
|
||||
priority = 40
|
||||
[submodule "qtrepotools"]
|
||||
@@ -68,7 +68,7 @@
|
||||
depends = qtbase
|
||||
path = qtqa
|
||||
url = ../qtqa.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = essential
|
||||
priority = 50
|
||||
[submodule "qtlocation"]
|
||||
@@ -76,21 +76,21 @@
|
||||
recommends = qtdeclarative
|
||||
path = qtlocation
|
||||
url = ../qtlocation.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = preview
|
||||
[submodule "qtpositioning"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtserialport
|
||||
path = qtpositioning
|
||||
url = ../qtpositioning.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtsensors"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtsensors
|
||||
url = ../qtsensors.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtsystems"]
|
||||
depends = qtbase
|
||||
@@ -117,61 +117,61 @@
|
||||
recommends = qtdeclarative
|
||||
path = qtconnectivity
|
||||
url = ../qtconnectivity.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtwayland"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwayland
|
||||
url = ../qtwayland.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qt3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtshadertools qtmultimedia
|
||||
path = qt3d
|
||||
url = ../qt3d.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = deprecated
|
||||
[submodule "qtimageformats"]
|
||||
depends = qtbase
|
||||
path = qtimageformats
|
||||
url = ../qtimageformats.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtserialbus"]
|
||||
depends = qtbase
|
||||
recommends = qtserialport
|
||||
path = qtserialbus
|
||||
url = ../qtserialbus.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtserialport"]
|
||||
depends = qtbase
|
||||
path = qtserialport
|
||||
url = ../qtserialport.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtwebsockets"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwebsockets
|
||||
url = ../qtwebsockets.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtwebchannel"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtwebsockets
|
||||
path = qtwebchannel
|
||||
url = ../qtwebchannel.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtwebengine"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtwebchannel qttools qtpositioning
|
||||
path = qtwebengine
|
||||
url = ../qtwebengine.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
priority = 10
|
||||
[submodule "qtcanvas3d"]
|
||||
@@ -185,28 +185,28 @@
|
||||
recommends = qtwebengine
|
||||
path = qtwebview
|
||||
url = ../qtwebview.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtcharts"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtcharts
|
||||
url = ../qtcharts.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtdatavis3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtdatavis3d
|
||||
url = ../qtdatavis3d.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtvirtualkeyboard"]
|
||||
depends = qtbase qtdeclarative qtsvg
|
||||
recommends = qtmultimedia
|
||||
path = qtvirtualkeyboard
|
||||
url = ../qtvirtualkeyboard.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtgamepad"]
|
||||
depends = qtbase
|
||||
@@ -219,27 +219,27 @@
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtscxml
|
||||
url = ../qtscxml.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtspeech"]
|
||||
depends = qtbase qtmultimedia
|
||||
recommends = qtdeclarative
|
||||
path = qtspeech
|
||||
url = ../qtspeech.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtnetworkauth"]
|
||||
depends = qtbase
|
||||
path = qtnetworkauth
|
||||
url = ../qtnetworkauth.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtremoteobjects"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtremoteobjects
|
||||
url = ../qtremoteobjects.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtwebglplugin"]
|
||||
depends = qtbase qtwebsockets
|
||||
@@ -252,88 +252,88 @@
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtlottie
|
||||
url = ../qtlottie.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtquicktimeline"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtquicktimeline
|
||||
url = ../qtquicktimeline
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtquick3d"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquicktimeline
|
||||
path = qtquick3d
|
||||
url = ../qtquick3d.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtshadertools"]
|
||||
depends = qtbase
|
||||
path = qtshadertools
|
||||
url = ../qtshadertools.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qt5compat"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qt5compat
|
||||
url = ../qt5compat.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = deprecated
|
||||
[submodule "qtcoap"]
|
||||
depends = qtbase
|
||||
path = qtcoap
|
||||
url = ../qtcoap.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtmqtt"]
|
||||
depends = qtbase qtdeclarative
|
||||
recommends = qtwebsockets
|
||||
path = qtmqtt
|
||||
url = ../qtmqtt.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtopcua"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtopcua
|
||||
url = ../qtopcua.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtlanguageserver"]
|
||||
depends = qtbase
|
||||
path = qtlanguageserver
|
||||
url = ../qtlanguageserver.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = preview
|
||||
[submodule "qthttpserver"]
|
||||
depends = qtbase
|
||||
recommends = qtwebsockets
|
||||
path = qthttpserver
|
||||
url = ../qthttpserver.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtquick3dphysics"]
|
||||
depends = qtbase qtdeclarative qtquick3d qtshadertools
|
||||
path = qtquick3dphysics
|
||||
url = ../qtquick3dphysics.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtgrpc"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtgrpc
|
||||
url = ../qtgrpc.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtquickeffectmaker"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquick3d
|
||||
path = qtquickeffectmaker
|
||||
url = ../qtquickeffectmaker.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
[submodule "qtgraphs"]
|
||||
depends = qtbase qtdeclarative qtquick3d
|
||||
path = qtgraphs
|
||||
url = ../qtgraphs.git
|
||||
branch = 6.9.2
|
||||
branch = 6.9.0
|
||||
status = addon
|
||||
|
||||
@@ -16,13 +16,9 @@ project(Qt
|
||||
VERSION "${QT_REPO_MODULE_VERSION}"
|
||||
DESCRIPTION "Qt Libraries"
|
||||
HOMEPAGE_URL "https://qt.io/"
|
||||
LANGUAGES CXX C
|
||||
LANGUAGES CXX C ASM
|
||||
)
|
||||
|
||||
if(UNIX AND NOT ANDROID)
|
||||
enable_language(ASM)
|
||||
endif()
|
||||
|
||||
qt_internal_top_level_setup_after_project()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
Copyright (c) <year> <owner>.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -1,451 +0,0 @@
|
||||
|
||||
GNU Free Documentation License
|
||||
Version 1.3, 3 November 2008
|
||||
|
||||
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
0. PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document "free" in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of "copyleft", which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals;
|
||||
it can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
|
||||
1. APPLICABILITY AND DEFINITIONS
|
||||
|
||||
This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The "Document", below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as "you". You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
A "Modified Version" of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
A "Secondary Section" is a named appendix or a front-matter section of
|
||||
the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall
|
||||
subject (or to related matters) and contains nothing that could fall
|
||||
directly within that overall subject. (Thus, if the Document is in
|
||||
part a textbook of mathematics, a Secondary Section may not explain
|
||||
any mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
The "Invariant Sections" are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
The "Cover Texts" are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may
|
||||
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
A "Transparent" copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not "Transparent" is called "Opaque".
|
||||
|
||||
Examples of suitable formats for Transparent copies include plain
|
||||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
||||
or XML using a publicly available DTD, and standard-conforming simple
|
||||
HTML, PostScript or PDF designed for human modification. Examples of
|
||||
transparent image formats include PNG, XCF and JPG. Opaque formats
|
||||
include proprietary formats that can be read and edited only by
|
||||
proprietary word processors, SGML or XML for which the DTD and/or
|
||||
processing tools are not generally available, and the
|
||||
machine-generated HTML, PostScript or PDF produced by some word
|
||||
processors for output purposes only.
|
||||
|
||||
The "Title Page" means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, "Title Page" means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
The "publisher" means any person or entity that distributes copies of
|
||||
the Document to the public.
|
||||
|
||||
A section "Entitled XYZ" means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as "Acknowledgements",
|
||||
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section "Entitled XYZ" according to this definition.
|
||||
|
||||
The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
2. VERBATIM COPYING
|
||||
|
||||
You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no
|
||||
other conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
|
||||
3. COPYING IN QUANTITY
|
||||
|
||||
If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify
|
||||
you as the publisher of these copies. The front cover must present
|
||||
the full title with all words of the title equally prominent and
|
||||
visible. You may add other material on the covers in addition.
|
||||
Copying with changes limited to the covers, as long as they preserve
|
||||
the title of the Document and satisfy these conditions, can be treated
|
||||
as verbatim copying in other respects.
|
||||
|
||||
If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to
|
||||
give them a chance to provide you with an updated version of the
|
||||
Document.
|
||||
|
||||
|
||||
4. MODIFICATIONS
|
||||
|
||||
You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
A. Use in the Title Page (and on the covers, if any) a title distinct
|
||||
from that of the Document, and from those of previous versions
|
||||
(which should, if there were any, be listed in the History section
|
||||
of the Document). You may use the same title as a previous version
|
||||
if the original publisher of that version gives permission.
|
||||
B. List on the Title Page, as authors, one or more persons or entities
|
||||
responsible for authorship of the modifications in the Modified
|
||||
Version, together with at least five of the principal authors of the
|
||||
Document (all of its principal authors, if it has fewer than five),
|
||||
unless they release you from this requirement.
|
||||
C. State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
D. Preserve all the copyright notices of the Document.
|
||||
E. Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
F. Include, immediately after the copyright notices, a license notice
|
||||
giving the public permission to use the Modified Version under the
|
||||
terms of this License, in the form shown in the Addendum below.
|
||||
G. Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
H. Include an unaltered copy of this License.
|
||||
I. Preserve the section Entitled "History", Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled "History" in the Document, create one
|
||||
stating the title, year, authors, and publisher of the Document as
|
||||
given on its Title Page, then add an item describing the Modified
|
||||
Version as stated in the previous sentence.
|
||||
J. Preserve the network location, if any, given in the Document for
|
||||
public access to a Transparent copy of the Document, and likewise
|
||||
the network locations given in the Document for previous versions
|
||||
it was based on. These may be placed in the "History" section.
|
||||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.
|
||||
K. For any section Entitled "Acknowledgements" or "Dedications",
|
||||
Preserve the Title of the section, and preserve in the section all
|
||||
the substance and tone of each of the contributor acknowledgements
|
||||
and/or dedications given therein.
|
||||
L. Preserve all the Invariant Sections of the Document,
|
||||
unaltered in their text and in their titles. Section numbers
|
||||
or the equivalent are not considered part of the section titles.
|
||||
M. Delete any section Entitled "Endorsements". Such a section
|
||||
may not be included in the Modified Version.
|
||||
N. Do not retitle any existing section to be Entitled "Endorsements"
|
||||
or to conflict in title with any Invariant Section.
|
||||
O. Preserve any Warranty Disclaimers.
|
||||
|
||||
If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled "Endorsements", provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties--for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
|
||||
5. COMBINING DOCUMENTS
|
||||
|
||||
You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
In the combination, you must combine any sections Entitled "History"
|
||||
in the various original documents, forming one section Entitled
|
||||
"History"; likewise combine any sections Entitled "Acknowledgements",
|
||||
and any sections Entitled "Dedications". You must delete all sections
|
||||
Entitled "Endorsements".
|
||||
|
||||
|
||||
6. COLLECTIONS OF DOCUMENTS
|
||||
|
||||
You may make a collection consisting of the Document and other
|
||||
documents released under this License, and replace the individual
|
||||
copies of this License in the various documents with a single copy
|
||||
that is included in the collection, provided that you follow the rules
|
||||
of this License for verbatim copying of each of the documents in all
|
||||
other respects.
|
||||
|
||||
You may extract a single document from such a collection, and
|
||||
distribute it individually under this License, provided you insert a
|
||||
copy of this License into the extracted document, and follow this
|
||||
License in all other respects regarding verbatim copying of that
|
||||
document.
|
||||
|
||||
|
||||
7. AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an "aggregate" if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included in an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
|
||||
8. TRANSLATION
|
||||
|
||||
Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled "Acknowledgements",
|
||||
"Dedications", or "History", the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
|
||||
9. TERMINATION
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
|
||||
|
||||
10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
The Free Software Foundation may publish new, revised versions of the
|
||||
GNU Free Documentation License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in
|
||||
detail to address new problems or concerns. See
|
||||
https://www.gnu.org/licenses/.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License "or any later version" applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
|
||||
11. RELICENSING
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
|
||||
means any set of copyrightable works thus published on the MMC site.
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or in
|
||||
part, as part of another Document.
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole or
|
||||
in part into the MMC, (1) had no cover texts or invariant sections, and
|
||||
(2) were thus incorporated prior to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
|
||||
|
||||
ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
Copyright (c) YEAR YOUR NAME.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the "with...Texts." line with this:
|
||||
|
||||
with the Invariant Sections being LIST THEIR TITLES, with the
|
||||
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
39
REUSE.toml
39
REUSE.toml
@@ -1,39 +0,0 @@
|
||||
version = 1
|
||||
|
||||
[[annotations]]
|
||||
path = ["tests/**"]
|
||||
comment = "tests"
|
||||
precedence = "closest"
|
||||
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GPL-3.0-only"
|
||||
|
||||
[[annotations]]
|
||||
path = ["coin/**", "cmake/**", "**.pro", "**.qrc", "**CMakeLists.txt", ".cmake.conf", "**.yaml",
|
||||
"coin/axivion/ci_config_linux.json",
|
||||
"**.cfg", "**.plist", "**.pri", "**.prf", "configure.json"]
|
||||
precedence = "closest"
|
||||
comment = "build system"
|
||||
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
SPDX-License-Identifier = "BSD-3-Clause"
|
||||
|
||||
[[annotations]]
|
||||
path = [".tag", "**/.gitattributes", "**.gitignore",
|
||||
".gitmodules"]
|
||||
precedence = "closest"
|
||||
comment = "version control system. Licensed as build system"
|
||||
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
SPDX-License-Identifier = "BSD-3-Clause"
|
||||
|
||||
[[annotations]]
|
||||
path = ["**README*", "CONTRIBUTING.md", ".commit-template", ".github/pull_request_template.md"]
|
||||
comment = "documentation"
|
||||
precedence = "closest"
|
||||
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"
|
||||
|
||||
[[annotations]]
|
||||
path = ["**.toml", "licenseRule.json"]
|
||||
comment = "documentation"
|
||||
precedence = "override"
|
||||
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"
|
||||
@@ -1,5 +1,7 @@
|
||||
# Copyright (C) 2016 Olivier Goffart <ogoffart@woboq.com>
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
# You may use this file under the terms of the 3-clause BSD license.
|
||||
# See the file LICENSE from this package for details.
|
||||
|
||||
# This is the clang-format configuration style to be used by Qt,
|
||||
# based on the rules from https://wiki.qt.io/Qt_Coding_Style and
|
||||
|
||||
136
cmake/3rdparty/cmake/Copyright.txt
vendored
Normal file
136
cmake/3rdparty/cmake/Copyright.txt
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
CMake - Cross Platform Makefile Generator
|
||||
Copyright 2000-2024 Kitware, Inc. and Contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Kitware, Inc. nor the names of Contributors
|
||||
may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
The following individuals and institutions are among the Contributors:
|
||||
|
||||
* Aaron C. Meadows <cmake@shadowguarddev.com>
|
||||
* Adriaan de Groot <groot@kde.org>
|
||||
* Aleksey Avdeev <solo@altlinux.ru>
|
||||
* Alexander Neundorf <neundorf@kde.org>
|
||||
* Alexander Smorkalov <alexander.smorkalov@itseez.com>
|
||||
* Alexey Sokolov <sokolov@google.com>
|
||||
* Alex Merry <alex.merry@kde.org>
|
||||
* Alex Turbov <i.zaufi@gmail.com>
|
||||
* Andreas Pakulat <apaku@gmx.de>
|
||||
* Andreas Schneider <asn@cryptomilk.org>
|
||||
* André Rigland Brodtkorb <Andre.Brodtkorb@ifi.uio.no>
|
||||
* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
|
||||
* Benjamin Eikel
|
||||
* Bjoern Ricks <bjoern.ricks@gmail.com>
|
||||
* Brad Hards <bradh@kde.org>
|
||||
* Christopher Harvey
|
||||
* Christoph Grüninger <foss@grueninger.de>
|
||||
* Clement Creusot <creusot@cs.york.ac.uk>
|
||||
* Daniel Blezek <blezek@gmail.com>
|
||||
* Daniel Pfeifer <daniel@pfeifer-mail.de>
|
||||
* Dawid Wróbel <me@dawidwrobel.com>
|
||||
* Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
|
||||
* Eran Ifrah <eran.ifrah@gmail.com>
|
||||
* Esben Mose Hansen, Ange Optimization ApS
|
||||
* Geoffrey Viola <geoffrey.viola@asirobots.com>
|
||||
* Google Inc
|
||||
* Gregor Jasny
|
||||
* Helio Chissini de Castro <helio@kde.org>
|
||||
* Ilya Lavrenov <ilya.lavrenov@itseez.com>
|
||||
* Insight Software Consortium <insightsoftwareconsortium.org>
|
||||
* Intel Corporation <www.intel.com>
|
||||
* Jan Woetzel
|
||||
* Jordan Williams <jordan@jwillikers.com>
|
||||
* Julien Schueller
|
||||
* Kelly Thompson <kgt@lanl.gov>
|
||||
* Konstantin Podsvirov <konstantin@podsvirov.pro>
|
||||
* Laurent Montel <montel@kde.org>
|
||||
* Mario Bensi <mbensi@ipsquad.net>
|
||||
* Martin Gräßlin <mgraesslin@kde.org>
|
||||
* Mathieu Malaterre <mathieu.malaterre@gmail.com>
|
||||
* Matthaeus G. Chajdas
|
||||
* Matthias Kretz <kretz@kde.org>
|
||||
* Matthias Maennich <matthias@maennich.net>
|
||||
* Michael Hirsch, Ph.D. <www.scivision.co>
|
||||
* Michael Stürmer
|
||||
* Miguel A. Figueroa-Villanueva
|
||||
* Mike Durso <rbprogrammer@gmail.com>
|
||||
* Mike Jackson
|
||||
* Mike McQuaid <mike@mikemcquaid.com>
|
||||
* Nicolas Bock <nicolasbock@gmail.com>
|
||||
* Nicolas Despres <nicolas.despres@gmail.com>
|
||||
* Nikita Krupen'ko <krnekit@gmail.com>
|
||||
* NVIDIA Corporation <www.nvidia.com>
|
||||
* OpenGamma Ltd. <opengamma.com>
|
||||
* Patrick Stotko <stotko@cs.uni-bonn.de>
|
||||
* Per Øyvind Karlsen <peroyvind@mandriva.org>
|
||||
* Peter Collingbourne <peter@pcc.me.uk>
|
||||
* Petr Gotthard <gotthard@honeywell.com>
|
||||
* Philip Lowman <philip@yhbt.com>
|
||||
* Philippe Proulx <pproulx@efficios.com>
|
||||
* Raffi Enficiaud, Max Planck Society
|
||||
* Raumfeld <raumfeld.com>
|
||||
* Roger Leigh <rleigh@codelibre.net>
|
||||
* Rolf Eike Beer <eike@sf-mail.de>
|
||||
* Roman Donchenko <roman.donchenko@itseez.com>
|
||||
* Roman Kharitonov <roman.kharitonov@itseez.com>
|
||||
* Ruslan Baratov
|
||||
* Sebastian Holtermann <sebholt@xwmw.org>
|
||||
* Stephen Kelly <steveire@gmail.com>
|
||||
* Sylvain Joubert <joubert.sy@gmail.com>
|
||||
* The Qt Company Ltd.
|
||||
* Thomas Sondergaard <ts@medical-insight.com>
|
||||
* Tobias Hunger <tobias.hunger@qt.io>
|
||||
* Todd Gamblin <tgamblin@llnl.gov>
|
||||
* Tristan Carel
|
||||
* University of Dundee
|
||||
* Vadim Zhukov
|
||||
* Will Dicharry <wdicharry@stellarscience.com>
|
||||
|
||||
See version control history for details of individual contributions.
|
||||
|
||||
The above copyright and license notice applies to distributions of
|
||||
CMake in source and binary form. Third-party software packages supplied
|
||||
with CMake under compatible licenses provide their own copyright notices
|
||||
documented in corresponding subdirectories or source files.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
CMake was initially developed by Kitware with the following sponsorship:
|
||||
|
||||
* National Library of Medicine at the National Institutes of Health
|
||||
as part of the Insight Segmentation and Registration Toolkit (ITK).
|
||||
|
||||
* US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
|
||||
Visualization Initiative.
|
||||
|
||||
* National Alliance for Medical Image Computing (NAMIC) is funded by the
|
||||
National Institutes of Health through the NIH Roadmap for Medical Research,
|
||||
Grant U54 EB005149.
|
||||
|
||||
* Kitware, Inc.
|
||||
349
cmake/3rdparty/cmake/QtIRRunCMake.cmake
vendored
Normal file
349
cmake/3rdparty/cmake/QtIRRunCMake.cmake
vendored
Normal file
@@ -0,0 +1,349 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
#
|
||||
# Original file location was Tests/RunCMake/RunCMake.cmake
|
||||
|
||||
foreach(
|
||||
arg
|
||||
IN ITEMS
|
||||
RunCMake_GENERATOR
|
||||
RunCMake_SOURCE_DIR
|
||||
RunCMake_BINARY_DIR
|
||||
)
|
||||
if(NOT DEFINED ${arg})
|
||||
message(FATAL_ERROR "${arg} not given!")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
function(run_cmake test)
|
||||
if(DEFINED ENV{RunCMake_TEST_FILTER})
|
||||
set(test_and_variant "${test}${RunCMake_TEST_VARIANT_DESCRIPTION}")
|
||||
if(NOT test_and_variant MATCHES "$ENV{RunCMake_TEST_FILTER}")
|
||||
return()
|
||||
endif()
|
||||
unset(test_and_variant)
|
||||
endif()
|
||||
|
||||
set(top_src "${RunCMake_SOURCE_DIR}")
|
||||
set(top_bin "${RunCMake_BINARY_DIR}")
|
||||
if(EXISTS ${top_src}/${test}-result.txt)
|
||||
file(READ ${top_src}/${test}-result.txt expect_result)
|
||||
string(REGEX REPLACE "\n+$" "" expect_result "${expect_result}")
|
||||
elseif(DEFINED RunCMake_TEST_EXPECT_RESULT)
|
||||
set(expect_result "${RunCMake_TEST_EXPECT_RESULT}")
|
||||
else()
|
||||
set(expect_result 0)
|
||||
endif()
|
||||
|
||||
string(TOLOWER ${CMAKE_HOST_SYSTEM_NAME} platform_name)
|
||||
#remove all additional bits from cygwin/msys name
|
||||
if(platform_name MATCHES cygwin)
|
||||
set(platform_name cygwin)
|
||||
endif()
|
||||
if(platform_name MATCHES msys)
|
||||
set(platform_name msys)
|
||||
endif()
|
||||
|
||||
foreach(o IN ITEMS stdout stderr config)
|
||||
if(RunCMake-${o}-file AND EXISTS ${top_src}/${RunCMake-${o}-file})
|
||||
file(READ ${top_src}/${RunCMake-${o}-file} expect_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
|
||||
elseif(EXISTS ${top_src}/${test}-${o}-${platform_name}.txt)
|
||||
file(READ ${top_src}/${test}-${o}-${platform_name}.txt expect_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
|
||||
elseif(EXISTS ${top_src}/${test}-${o}.txt)
|
||||
file(READ ${top_src}/${test}-${o}.txt expect_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
|
||||
elseif(DEFINED RunCMake_TEST_EXPECT_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${RunCMake_TEST_EXPECT_${o}}")
|
||||
else()
|
||||
unset(expect_${o})
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(o IN ITEMS stdout stderr config)
|
||||
if(DEFINED RunCMake_TEST_NOT_EXPECT_${o})
|
||||
string(REGEX REPLACE "\n+$" "" not_expect_${o} "${RunCMake_TEST_NOT_EXPECT_${o}}")
|
||||
endif()
|
||||
endforeach()
|
||||
if (NOT expect_stderr)
|
||||
if (NOT RunCMake_DEFAULT_stderr)
|
||||
set(RunCMake_DEFAULT_stderr "^$")
|
||||
endif()
|
||||
set(expect_stderr ${RunCMake_DEFAULT_stderr})
|
||||
endif()
|
||||
|
||||
if (NOT RunCMake_TEST_SOURCE_DIR)
|
||||
set(RunCMake_TEST_SOURCE_DIR "${top_src}")
|
||||
endif()
|
||||
if(NOT RunCMake_TEST_BINARY_DIR)
|
||||
set(RunCMake_TEST_BINARY_DIR "${top_bin}/${test}-build")
|
||||
endif()
|
||||
if(NOT RunCMake_TEST_NO_CLEAN)
|
||||
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
||||
endif()
|
||||
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
||||
if(RunCMake-prep-file AND EXISTS ${top_src}/${RunCMake-prep-file})
|
||||
include(${top_src}/${RunCMake-prep-file})
|
||||
else()
|
||||
include(${top_src}/${test}-prep.cmake OPTIONAL)
|
||||
endif()
|
||||
if(RunCMake_TEST_OUTPUT_MERGE)
|
||||
set(actual_stderr_var actual_stdout)
|
||||
set(actual_stderr "")
|
||||
else()
|
||||
set(actual_stderr_var actual_stderr)
|
||||
endif()
|
||||
if(DEFINED RunCMake_TEST_TIMEOUT)
|
||||
set(maybe_timeout TIMEOUT ${RunCMake_TEST_TIMEOUT})
|
||||
else()
|
||||
set(maybe_timeout "")
|
||||
endif()
|
||||
if(RunCMake-stdin-file AND EXISTS ${top_src}/${RunCMake-stdin-file})
|
||||
set(maybe_input_file INPUT_FILE ${top_src}/${RunCMake-stdin-file})
|
||||
elseif(EXISTS ${top_src}/${test}-stdin.txt)
|
||||
set(maybe_input_file INPUT_FILE ${top_src}/${test}-stdin.txt)
|
||||
else()
|
||||
set(maybe_input_file "")
|
||||
endif()
|
||||
if(NOT RunCMake_TEST_COMMAND)
|
||||
if(NOT DEFINED RunCMake_TEST_OPTIONS)
|
||||
set(RunCMake_TEST_OPTIONS "")
|
||||
endif()
|
||||
if(APPLE)
|
||||
list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW)
|
||||
endif()
|
||||
if(RunCMake_TEST_LCC AND NOT RunCMake_TEST_NO_CMP0129)
|
||||
list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0129=NEW)
|
||||
endif()
|
||||
if(RunCMake_MAKE_PROGRAM)
|
||||
list(APPEND RunCMake_TEST_OPTIONS "-DCMAKE_MAKE_PROGRAM=${RunCMake_MAKE_PROGRAM}")
|
||||
endif()
|
||||
set(RunCMake_TEST_COMMAND ${CMAKE_COMMAND})
|
||||
if(NOT RunCMake_TEST_NO_SOURCE_DIR)
|
||||
list(APPEND RunCMake_TEST_COMMAND "${RunCMake_TEST_SOURCE_DIR}")
|
||||
endif()
|
||||
list(APPEND RunCMake_TEST_COMMAND -G "${RunCMake_GENERATOR}")
|
||||
if(RunCMake_GENERATOR_PLATFORM)
|
||||
list(APPEND RunCMake_TEST_COMMAND -A "${RunCMake_GENERATOR_PLATFORM}")
|
||||
endif()
|
||||
if(RunCMake_GENERATOR_TOOLSET)
|
||||
list(APPEND RunCMake_TEST_COMMAND -T "${RunCMake_GENERATOR_TOOLSET}")
|
||||
endif()
|
||||
if(RunCMake_GENERATOR_INSTANCE)
|
||||
list(APPEND RunCMake_TEST_COMMAND "-DCMAKE_GENERATOR_INSTANCE=${RunCMake_GENERATOR_INSTANCE}")
|
||||
endif()
|
||||
list(APPEND RunCMake_TEST_COMMAND
|
||||
-DRunCMake_TEST=${test}
|
||||
--no-warn-unused-cli
|
||||
)
|
||||
else()
|
||||
set(RunCMake_TEST_OPTIONS "")
|
||||
endif()
|
||||
if(NOT DEFINED RunCMake_TEST_RAW_ARGS)
|
||||
set(RunCMake_TEST_RAW_ARGS "")
|
||||
endif()
|
||||
if(NOT RunCMake_TEST_COMMAND_WORKING_DIRECTORY)
|
||||
set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
||||
endif()
|
||||
string(CONCAT _code [[execute_process(
|
||||
COMMAND ${RunCMake_TEST_COMMAND}
|
||||
${RunCMake_TEST_OPTIONS}
|
||||
]] "${RunCMake_TEST_RAW_ARGS}\n" [[
|
||||
WORKING_DIRECTORY "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}"
|
||||
OUTPUT_VARIABLE actual_stdout
|
||||
ERROR_VARIABLE ${actual_stderr_var}
|
||||
RESULT_VARIABLE actual_result
|
||||
ENCODING UTF8
|
||||
${maybe_timeout}
|
||||
${maybe_input_file}
|
||||
)]])
|
||||
if(DEFINED ENV{PWD})
|
||||
set(old_pwd "$ENV{PWD}")
|
||||
else()
|
||||
set(old_pwd)
|
||||
endif()
|
||||
# Emulate a shell using this directory.
|
||||
set(ENV{PWD} "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}")
|
||||
cmake_language(EVAL CODE "${_code}")
|
||||
if(DEFINED old_pwd)
|
||||
set(ENV{PWD} "${old_pwd}")
|
||||
else()
|
||||
set(ENV{PWD})
|
||||
endif()
|
||||
set(msg "")
|
||||
if(NOT "${actual_result}" MATCHES "${expect_result}")
|
||||
string(APPEND msg "Result is [${actual_result}], not [${expect_result}].\n")
|
||||
endif()
|
||||
set(config_file "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}/CMakeFiles/CMakeConfigureLog.yaml")
|
||||
if(EXISTS "${config_file}")
|
||||
file(READ "${config_file}" actual_config)
|
||||
else()
|
||||
set(actual_config "")
|
||||
endif()
|
||||
|
||||
# Special case: remove ninja no-op line from stderr, but not stdout.
|
||||
# Test cases that look for it should use RunCMake_TEST_OUTPUT_MERGE.
|
||||
string(REGEX REPLACE "(^|\r?\n)ninja: no work to do\\.\r?\n" "\\1" actual_stderr "${actual_stderr}")
|
||||
|
||||
# Remove incidental content from both stdout and stderr.
|
||||
string(CONCAT ignore_line_regex
|
||||
"(^|\n)((==[0-9]+=="
|
||||
"|BullseyeCoverage"
|
||||
"|[a-z]+\\([0-9]+\\) malloc:"
|
||||
"|clang[^:]*: warning: the object size sanitizer has no effect at -O0, but is explicitly enabled:"
|
||||
"|flang-new: warning: argument unused during compilation: .-flang-experimental-exec."
|
||||
"|icp?x: remark: Note that use of .-g. without any optimization-level option will turn off most compiler optimizations"
|
||||
"|ifx: remark #10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations"
|
||||
"|lld-link: warning: procedure symbol record for .* refers to PDB item index [0-9A-Fa-fx]+ which is not a valid function ID record"
|
||||
"|Error kstat returned"
|
||||
"|Hit xcodebuild bug"
|
||||
"|Recompacting log\\.\\.\\."
|
||||
|
||||
"|LICENSE WARNING:"
|
||||
"|Your license to use PGI[^\n]*expired"
|
||||
"|Please obtain a new version at"
|
||||
"|contact PGI Sales at"
|
||||
"|ic(p?c|l): remark #10441: The Intel\\(R\\) C\\+\\+ Compiler Classic \\(ICC\\) is deprecated"
|
||||
|
||||
"|[^\n]*install_name_tool: warning: changes being made to the file will invalidate the code signature in:"
|
||||
"|[^\n]*(createItemModels|_NSMainThread|Please file a bug at)"
|
||||
"|[^\n]*xcodebuild[^\n]*DVTAssertions: Warning"
|
||||
"|[^\n]*xcodebuild[^\n]*DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default"
|
||||
"|[^\n]*xcodebuild[^\n]*DVTPlugInManager"
|
||||
"|[^\n]*xcodebuild[^\n]*DVTSDK: Warning: SDK path collision for path"
|
||||
"|[^\n]*xcodebuild[^\n]*Requested but did not find extension point with identifier"
|
||||
"|[^\n]*xcodebuild[^\n]*nil host used in call to allows.*HTTPSCertificateForHost"
|
||||
"|[^\n]*xcodebuild[^\n]*warning: file type[^\n]*is based on missing file type"
|
||||
"|[^\n]*objc[^\n]*: Class [^\n]* One of the two will be used. Which one is undefined."
|
||||
"|[^\n]*is a member of multiple groups"
|
||||
"|[^\n]*offset in archive not a multiple of 8"
|
||||
"|[^\n]*from Time Machine by path"
|
||||
"|[^\n]*Bullseye Testing Technology"
|
||||
${RunCMake_TEST_EXTRA_IGNORE_LINE_REGEX}
|
||||
")[^\n]*\n)+"
|
||||
)
|
||||
if(RunCMake_IGNORE_POLICY_VERSION_DEPRECATION)
|
||||
string(REGEX REPLACE [[
|
||||
^CMake Deprecation Warning at [^
|
||||
]*CMakeLists.txt:1 \(cmake_minimum_required\):
|
||||
Compatibility with CMake < 3\.5 will be removed from a future version of
|
||||
CMake.
|
||||
|
||||
Update the VERSION argument <min> value or use a \.\.\.<max> suffix to tell
|
||||
CMake that the project does not need compatibility with older versions\.
|
||||
+
|
||||
]] "" actual_stderr "${actual_stderr}")
|
||||
endif()
|
||||
foreach(o IN ITEMS stdout stderr config)
|
||||
string(REGEX REPLACE "\r\n" "\n" actual_${o} "${actual_${o}}")
|
||||
string(REGEX REPLACE "${ignore_line_regex}" "\\1" actual_${o} "${actual_${o}}")
|
||||
string(REGEX REPLACE "\n+$" "" actual_${o} "${actual_${o}}")
|
||||
if(DEFINED expect_${o})
|
||||
if(NOT "${actual_${o}}" MATCHES "${expect_${o}}")
|
||||
string(APPEND msg "${o} does not match that expected.\n")
|
||||
endif()
|
||||
endif()
|
||||
if(DEFINED not_expect_${o})
|
||||
if("${actual_${o}}" MATCHES "${not_expect_${o}}")
|
||||
string(APPEND msg "${o} matches that not expected.\n")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
unset(RunCMake_TEST_FAILED)
|
||||
if(RunCMake-check-file AND EXISTS ${top_src}/${RunCMake-check-file})
|
||||
include(${top_src}/${RunCMake-check-file})
|
||||
else()
|
||||
include(${top_src}/${test}-check.cmake OPTIONAL)
|
||||
endif()
|
||||
if(RunCMake_TEST_FAILED)
|
||||
set(msg "${RunCMake_TEST_FAILED}\n${msg}")
|
||||
endif()
|
||||
if(msg)
|
||||
string(REPLACE ";" "\" \"" command "\"${RunCMake_TEST_COMMAND}\"")
|
||||
if(RunCMake_TEST_OPTIONS)
|
||||
string(REPLACE ";" "\" \"" options "\"${RunCMake_TEST_OPTIONS}\"")
|
||||
string(APPEND command " ${options}")
|
||||
endif()
|
||||
if(RunCMake_TEST_RAW_ARGS)
|
||||
string(APPEND command " ${RunCMake_TEST_RAW_ARGS}")
|
||||
endif()
|
||||
string(APPEND msg "Command was:\n command> ${command}\n")
|
||||
endif()
|
||||
if(msg)
|
||||
foreach(o IN ITEMS stdout stderr config)
|
||||
if(DEFINED expect_${o})
|
||||
string(REGEX REPLACE "\n" "\n expect-${o}> " expect_${o} " expect-${o}> ${expect_${o}}")
|
||||
string(APPEND msg "Expected ${o} to match:\n${expect_${o}}\n")
|
||||
endif()
|
||||
if(NOT o STREQUAL "config" OR DEFINED expect_${o})
|
||||
string(REGEX REPLACE "\n" "\n actual-${o}> " actual_${o} " actual-${o}> ${actual_${o}}")
|
||||
string(APPEND msg "Actual ${o}:\n${actual_${o}}\n")
|
||||
endif()
|
||||
endforeach()
|
||||
message(SEND_ERROR "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - FAILED:\n${msg}")
|
||||
else()
|
||||
message(STATUS "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - PASSED")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(run_cmake_command test)
|
||||
set(RunCMake_TEST_COMMAND "${ARGN}")
|
||||
run_cmake(${test})
|
||||
endfunction()
|
||||
|
||||
function(run_cmake_script test)
|
||||
set(RunCMake_TEST_COMMAND ${CMAKE_COMMAND} ${ARGN} -P ${RunCMake_SOURCE_DIR}/${test}.cmake)
|
||||
run_cmake(${test})
|
||||
endfunction()
|
||||
|
||||
function(run_cmake_with_options test)
|
||||
set(RunCMake_TEST_OPTIONS "${ARGN}")
|
||||
run_cmake(${test})
|
||||
endfunction()
|
||||
|
||||
function(run_cmake_with_raw_args test args)
|
||||
set(RunCMake_TEST_RAW_ARGS "${args}")
|
||||
run_cmake(${test})
|
||||
endfunction()
|
||||
|
||||
function(ensure_files_match expected_file actual_file)
|
||||
if(NOT EXISTS "${expected_file}")
|
||||
message(FATAL_ERROR "Expected file does not exist:\n ${expected_file}")
|
||||
endif()
|
||||
if(NOT EXISTS "${actual_file}")
|
||||
message(FATAL_ERROR "Actual file does not exist:\n ${actual_file}")
|
||||
endif()
|
||||
file(READ "${expected_file}" expected_file_content)
|
||||
file(READ "${actual_file}" actual_file_content)
|
||||
if(NOT "${expected_file_content}" STREQUAL "${actual_file_content}")
|
||||
message(FATAL_ERROR "Actual file content does not match expected:\n
|
||||
\n
|
||||
expected file: ${expected_file}\n
|
||||
expected content:\n
|
||||
${expected_file_content}\n
|
||||
\n
|
||||
actual file: ${actual_file}\n
|
||||
actual content:\n
|
||||
${actual_file_content}\n
|
||||
")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Get the user id on unix if possible.
|
||||
function(get_unix_uid var)
|
||||
set("${var}" "" PARENT_SCOPE)
|
||||
if(UNIX)
|
||||
set(ID "id")
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND EXISTS "/usr/xpg4/bin/id")
|
||||
set (ID "/usr/xpg4/bin/id")
|
||||
endif()
|
||||
execute_process(COMMAND ${ID} -u $ENV{USER} OUTPUT_VARIABLE uid ERROR_QUIET
|
||||
RESULT_VARIABLE status OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(status EQUAL 0)
|
||||
set("${var}" "${uid}" PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Protect RunCMake tests from calling environment.
|
||||
unset(ENV{MAKEFLAGS})
|
||||
39
cmake/3rdparty/cmake/QtIRTestHelpers.cmake
vendored
Normal file
39
cmake/3rdparty/cmake/QtIRTestHelpers.cmake
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
#
|
||||
# Original file location was Tests/RunCMake/CMakeLists.txt
|
||||
|
||||
macro(add_RunCMake_test test)
|
||||
set(TEST_ARGS ${ARGN})
|
||||
if ("${ARGV1}" STREQUAL "TEST_DIR")
|
||||
if ("${ARGV2}" STREQUAL "")
|
||||
message(FATAL_ERROR "Invalid args")
|
||||
endif()
|
||||
set(Test_Dir ${ARGV2})
|
||||
list(REMOVE_AT TEST_ARGS 0)
|
||||
list(REMOVE_AT TEST_ARGS 0)
|
||||
else()
|
||||
set(Test_Dir ${test})
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "LCC")
|
||||
list(APPEND TEST_ARGS -DRunCMake_TEST_LCC=1)
|
||||
endif()
|
||||
add_test(NAME RunCMake.${test} COMMAND ${CMAKE_CMAKE_COMMAND}
|
||||
-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-DRunCMake_GENERATOR_IS_MULTI_CONFIG=${_isMultiConfig}
|
||||
-DRunCMake_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DRunCMake_GENERATOR_INSTANCE=${CMAKE_GENERATOR_INSTANCE}
|
||||
-DRunCMake_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
-DRunCMake_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET}
|
||||
-DRunCMake_MAKE_PROGRAM=${CMake_TEST_EXPLICIT_MAKE_PROGRAM}
|
||||
-DRunCMake_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${Test_Dir}
|
||||
-DRunCMake_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}/${test}
|
||||
${${test}_ARGS}
|
||||
${TEST_ARGS}
|
||||
-P "${CMAKE_CURRENT_SOURCE_DIR}/${Test_Dir}/RunCMakeTest.cmake"
|
||||
)
|
||||
set_tests_properties("RunCMake.${test}" PROPERTIES LABELS "CMake;run")
|
||||
if(${test} MATCHES ^CMP)
|
||||
set_property(TEST "RunCMake.${test}" APPEND PROPERTY LABELS "policy")
|
||||
endif()
|
||||
endmacro()
|
||||
16
cmake/3rdparty/cmake/qt_attribution.json
vendored
Normal file
16
cmake/3rdparty/cmake/qt_attribution.json
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"Id": "cmake-test-modules",
|
||||
"Name": "cmake-test-modules",
|
||||
"QDocModule": "qtcore",
|
||||
"QtUsage": "Used as part of the build system.",
|
||||
"QtParts" : [ "tests" ],
|
||||
|
||||
"Description": "CMake helpers for running CMake tests.",
|
||||
"Homepage": "https://cmake.org/",
|
||||
"Version": "3.29.0",
|
||||
|
||||
"License": "BSD 3-Clause \"New\" or \"Revised\" License",
|
||||
"LicenseId": "BSD-3-Clause",
|
||||
"LicenseFile": "Copyright.txt",
|
||||
"Copyright": "Copyright © 2000-2024 Kitware, Inc. and Contributors"
|
||||
}
|
||||
@@ -8,6 +8,7 @@ macro(qt_ir_include_all_helpers)
|
||||
include(QtIROptionsHelpers)
|
||||
include(QtIRParsingHelpers)
|
||||
include(QtIRProcessHelpers)
|
||||
include(QtIRTestHelpers)
|
||||
include(QtTopLevelHelpers)
|
||||
endmacro()
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ cmake_minimum_required(VERSION 3.16)
|
||||
macro(qt_ir_setup_include_paths)
|
||||
list(APPEND CMAKE_MODULE_PATH
|
||||
"${CMAKE_CURRENT_LIST_DIR}"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake"
|
||||
)
|
||||
include(QtIRHelpers)
|
||||
endmacro()
|
||||
|
||||
@@ -7,6 +7,7 @@ cmake_minimum_required(VERSION 3.16)
|
||||
macro(qt_tl_setup_include_paths)
|
||||
list(APPEND CMAKE_MODULE_PATH
|
||||
"${CMAKE_CURRENT_LIST_DIR}"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake"
|
||||
)
|
||||
include(QtTopLevelHelpers)
|
||||
endmacro()
|
||||
|
||||
@@ -25,6 +25,19 @@ Configurations:
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON -DQT_DEPLOY_FFMPEG=TRUE'
|
||||
]
|
||||
# Test on Ubuntu 22.04 X11
|
||||
-
|
||||
Id: 'ubuntu-22.04-developer-build-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'ubuntu-22.04-developer-build'
|
||||
-
|
||||
Id: 'ubuntu-22.04-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
# Build on Ubuntu 24.04 ARM64 Wayland and test on offscreen and Wayland later
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64-developer-build'
|
||||
@@ -86,13 +99,13 @@ Configurations:
|
||||
Id: 'ubuntu-24.04-x64-developer-build-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Features: ['Sccache', 'TestOnly', 'InsignificantTests']
|
||||
Platform dependency: 'ubuntu-24.04-x64-developer-build'
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Features: ['Sccache', 'TestOnly', 'InsignificantTests']
|
||||
Platform dependency: 'ubuntu-24.04-x64'
|
||||
-
|
||||
Id: 'opensuse-15.6-developer-build'
|
||||
@@ -105,9 +118,19 @@ Configurations:
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE'
|
||||
]
|
||||
-
|
||||
Id: 'sles-15_sp5-static'
|
||||
Template: 'qtci-linux-SLES-15_SP5-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
|
||||
]
|
||||
-
|
||||
Id: 'sles-15_sp6-static'
|
||||
Template: 'qtci-linux-SLES-15_SP6-x86_64-52'
|
||||
Template: 'qtci-linux-SLES-15_SP6-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
@@ -150,27 +173,15 @@ Configurations:
|
||||
'NON_QTBASE_CMAKE_ARGS= -DFEATURE_clangcpp=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_23h2-arm64-msvc2022'
|
||||
Template: 'qtci-windows-11_23H2-aarch64-53'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -no-opengl -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..',
|
||||
'NON_QTBASE_CMAKE_ARGS= -DFEATURE_clangcpp=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_23H2-msvc2022-arm64'
|
||||
Template: 'qtci-windows-11_23H2-x86_64-54'
|
||||
Compiler: 'MSVC2022'
|
||||
Target arch: 'arm64'
|
||||
Features: ['Sccache', 'DoNotRunTests', 'TargetBuildOnly', 'Packaging', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Platform dependency: 'windows-10_22h2-mingw13'
|
||||
Features: ['Sccache', 'DisableTests', 'TargetBuildOnly', 'Packaging', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Platform dependency: 'windows-11_23H2-msvc2022'
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer -no-feature-run-opengl-tests',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -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}}',
|
||||
'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}}',
|
||||
@@ -178,13 +189,6 @@ Configurations:
|
||||
'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}',
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11-x86_64-arm64-tests'
|
||||
Template: 'qtci-windows-11_22H2-aarch64-55'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['TestOnly']
|
||||
Configure arguments: '-no-opengl -cross-compiled'
|
||||
Platform dependency: 'windows-11_23H2-msvc2022-arm64'
|
||||
-
|
||||
Id: 'windows-11_23H2-msvc2022-developer-build'
|
||||
Template: 'qtci-windows-11_23H2-x86_64-54'
|
||||
@@ -304,7 +308,7 @@ Configurations:
|
||||
'DEBIAN_RULES_REF=6.9_gles',
|
||||
'COIN_TARGET_DIST=tqtc-bookworm',
|
||||
'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/',
|
||||
'COIN_SBUILD_CHROOT=bookworm-arm64-sbuild',
|
||||
'COIN_SBUILD_CHROOT=stable-arm64-sbuild',
|
||||
'COIN_EXTRA_DEBIAN_REPO=deb http://deb.debian.org/debian/ bookworm main',
|
||||
'COIN_SKIP_DEBIAN_MODULES=qt5 qtqa qtactiveqt qtdoc qtwebengine qtwebview',
|
||||
]
|
||||
|
||||
@@ -8,7 +8,7 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'vxworks-imx6-buildtest'
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB',
|
||||
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_2_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_2_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_2_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
|
||||
@@ -23,7 +23,7 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'vxworks-x86_64-buildtest'
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/itl_generic_skylake_VSB',
|
||||
'VXWORKS_TEST_LIBS_PATH=/opt/itl_generic_skylake_VSB/usr/lib/common;/opt/itl_generic_skylake_VSB/usr/root/llvm/bin;/opt/itl_generic_skylake_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'sles-15_sp6-minimal-static'
|
||||
Template: 'qtci-linux-SLES-15_SP6-x86_64-52'
|
||||
Id: 'sles-15_sp5-minimal-static'
|
||||
Template: 'qtci-linux-SLES-15_SP5-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
|
||||
Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}'
|
||||
]
|
||||
-
|
||||
Id: 'sles-15_sp6-minimal-static'
|
||||
Template: 'qtci-linux-SLES-15_SP6-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure', 'InsignificantTests']
|
||||
Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}'
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_23H2-minimal-static'
|
||||
Template: 'qtci-windows-11_23H2-x86_64-54'
|
||||
|
||||
@@ -63,19 +63,4 @@ Configurations:
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_35'
|
||||
]
|
||||
-
|
||||
Id: 'android-16-x86_64-on-linux'
|
||||
Template: 'qtci-linux-RHEL-8.10-x86_64-51'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'x86_64'
|
||||
Compiler: 'GCC'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'rhel-8.10'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -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_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_36'
|
||||
]
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'macos-universal-on-x86_64'
|
||||
Template: 'qtci-macos-15-x86_64-103'
|
||||
Template: 'qtci-macos-14-x86_64-105'
|
||||
Compiler: 'Clang'
|
||||
Target arch: 'x86_64-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
@@ -51,7 +51,7 @@ Configurations:
|
||||
Id: 'macos-15-x86_64-tests'
|
||||
Template: 'qtci-macos-15-x86_64-103'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging', 'InsignificantTests']
|
||||
Platform dependency: 'macos-universal-on-x86_64'
|
||||
|
||||
# And arm64
|
||||
@@ -72,7 +72,7 @@ Configurations:
|
||||
Id: 'macos-15-arm64-tests'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly', 'Packaging']
|
||||
Features: ['TestOnly', 'Packaging', 'InsignificantTests']
|
||||
Platform dependency: 'macos-universal-on-x86_64'
|
||||
|
||||
# Test the universal packaging built on arm64
|
||||
@@ -109,8 +109,8 @@ Configurations:
|
||||
# Build on recent macOS version with latest Xcode
|
||||
|
||||
-
|
||||
Id: 'macos-x86_64-developer-build'
|
||||
Template: 'qtci-macos-15-x86_64-103'
|
||||
Id: 'macos-14-x86_64-developer-build'
|
||||
Template: 'qtci-macos-14-x86_64-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
Configure arguments: '-developer-build -release -force-asserts -force-debug-info -no-pch -no-framework -qtnamespace TestNamespace -make examples'
|
||||
@@ -119,8 +119,8 @@ Configurations:
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
]
|
||||
-
|
||||
Id: 'macos-arm64-developer-build'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Id: 'macos-14-arm64-developer-build'
|
||||
Template: 'qtci-macos-14-arm-106'
|
||||
Compiler: 'Clang'
|
||||
Features: ['DoNotRunTests', 'WarningsAreErrors', 'UseConfigure']
|
||||
Configure arguments: '-developer-build -nomake examples -debug -framework'
|
||||
@@ -135,16 +135,16 @@ Configurations:
|
||||
Template: 'qtci-macos-13-arm-107'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly']
|
||||
Platform dependency: 'macos-arm64-developer-build'
|
||||
Platform dependency: 'macos-14-arm64-developer-build'
|
||||
-
|
||||
Id: 'macos-14-arm64-developer-build-tests'
|
||||
Template: 'qtci-macos-14-arm-106'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly']
|
||||
Platform dependency: 'macos-arm64-developer-build'
|
||||
Platform dependency: 'macos-14-arm64-developer-build'
|
||||
-
|
||||
Id: 'macos-15-arm64-developer-build-tests'
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly', 'InsignificantTests']
|
||||
Platform dependency: 'macos-arm64-developer-build'
|
||||
Platform dependency: 'macos-14-arm64-developer-build'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
windows-10_22h2-mingw13
|
||||
windows-10_22h2-msvc2019-developer-build
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
@@ -10,13 +10,12 @@ Configurations:
|
||||
Template: 'qtci-windows-10_22H2-x86_64-53'
|
||||
Target os: 'QNX_710'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Mingw'
|
||||
Compiler: 'MSVC2019'
|
||||
Target compiler: 'QCC'
|
||||
Platform dependency: 'windows-10_22h2-mingw13'
|
||||
Platform dependency: 'windows-10_22h2-msvc2019-developer-build'
|
||||
Features: ['DisableTests', 'UseConfigure']
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -no-dbus -nomake examples -no-pch',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}\qnx-toolchain-aarch64le.cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_mingw}}/include'
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}\qnx-toolchain-aarch64le.cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -G "Ninja"',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON'
|
||||
]
|
||||
|
||||
@@ -4,12 +4,12 @@ Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"ubuntu-22.04",
|
||||
"ubuntu-22.04-developer-build",
|
||||
"ubuntu-24.04-x64-developer-build-x11-tests",
|
||||
"ubuntu-22.04-developer-build-x11-tests",
|
||||
"windows-11_23H2-msvc2022-developer-build",
|
||||
"ios-universal"
|
||||
],
|
||||
macos.yaml: [
|
||||
"macos-arm64-developer-build",
|
||||
"macos-14-arm64-developer-build",
|
||||
"macos-14-arm64-developer-build-tests",
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Module only: True
|
||||
Configurations:
|
||||
-
|
||||
Template: 'qtci-windows-11_23H2-x86_64-54'
|
||||
Template: 'qtci-windows-11_23H2-x86_64-53'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease']
|
||||
Configure arguments: ''
|
||||
@@ -28,7 +28,7 @@ Configurations:
|
||||
Environment variables: []
|
||||
# without tests
|
||||
-
|
||||
Template: 'qtci-windows-11_23H2-x86_64-54'
|
||||
Template: 'qtci-windows-11_23H2-x86_64-53'
|
||||
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_23H2-x86_64-54'
|
||||
Template: 'qtci-windows-11_23H2-x86_64-53'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'OldestQt']
|
||||
Configure arguments: ''
|
||||
|
||||
@@ -9,6 +9,7 @@ Include: [
|
||||
"ubuntu-22.04",
|
||||
"ubuntu-22.04-developer-build",
|
||||
"opensuse-15.6-developer-build",
|
||||
"sles-15_sp5-static",
|
||||
"sles-15_sp6-static",
|
||||
"windows-10_22h2-msvc2022",
|
||||
"rhel-8.10",
|
||||
|
||||
@@ -9,6 +9,7 @@ Include: [
|
||||
"ubuntu-22.04",
|
||||
"ubuntu-22.04-developer-build",
|
||||
"opensuse-15.6-developer-build",
|
||||
"sles-15_sp5-static",
|
||||
"sles-15_sp6-static",
|
||||
"windows-10_22h2-msvc2022",
|
||||
"rhel-8.10",
|
||||
|
||||
@@ -3,4 +3,18 @@ Include: [
|
||||
cmake_platforms.yaml,
|
||||
address_sanitizer_platforms.yaml
|
||||
]
|
||||
Configurations: []
|
||||
Configurations:
|
||||
# Test on Ubuntu 24.04 ARM64 Wayland
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64-developer-build-wayland-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
|
||||
Compiler: 'GCC'
|
||||
Features: ['TestOnly', 'RunDependencyTests', 'InsignificantTests']
|
||||
Platform dependency: 'ubuntu-24.04-arm64-developer-build'
|
||||
# Test on Ubuntu 24.04 x64 Wayland
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-wayland-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
|
||||
Compiler: 'GCC'
|
||||
Features: ['TestOnly', 'RunDependencyTests', 'InsignificantTests']
|
||||
Platform dependency: 'ubuntu-24.04-x64'
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"documentation-warnings",
|
||||
"rhel-8.10",
|
||||
'windows-10_22h2-mingw13',
|
||||
'ubuntu-22.04-developer-build',
|
||||
'ubuntu-22.04-developer-build-x11-tests'
|
||||
],
|
||||
macos.yaml: [
|
||||
'macos-universal-on-x86_64'
|
||||
|
||||
@@ -78,10 +78,3 @@ chmod 755 ./coin-setup
|
||||
run ./coin-setup
|
||||
|
||||
sudo reboot now
|
||||
|
||||
# Select login session type
|
||||
After reboot into user qt:
|
||||
- log out
|
||||
- select session type "Gnome Classic" in session selector on the login sreen (gear wheel on bottom right)
|
||||
- reboot again with sudo reboot now
|
||||
- verify that auto login lands in normal desktop
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
# Follow manual pre-setup from intra to install Windows 11 ARM and virtio drivers:
|
||||
# "How to create a Windows 11 ARM tier1 image using Qemu"
|
||||
|
||||
# Configure Windows after pre-setup
|
||||
* Enable Remote Desktop:
|
||||
- Settings - System - Remote Desktop - On
|
||||
- Note: Display settings cannot be changed by remote
|
||||
* Resolution set to 1280x800
|
||||
- System > Display > Custom scaling > Advanced display
|
||||
- 1024 x 768 is unchangable by default
|
||||
* Coin-setup:
|
||||
- Download from https://[Coin_IP_from_build_logs]/coin/setup --> Windows Setup ARM64 .exe
|
||||
- Open PowerShell as Administrator
|
||||
- Run Windows Setup ARM64 .exe
|
||||
- Verify from output that all these are OK
|
||||
- Installing Boostrap agent
|
||||
- Disabling fast boot
|
||||
- Disabling firewall
|
||||
- Disabling UAC
|
||||
- Enabling autologin
|
||||
- Automatic login
|
||||
- Disabling windows updates
|
||||
* Turn off Windows defender:
|
||||
- Microsoft Defender Antivirus turned off: Open 'gpedit.msc': 'Computer Configuration' - 'Administrative Templates' - 'Windows Components' - 'Microsoft Defender Antivirus'
|
||||
- Edit 'Turn off Microsoft Defender Antivirus' > 'Enabled' > 'Apply'
|
||||
- Reboot on Safe mode:
|
||||
- Open msconfig - Boot tab - enable “Safe boot“ - apply - restart
|
||||
- In Safe mode:
|
||||
- Take Ownership of Defender:
|
||||
- Open properties - Right click "C:\Program Files\Windows Defender\Platform" and select 'Properties'
|
||||
- Open Security tab - Advanced - Owner: Change - Advanced - Find now - Select Administrators - Ok - Ok - Apply
|
||||
- Close 'Platform Properties' window for actions to take effect and open 'Properties' again
|
||||
- This should get 'Disable inheritance' available for the next step
|
||||
- Remove all Permissions: Permissions tab - Select 'Disable inheritance'
|
||||
- Remove all entries
|
||||
-Select 'Remove all inherited permissions from this object'
|
||||
-Select 'Replace all child object permi…' - Apply
|
||||
- Disable Windows defender also from RegEdit:
|
||||
- Open regedit - Navigate to 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services'
|
||||
- Change the following folders the key Start to 4
|
||||
- Sense (Windows defender advanced threat protection)
|
||||
- WdBoot (Windows defender boot)
|
||||
- WdFilter (Microsoft antimalware file system filter driver)
|
||||
- WdNisDrv (Windows Defender Network Inspection Driver)
|
||||
- WdNisSvc (Windows Defender Network Inspection Service)
|
||||
- WinDefend (Windows Defender Antivirus Service)
|
||||
- mpssvc (Windows Defender Firewall)
|
||||
- NOTE! Without these step windows defender can't be disabled!
|
||||
- Reboot back to normal mode
|
||||
* Background defrag disabled: 'Defragment And Optimize Drives' - 'change settings' - unchecked "run on a schedule"
|
||||
- Run in terminal: 'schtasks /Delete /TN "Microsoft\Windows\Defrag\ScheduledDefrag"'
|
||||
- (Running optimize drivers doesn't seem to fix the status, if there's a 10% space optimization recommended)
|
||||
* Time:
|
||||
- Settings - System - Date & time - Time zone: '(UTC) Coordinated Universal Time'
|
||||
- Settings - System - Date & time - "Set the time automatically: Off"
|
||||
* Regional format:
|
||||
- Settings - Time & language - Language and region - regional format - English (United States)
|
||||
* Power saver:
|
||||
- Settings - System - Power - Screen and sleep: set 'When plugged in, turn off my screen after' to 'never'
|
||||
* Windows search disabled:
|
||||
- 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows search' - stop & disable
|
||||
* Sysmain disabled:
|
||||
- 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'SysMain' - stop & disable
|
||||
* Windows update:
|
||||
- Settings - Windows Update - run available updates
|
||||
- (Windows update2025-06 Cumulative Update for Windows 11 Version 23H2 for arm64-based Systems (KB5060999))
|
||||
- After reboot disable windows updates:
|
||||
- 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows update' - stop & disable
|
||||
* Turn windows features on or off -> Check the "SMB 1.0/CIFS File Sharing Support"
|
||||
* Disable Windows Restore Points: Search 'Create a restore point' -> 'System Protection' tab -> Configure C: drive -> Disable & Delete restore points.
|
||||
* Disable widgets: Right click the task bar -> 'Taskbar settings' -> toggle off anything related to widgets.
|
||||
* (Restart Windows: shutdown /r)
|
||||
* Google Chrome installed for RTA
|
||||
* Virus & threat protection settings:
|
||||
* Check that there's no active antivirus providers
|
||||
* Run .NET runtime optimization service: open terminal and run:
|
||||
Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait
|
||||
- It may be needed to rerun after installing Visual Studio. Just run it until it prints:
|
||||
"All compilation targets are up to date."
|
||||
* Activate Windows
|
||||
|
||||
# Next
|
||||
Install Visual Studio 2022 by following msvc2022.txt
|
||||
|
||||
Proceed to install pre-provisioning scripts manually to Tier1 image
|
||||
* Copying scripts happens easiest via Remote Desktop
|
||||
* Ensure to have sourced scripts e.g. helpers.ps1 included
|
||||
* If running scripts is restricted: Use these to allow scripts in Tier1
|
||||
* Get-ExecutionPolicy -List # To check the status
|
||||
* Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
|
||||
@@ -1,8 +0,0 @@
|
||||
# This script will disable automatic disk cleanup
|
||||
|
||||
. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
|
||||
|
||||
Run-Executable "reg.exe" "ADD `"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy`" /V 04 /T REG_dWORD /D 0 /F"
|
||||
|
||||
# Maintenance task used by the system to launch a silent auto disk cleanup when running low on free disk space.
|
||||
DisableSchedulerTask "DiskCleanup\SilentCleanup"
|
||||
@@ -1,42 +0,0 @@
|
||||
# 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
|
||||
|
||||
# Windows 7 does not have Get-ScheduledTask and Unregister-ScheduledTask
|
||||
# thus needing its own version.
|
||||
Write-Host "Disabling defragmentation"
|
||||
$version = Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption
|
||||
if ($version -like '*Windows 7*'){
|
||||
$pi = New-Object System.Diagnostics.ProcessStartInfo
|
||||
$pi.FileName = "C:\Windows\System32\schtasks.exe"
|
||||
$pi.RedirectStandardError = $true
|
||||
$pi.UseShellExecute = $false
|
||||
$pi.Arguments = "/Delete /TN `"\Microsoft\Windows\Defrag\ScheduledDefrag`" /F"
|
||||
$prog = New-Object System.Diagnostics.Process
|
||||
$prog.StartInfo = $pi
|
||||
$prog.Start() | Out-Null
|
||||
$err = $prog.StandardError.ReadToEnd()
|
||||
$prog.WaitForExit()
|
||||
if ($prog.ExitCode -eq 0){
|
||||
Write-Host "Scheduled defragmentation removed"
|
||||
} else {
|
||||
if ($err -like '*cannot find the file*'){
|
||||
Write-Host "No scheduled defragmentation task found"
|
||||
exit 0
|
||||
} else {
|
||||
Write-Host "Error while deleting scheduled defragmentation task: $err"
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
try {
|
||||
$state = (Get-ScheduledTask -ErrorAction Stop -TaskName "ScheduledDefrag").State
|
||||
Write-Host "Scheduled defragmentation task found in state: $state"
|
||||
}
|
||||
catch {
|
||||
Write-Host "No scheduled defragmentation task found"
|
||||
exit 0
|
||||
}
|
||||
Write-Host "Unregistering scheduled defragmentation task"
|
||||
Unregister-ScheduledTask -ErrorAction Stop -Confirm:$false -TaskName ScheduledDefrag
|
||||
Write-Host "Scheduled Defragmentation task was cancelled"
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
|
||||
|
||||
# Disable the NTP from syncing
|
||||
Run-Executable "w32tm.exe" "/config /syncfromflags:NO"
|
||||
@@ -1,72 +0,0 @@
|
||||
. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
|
||||
|
||||
# This script will remove unneeded Tasks from Task Scheduler
|
||||
|
||||
# Application Experience 'Microsoft Compatibility Appraiser' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program."
|
||||
DisableSchedulerTask "Application Experience\Microsoft Compatibility Appraiser"
|
||||
|
||||
# Application Experience 'ProgramDataUpdater' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program"
|
||||
DisableSchedulerTask "Application Experience\ProgramDataUpdater"
|
||||
|
||||
# Autochk 'Proxy' - "This task collects and uploads autochk SQM data if opted-in to the Microsoft Customer Experience Improvement Program."
|
||||
DisableSchedulerTask "Autochk\Proxy"
|
||||
|
||||
# Chkdsk 'ProactiveScan' - "NTFS Volume Health Scan"
|
||||
DisableSchedulerTask "Chkdsk\ProactiveScan"
|
||||
|
||||
# Chkdsk 'SyspartRepair'
|
||||
DeleteSchedulerTask "Chkdsk\SyspartRepair"
|
||||
|
||||
# Customer Experience Improvement Program 'Consolidator' - "If the user has consented to participate in the Windows Customer Experience Improvement Program, this job collects and sends usage data to Microsoft."
|
||||
DisableSchedulerTask "Customer Experience Improvement Program\Consolidator"
|
||||
|
||||
# Customer Experience Improvement Program 'sbCeip' - "The USB CEIP (Customer Experience Improvement Program) task collects Universal Serial Bus related statistics and information about your machine and sends it to the Windows Device Connectivity engineering group at Microsoft. The information received is used to help improve the reliability, stability, and overall functionality of USB in Windows. If the user has not consented to participate in Windows CEIP, this task does not do anything."
|
||||
DisableSchedulerTask "Customer Experience Improvement Program\UsbCeip"
|
||||
|
||||
# Device Information 'Device'
|
||||
DisableSchedulerTask "Device Information\Device"
|
||||
|
||||
# Diagnosis 'Scheduled' - "The Windows Scheduled Maintenance Task performs periodic maintenance of the computer system by fixing problems automatically or reporting them through Security and Maintenance."
|
||||
DisableSchedulerTask "Diagnosis\Scheduled"
|
||||
|
||||
# DiskDiagnostic 'Microsoft-Windows-DiskDiagnosticDataCollector' - "The Windows Disk Diagnostic reports general disk and system information to Microsoft for users participating in the Customer Experience Program."
|
||||
DisableSchedulerTask "DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector"
|
||||
|
||||
# ExploitGuard 'ExploitGuard MDM policy Refresh' - "Task for applying changes to the machine's Exploit Protection settings."
|
||||
DisableSchedulerTask "ExploitGuard\ExploitGuard MDM policy Refresh"
|
||||
|
||||
# Feedback/Siuf 'DmClient'
|
||||
DisableSchedulerTask "Feedback\Siuf\DmClient"
|
||||
|
||||
# Feedback/Siuf 'DmClient'OnScenarioDownload'
|
||||
DisableSchedulerTask "Feedback\Siuf\DmClientOnScenarioDownload"
|
||||
|
||||
# File Classification Infrastructure 'Property Definition Sync'
|
||||
DisableSchedulerTask "File Classification Infrastructure\Property Definition Sync"
|
||||
|
||||
# InstallService 'ScanForUpdates'
|
||||
DisableSchedulerTask "InstallService\ScanForUpdates"
|
||||
|
||||
# InstallService 'ScanForUpdatesAsUser'
|
||||
DisableSchedulerTask "InstallService\ScanForUpdatesAsUser"
|
||||
|
||||
# LanguageComponentsInstaller 'Installation' - "Install language components that match the user's language list."
|
||||
DisableSchedulerTask "LanguageComponentsInstaller\Installation"
|
||||
|
||||
# LanguageComponentsInstaller 'ReconcileLanguageResources' - "Install language components that match the user's language list."
|
||||
DisableSchedulerTask "LanguageComponentsInstaller\ReconcileLanguageResources"
|
||||
|
||||
# PI 'Secure-Boot-Update' - "This task updates the Secure Boot variables."
|
||||
DisableSchedulerTask "PI\Secure-Boot-Update"
|
||||
|
||||
# PI 'Sqm-Tasks' - "This task gathers information about the Trusted Platform Module (TPM), Secure Boot, and Measured Boot."
|
||||
DisableSchedulerTask "PI\Sqm-Tasks"
|
||||
|
||||
# Power Efficiency Diagnotics 'AnalyzeSystem' - "This task analyzes the system looking for conditions that may cause high energy use."
|
||||
DisableSchedulerTask "PushToInstall\Registration"
|
||||
|
||||
# Servicing 'StartComponentCleanup'
|
||||
DisableSchedulerTask "Servicing\StartComponentCleanup"
|
||||
|
||||
# SoftwareProtectionPlatform 'SvcRestartTaskNetwork' - "This task restarts the Software Protection Platform service when a new network is detected"
|
||||
DisableSchedulerTask "SoftwareProtectionPlatform\SvcRestartTaskNetwork"
|
||||
@@ -1,4 +0,0 @@
|
||||
# Disable Smart app control
|
||||
# Smart app control makes installations extremely slow after defender is disabled.
|
||||
reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy" /V VerifiedAndReputablePolicyState /T REG_dWORD /D 0 /F
|
||||
# Verify: Settings -> Privacy & security -> Windows security -> App & browser control -> Smart App Control settings -> Off
|
||||
@@ -1,13 +0,0 @@
|
||||
# Disable UpdateOrchestrator
|
||||
|
||||
$name = "UpdateOrchestrator"
|
||||
$path = "C:\Windows\System32\Tasks\Microsoft\Windows\$name"
|
||||
|
||||
takeown /F $path /A /R
|
||||
icacls $path /grant Administrators:F /T
|
||||
del "$path\Schedule Scan"
|
||||
del "$path\Schedule Scan Static Task"
|
||||
del "$path\USO_UxBroker"
|
||||
|
||||
# Disable Update orchestrator service
|
||||
reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /V Start /T REG_dWORD /D 4 /F
|
||||
@@ -1,21 +0,0 @@
|
||||
# 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
|
||||
|
||||
# Turning off win defender.
|
||||
#
|
||||
# If disabled manually, windows will automatically enable it after
|
||||
# some period of time. Disabling it speeds up the builds.
|
||||
# NOTE! Windows Defender Antivirus needs to be turned off!
|
||||
# Open 'gpedit.msc': 'Computer Configuration' - 'Administrative Templates' - 'Windows Components' - 'Windows Defender Antivirus'
|
||||
# Edit 'Turn off Windows Defender Antivirus' > 'Enabled' > 'Apply'
|
||||
|
||||
. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
|
||||
|
||||
Run-Executable "reg.exe" "ADD `"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender`" /V DisableAntiSpyware /T REG_dWORD /D 1 /F"
|
||||
Run-Executable "reg.exe" "ADD `"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender`" /V DisableRoutinelyTakingAction /T REG_dWORD /D 1 /F"
|
||||
|
||||
# Disable 'QueueReporting' - "Windows Error Reporting task to process queued reports."
|
||||
DisableSchedulerTask "Windows Error Reporting\QueueReporting"
|
||||
|
||||
# Disable WindowsUpdate from Task Scheduler
|
||||
DisableSchedulerTask "WindowsUpdate\Scheduled Start"
|
||||
@@ -1,4 +0,0 @@
|
||||
# Disable Windows File Protection
|
||||
# Windows File Protection feature in Microsoft Windows prevents programs from replacing critical Windows system files.
|
||||
|
||||
reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V SFCDisable /T REG_dWORD /D 0xffffff9d /F
|
||||
@@ -1,25 +0,0 @@
|
||||
# Windows Update Medic Service (WaaSMedicSvc)'PerformRemediation' helps recover update-related services to the supported configuration.
|
||||
# WaasMedicSvc keeps re-starting Windows Update, even if it disabled manually.
|
||||
# Even Admin user don't have privileged to disable PerformRemediation from Task Scheduler which means that WaaSMedicSvc.dll need's to be removed from the system
|
||||
|
||||
$limit = (Get-Date).AddMinutes(20)
|
||||
$path = "C:\Windows\System32\WaaSMedicSvc.dll"
|
||||
|
||||
DO {
|
||||
takeown /F $path
|
||||
icacls $path /grant Administrators:f
|
||||
Write-host "Deleting $path"
|
||||
|
||||
Try {
|
||||
del $path
|
||||
}
|
||||
Catch [System.UnauthorizedAccessException] {
|
||||
Write-host "Access to the path '$path' is denied."
|
||||
Continue
|
||||
}
|
||||
|
||||
if ((Get-Date) -gt $limit) {
|
||||
exit 1
|
||||
}
|
||||
|
||||
}while (Test-Path -Path "$path")
|
||||
@@ -1,24 +0,0 @@
|
||||
# Copyright (C) 2017 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 disables the automatic Windows updates
|
||||
|
||||
$service = get-service wuauserv
|
||||
if (-not $service) {
|
||||
Write-Host "Windows Update service not found."
|
||||
exit 0
|
||||
}
|
||||
|
||||
if ($service.Status -eq "Stopped") {
|
||||
Write-Host "Windows Update service already stopped."
|
||||
} else {
|
||||
Write-Host "Stopping Windows Update service."
|
||||
Stop-Service -Name "wuauserv" -Force
|
||||
}
|
||||
|
||||
$startup = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq "wuauserv"} | Select -ExpandProperty "StartMode"
|
||||
if ($startup -ne "Disabled") {
|
||||
set-service wuauserv -startup disabled
|
||||
} else {
|
||||
Write-Host "Windows Update service startup already disabled."
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
### Visual Studio Professional 2022 Official release ###
|
||||
Visual Studio Professional 2022 version 17.14.7 was installed manually using installer: http://ci-files01-hki.ci.qt.io/input/windows/vs_professional__msvc2022_1339502178.1525841376.exe
|
||||
This VS installer 17.14.7 version sets (Latest) MSVC version as: 14.44.35207
|
||||
|
||||
Installed MSVC-2022 Components:
|
||||
|
||||
.NET Framework 4.8.1 targeting pack
|
||||
.NET Framework 4.8.1 SDK
|
||||
.NET Framework 4.8 targeting pack
|
||||
.NET Framework 4.8 SDK
|
||||
.NET Native
|
||||
.NET Portable Library targeting pack
|
||||
CLR data types for SQL Server
|
||||
Data sources for SQL Server support
|
||||
SQL Server Command Linne Utilities
|
||||
SQL Server Data Tools
|
||||
SQL Server Express 2019 LocalDB
|
||||
SQL Server ODBC Driver
|
||||
ClickOnce Publishing
|
||||
Developer Analytics tools
|
||||
NuGet package manager
|
||||
Text Template Transformation
|
||||
C# and Visual Basic Roslyn compilers
|
||||
C++ 2022 Redistributable Update
|
||||
C++ Cmake tools for Windows
|
||||
C++/CLI support for v143 build tools (14.44-17.14)
|
||||
C++/CLI support for v143 build tools (Latest)
|
||||
MSBuild
|
||||
MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)
|
||||
MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (v14.44-17.14)
|
||||
.NET profiling tools
|
||||
C++ profiling tools
|
||||
JavaScript diagnostics
|
||||
Just-In-Time debugger
|
||||
C# and Visual Basic
|
||||
C++ core features
|
||||
JavaScript and TypeScript language support
|
||||
Razor Language Services
|
||||
Image and 3D model editors
|
||||
C++ ATL for latest v143 build tools (ARM)
|
||||
C++ ATL for latest v143 build tools (ARM64/ARM64EC)
|
||||
TypeScript Server
|
||||
Windows 10 SDK (10.0.18362.0)
|
||||
Windows 10 SDK (10.0.19041.0)
|
||||
Windows 10 SDK (10.0.20348.0)
|
||||
Windows 11 SDK (10.0.22000.0)
|
||||
Windows 11 SDK (10.0.22621.0)
|
||||
Windows 11 SDK (10.0.26100.3916) # This was available --> installed for COIN-1206 (see later comment)
|
||||
Windows Universal C Runtime
|
||||
|
||||
Windows SDK (10.0.26100.1742) has been earlier downloaded for WoA 22h2 and installed from:
|
||||
https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
|
||||
# COIN-1206
|
||||
|
||||
These Components were not found for WoA:
|
||||
|
||||
Connectivity and publishing tools
|
||||
Graphics debugger and GPU profiler for DirectX
|
||||
TypeScript 4.7 SDK
|
||||
|
||||
# NOTE! Workloads were added during installation!
|
||||
|
||||
############################################################
|
||||
### Visual Studio 2022 build tools ###
|
||||
|
||||
Visual studio 2022 build tools version 17.14.7 was installed manually using installer: "http://ci-files01-hki.ci.qt.io/input/windows/vs_BuildTools_msvc2022.exe"
|
||||
* Only default installation, no additional selections
|
||||
|
||||
# NOTE! Installing Visual Studio on ARM-powered device is not supported
|
||||
* Otherwise Visual Studio might be slow or unusable
|
||||
* Installer recommends "remote targeting" which is suitable for cross-platform development
|
||||
* VS 2022 build tools has been installed as it is - VS has ARM support since 17.4, but not full support with some workloads
|
||||
* https://learn.microsoft.com/en-us/visualstudio/install/visual-studio-on-arm-devices?view=vs-2022#supported-workloads
|
||||
|
||||
############################################################
|
||||
### Debugging tools ###
|
||||
|
||||
* Check that debugging tools are installed in all installed Windows SDK versions
|
||||
* Modify 'Windows Software Development Kit - Windows <version number>' from 'Add or remove programs'
|
||||
- Add feature 'Debugging Tools for Windows'
|
||||
############################################################
|
||||
@@ -4,12 +4,12 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace 'com.example.gradle_project'
|
||||
compileSdk 35
|
||||
compileSdk 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.example.gradle_project"
|
||||
minSdk 28
|
||||
targetSdk 35
|
||||
targetSdk 34
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[versions]
|
||||
agp = "8.8.0"
|
||||
agp = "8.6.0"
|
||||
core = "1.13.1"
|
||||
appcompat = "1.6.1"
|
||||
material = "1.11.0"
|
||||
@@ -15,3 +15,4 @@ constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayo
|
||||
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
||||
|
||||
[bundles]
|
||||
|
||||
|
||||
@@ -24,13 +24,13 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
|
||||
|
||||
toolsVersion="2.1"
|
||||
toolsFile="commandlinetools-linux-6609375_latest.zip"
|
||||
ndkVersionLatest="r27c"
|
||||
ndkVersionLatest="r26b"
|
||||
ndkVersionDefault=$ndkVersionLatest
|
||||
sdkBuildToolsVersion="35.0.1"
|
||||
sdkApiLevel="android-35"
|
||||
|
||||
toolsSha1="9172381ff070ee2a416723c1989770cf4b0d1076"
|
||||
ndkSha1Latest="090e8083a715fdb1a3e402d0763c388abb03fb4e"
|
||||
ndkSha1Latest="fdf33d9f6c1b3f16e5459d53a82c7d2201edbcc4"
|
||||
ndkSha1Default=$ndkSha1Latest
|
||||
|
||||
# Android Automotive max SDK level image
|
||||
@@ -172,21 +172,6 @@ echo "Unzipping the Android 15 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/"
|
||||
insignificantMaxVersionFilePath="$insignificantMaxVersionDestination/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionCiUrl="$basePath/system-images/google_apis/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionSha1="a9b0b4a0488e0c6c380f5485507950f011388511"
|
||||
|
||||
mkdir -p "$insignificantMaxVersionDestination"
|
||||
DownloadURL "$insignificantMaxVersionCiUrl" "$insignificantMaxVersionUrl" "$insignificantMaxVersionSha1" "$insignificantMaxVersionFilePath"
|
||||
|
||||
echo "Unzipping the Android 16 insignicant to $insignificantMaxVersionDestination"
|
||||
sudo unzip -o -q "$insignificantMaxVersionFilePath" -d "$insignificantMaxVersionDestination"
|
||||
rm "$insignificantMaxVersionFilePath"
|
||||
|
||||
echo "Checking the contents of Android SDK again..."
|
||||
ls -l "$sdkTargetFolder"
|
||||
|
||||
@@ -196,9 +181,6 @@ echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
|
||||
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 "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax"
|
||||
DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \
|
||||
"/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
|
||||
@@ -228,7 +210,7 @@ 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="e5f79573fe2f21cf7bea8f63386f39bb18b351f0"
|
||||
commit_sha="8436455e2740000a817e0b8154e13f47e6abb68c"
|
||||
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
|
||||
|
||||
@@ -1,99 +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 builds and installs FFmpeg static or shared (default) libs
|
||||
set -ex
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
||||
|
||||
build_type=$(get_ffmpeg_build_type "$1")
|
||||
|
||||
ffmpeg_source_dir=$(download_ffmpeg)
|
||||
ffmpeg_name=$(basename "$ffmpeg_source_dir")
|
||||
ffmpeg_config_options=$(get_ffmpeg_config_options "$build_type")
|
||||
prefix="/usr/local/$ffmpeg_name"
|
||||
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"
|
||||
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
|
||||
local target_dir="$HOME"
|
||||
local nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version"
|
||||
|
||||
if [ ! -d "$nv_codec_dir" ]; then
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
InstallFromCompressedFileFromURL "$nv_codec_url_cached" "$nv_codec_url_public" "$nv_codec_sha1" "$target_dir" ""
|
||||
fi
|
||||
|
||||
sudo make -C "$nv_codec_dir" install -j
|
||||
|
||||
# Might be not detected by default on RHEL
|
||||
pkgconfig_path="$pkgconfig_path:/usr/local/lib/pkgconfig"
|
||||
}
|
||||
|
||||
fix_openssl3_pc_files() {
|
||||
# On RHEL 8, openssl3 pc files are libopenssl3.pc, libssl3.pc, libcrypto3.pc,
|
||||
# and FFmpeg cannot find them. Instead, it finds FFmpeg 1.x.x if it's installed.
|
||||
# The function fixes the files with copying them to a custom directory
|
||||
|
||||
# assign to 'local' to ignore failure exit codes
|
||||
local -r openssl3_pcfiledir=$(pkg-config --variable=pcfiledir openssl3)
|
||||
if [ -z "$openssl3_pcfiledir" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
local pcfiles=("libssl" "libcrypto" "openssl")
|
||||
|
||||
for pcfile in "${pcfiles[@]}"; do
|
||||
if [ ! -f "$openssl3_pcfiledir/${pcfile}3.pc" ]; then
|
||||
echo "pkgconfig has found openssl3 but the file $openssl3_pcfiledir/${pcfile}3.pc does't exist"
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
local new_pkgconfig_dir="$ffmpeg_source_dir/openssl3_pkgconfig"
|
||||
mkdir -p "$new_pkgconfig_dir"
|
||||
|
||||
for pcfile in "${pcfiles[@]}"; do
|
||||
sed -E '/^Requires(\.private)?:/s/ (libssl|libcrypto)3/ \1/g;' "$openssl3_pcfiledir/${pcfile}3.pc" > "$new_pkgconfig_dir/${pcfile}.pc"
|
||||
done
|
||||
|
||||
pkgconfig_path="$new_pkgconfig_dir:$pkgconfig_path"
|
||||
}
|
||||
|
||||
build_ffmpeg() {
|
||||
local build_dir="$ffmpeg_source_dir/build"
|
||||
mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
PKG_CONFIG_PATH="$pkgconfig_path" "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
|
||||
# shellcheck disable=
|
||||
|
||||
# on RHEL patchelf is not visible under sudo, so we install to a temporary directory
|
||||
make install DESTDIR="$build_dir/installed" -j
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
ffmpeg_config_options+=" --enable-openssl"
|
||||
fix_openssl3_pc_files
|
||||
echo "pkg-config openssl version: $(pkg-config --modversion openssl)"
|
||||
|
||||
install_ff_nvcodec_headers
|
||||
|
||||
build_ffmpeg
|
||||
|
||||
output_dir="$ffmpeg_source_dir/build/installed/$prefix"
|
||||
|
||||
if [ "$build_type" == "shared" ]; then
|
||||
fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
|
||||
"$fix_dependencies" "$output_dir"
|
||||
fi
|
||||
|
||||
sudo mv "$output_dir" "/usr/local"
|
||||
set_ffmpeg_dir_env_var "FFMPEG_DIR" "$prefix"
|
||||
@@ -21,12 +21,12 @@ InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder"
|
||||
SetEnvVar "VXWORKS_HOME" "/opt/vxworks"
|
||||
SetEnvVar "VXWORKS_SSH" "WindRiver@172.31.1.10"
|
||||
|
||||
VXWORKS_BUILD_VER="18-12-2024"
|
||||
VXWORKS_BUILD_VER="07-11-2024"
|
||||
######### VXworks toolchain #########
|
||||
# Installs to /opt/fsl_imx6_2_0_6_2_VSB
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vsb_${VXWORKS_BUILD_VER}.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="6b5a264d08a9d34b03ff13cb28e690c5c5178569"
|
||||
sha1="f4745e9b84a781fe2c0a44abee189fcdf1c2c100"
|
||||
targetFolder="/opt/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
|
||||
@@ -35,20 +35,20 @@ SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
|
||||
# Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vip_${VXWORKS_BUILD_VER}.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="117af91a6c93ac89727f8d8bfe4cf840ce4485c9"
|
||||
sha1="186d7da071005d67d898a56cf57b7bec664bb89e"
|
||||
targetFolder="/opt/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
|
||||
# Installs to /opt/itl_generic_skylake_VSB
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vsb_${VXWORKS_BUILD_VER}.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="c1b2f2e2903540e8005237ce3641fc043ced0ddf"
|
||||
sha1="d5b76b92099dff0304ab97901ff1ad683dd6153d"
|
||||
targetFolder="/opt/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
# Installs to /opt/itl_generic_skylake_VIP_QEMU
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vip_${VXWORKS_BUILD_VER}.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="2fa12dac1f1460019a418da49b095c743a9fe282"
|
||||
sha1="1943696ead5d13fba92a5af416bd3f599395fe24"
|
||||
targetFolder="/opt/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ toolsVersion="2.1"
|
||||
# toolsFile dertermines tools version
|
||||
toolsFile="commandlinetools-mac-6609375_latest.zip"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
ndkVersionLatest="r26b"
|
||||
ndkVersionDefault="$ndkVersionLatest"
|
||||
sdkBuildToolsVersion="35.0.1"
|
||||
# this is compile sdk version
|
||||
|
||||
@@ -1,71 +1,23 @@
|
||||
#!/bin/bash
|
||||
#Copyright (C) 2025 The Qt Company Ltd
|
||||
#Copyright (C) 2023 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
|
||||
|
||||
|
||||
# Will install homebrew package manager for macOS.
|
||||
# WARNING: Requires commandlinetools
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
INSTALLTYPE="$1"
|
||||
VERSION="$2"
|
||||
CHECKSUM="$3"
|
||||
|
||||
DEFAULT_PKG_VERSION="4.4.21"
|
||||
DEFAULT_PKG_VERSION_CHECKSUM="cd83c4123d5db7d07eb3042f1c785ed7f599183c5c542040bc6abfa722583861"
|
||||
DEFAULT_GIT_VERSION="deb02e27d99fd2cb27ae16760e3a5272b612fded"
|
||||
DEFAULT_GIT_VERSION_CHECKSUM="a30b9fbf0d5c2cff3eb1d0643cceee30d8ba6ea1bb7bcabf60d3188bd62e6ba6"
|
||||
|
||||
source "$(dirname "$0")"/../../common/unix/DownloadURL.sh
|
||||
source "$(dirname "$0")"/../../common/unix/SetEnvVar.sh
|
||||
|
||||
installPkg() {
|
||||
if [ "$VERSION" == "" ]; then
|
||||
VERSION="$DEFAULT_PKG_VERSION"
|
||||
CHECKSUM="$DEFAULT_PKG_VERSION_CHECKSUM"
|
||||
fi
|
||||
DownloadURL \
|
||||
"http://ci-files01-hki.ci.qt.io/input/mac/homebrew/$VERSION/Homebrew-$VERSION.pkg" \
|
||||
"https://github.com/Homebrew/brew/releases/download/$VERSION/Homebrew-$VERSION.pkg" \
|
||||
"$CHECKSUM" \
|
||||
"/tmp/Homebrew-$VERSION.pkg"
|
||||
|
||||
sudo installer -pkg "/tmp/Homebrew-$VERSION.pkg" -target /
|
||||
# Add homebrew to PATH
|
||||
SetEnvVar "PATH" "/opt/homebrew/bin:\$PATH"
|
||||
DownloadURL \
|
||||
http://ci-files01-hki.ci.qt.io/input/mac/homebrew-install.c744a716f9845988d01e6e238eee7117b8c366c9.rb \
|
||||
https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \
|
||||
b9782cc0b550229de77b429b56ffce04157e60486ab9df00461ccf3dad565b0a \
|
||||
/tmp/homebrew_install
|
||||
/usr/bin/ruby /tmp/homebrew_install </dev/null
|
||||
|
||||
echo "Homebrew = $VERSION" >> ~/versions.txt
|
||||
}
|
||||
|
||||
installGit() {
|
||||
if [ "$VERSION" == "" ]; then
|
||||
VERSION="$DEFAULT_GIT_VERSION"
|
||||
CHECKSUM="$DEFAULT_GIT_VERSION_CHECKSUM"
|
||||
fi
|
||||
|
||||
export HOMEBREW_BREW_GIT_REMOTE="https://git.intra.qt.io/external-repository-mirrors/homebrew/brew.git" # put your Git mirror of Homebrew/brew here
|
||||
export HOMEBREW_CORE_GIT_REMOTE="https://git.intra.qt.io/external-repository-mirrors/homebrew/homebrew-core.git" # put your Git mirror of Homebrew/homebrew-core here
|
||||
DownloadURL \
|
||||
"https://git.intra.qt.io/external-repository-mirrors/homebrew/install/-/raw/$VERSION/install.sh" \
|
||||
"https://git.intra.qt.io/external-repository-mirrors/homebrew/install/-/raw/$VERSION/install.sh" \
|
||||
$CHECKSUM \
|
||||
/tmp/homebrew_install.sh
|
||||
|
||||
DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw"
|
||||
{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null
|
||||
sudo chmod 755 /tmp/homebrew_install.sh
|
||||
{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null
|
||||
rm -f "/Users/qt/pw"
|
||||
}
|
||||
|
||||
if [ "$INSTALLTYPE" == "GIT" ]; then
|
||||
installGit
|
||||
else
|
||||
installPkg
|
||||
fi
|
||||
|
||||
# Disable non-ascii output for homebrew to make logs more readable
|
||||
SetEnvVar "HOMEBREW_NO_COLOR" "1"
|
||||
SetEnvVar "HOMEBREW_NO_EMOJI" "1"
|
||||
SetEnvVar "HOMEBREW_NO_ENV_HINTS" "1"
|
||||
# No need to manually do `brew update`, the homebrew installer script does it.
|
||||
### brew update
|
||||
|
||||
30
coin/provisioning/common/macos/homebrew_for_arm_mac.sh
Executable file
30
coin/provisioning/common/macos/homebrew_for_arm_mac.sh
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2021 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
|
||||
|
||||
# Will install homebrew package manager for macOS.
|
||||
# WARNING: Requires commandlinetools
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
. "$(dirname "$0")"/../unix/DownloadURL.sh
|
||||
. "$(dirname "$0")"/../unix/SetEnvVar.sh
|
||||
|
||||
|
||||
DownloadURL \
|
||||
http://ci-files01-hki.ci.qt.io/input/mac/homebrew/be699a568315f57b65519df576d7fc5840b8a5cc/install.sh \
|
||||
https://raw.githubusercontent.com/Homebrew/install/be699a568315f57b65519df576d7fc5840b8a5cc/install \
|
||||
f20e4a577f0cafbab5a44b4d239886d725b3b985 \
|
||||
/tmp/homebrew_install.sh
|
||||
|
||||
DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw"
|
||||
{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null
|
||||
sudo chmod 755 /tmp/homebrew_install.sh
|
||||
{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null
|
||||
rm -f "/Users/qt/pw"
|
||||
|
||||
# No need to manually do `brew update`, the homebrew installer script does it.
|
||||
### brew update
|
||||
|
||||
SetEnvVar "PATH" "\$PATH:/opt/homebrew/bin"
|
||||
@@ -1,69 +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 builds and installs FFmpeg shared libs
|
||||
# Can take an optional final parameter to control installation directory
|
||||
|
||||
set -ex
|
||||
|
||||
os="$1"
|
||||
|
||||
if [ "$os" != "macos" ] && [ "$os" != "macos-universal" ]; then
|
||||
>&2 echo "invalid os paremeter: $os"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
||||
|
||||
ffmpeg_source_dir=$(download_ffmpeg)
|
||||
ffmpeg_name=$(basename "$ffmpeg_source_dir")
|
||||
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
|
||||
default_prefix="/usr/local/$ffmpeg_name"
|
||||
prefix="${2:-$default_prefix}"
|
||||
|
||||
build_ffmpeg() {
|
||||
local arch="$1"
|
||||
local build_dir="$ffmpeg_source_dir/build/$arch"
|
||||
mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
if [ -n "$arch" ]; then
|
||||
local cc="clang -arch $arch"
|
||||
"$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc"
|
||||
else
|
||||
"$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
|
||||
fi
|
||||
# shellcheck disable=
|
||||
|
||||
make install DESTDIR="$build_dir/installed" -j4
|
||||
popd
|
||||
}
|
||||
|
||||
brew install yasm
|
||||
export MACOSX_DEPLOYMENT_TARGET=12
|
||||
fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"
|
||||
|
||||
if [ "$os" == "macos" ]; then
|
||||
build_ffmpeg
|
||||
|
||||
install_dir="$ffmpeg_source_dir/build/installed"
|
||||
"$fix_relative_dependencies" "$install_dir$prefix/lib"
|
||||
sudo mkdir -p "$prefix"
|
||||
sudo mv "$install_dir$prefix" "$prefix/../"
|
||||
else
|
||||
build_ffmpeg "arm64"
|
||||
build_ffmpeg "x86_64"
|
||||
|
||||
arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed"
|
||||
x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed"
|
||||
|
||||
"$fix_relative_dependencies" "$arm64_install_dir$prefix/lib"
|
||||
"$fix_relative_dependencies" "$x86_64_install_dir$prefix/lib"
|
||||
|
||||
sudo rm -rf "$prefix" # lipo fails upon 2nd run
|
||||
sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir"
|
||||
fi
|
||||
|
||||
set_ffmpeg_dir_env_var "FFMPEG_DIR" "$prefix"
|
||||
@@ -25,6 +25,5 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
|
||||
|
||||
set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoaarch64-strip)
|
||||
set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntoaarch64-ar)
|
||||
set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntoaarch64-objcopy)
|
||||
|
||||
set(CMAKE_SYSROOT $ENV{QNX_TARGET})
|
||||
|
||||
@@ -25,6 +25,5 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
|
||||
|
||||
set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoarmv7-strip)
|
||||
set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntoarmv7-ar)
|
||||
set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntoarmv7-objcopy)
|
||||
|
||||
set(CMAKE_SYSROOT $ENV{QNX_TARGET})
|
||||
|
||||
@@ -25,6 +25,5 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
|
||||
|
||||
set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntox86_64-strip)
|
||||
set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntox86_64-ar)
|
||||
set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntox86_64-objcopy)
|
||||
|
||||
set(CMAKE_SYSROOT $ENV{QNX_TARGET})
|
||||
|
||||
@@ -2,42 +2,23 @@
|
||||
# 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
|
||||
|
||||
set -euox pipefail
|
||||
set -x
|
||||
|
||||
lib_dir="$1/lib"
|
||||
additional_suffix="${2:-}"
|
||||
set_rpath="${3:-yes}"
|
||||
|
||||
# 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."
|
||||
exit 1
|
||||
fi
|
||||
readelf() { "$readelf_homebrew_path" "$@"; }
|
||||
fi
|
||||
|
||||
if ! command -v readelf; then
|
||||
echo "Found no valid readelf command. It is possible it was not correctly installed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v patchelf; then
|
||||
echo "Found no valid patchelf command. It is possible it was not correctly installed."
|
||||
exit 1
|
||||
readelf() { "$(brew --prefix binutils)/bin/readelf" "$@"; }
|
||||
fi
|
||||
|
||||
ffmpeg_libs=("avcodec" "avdevice" "avfilter" "avformat" "avutil" "swresample" "swscale")
|
||||
stub_prefix="Qt6FFmpegStub-"
|
||||
|
||||
for lib_name in "${ffmpeg_libs[@]}"; do
|
||||
lib_path="$lib_dir/lib$lib_name.so"
|
||||
pkg_config_file_path="$lib_dir/pkgconfig/lib$lib_name.pc"
|
||||
stubs_required_versions=""
|
||||
|
||||
if [ ! -f "$lib_path" ]; then
|
||||
echo "FFmpeg lib $lib_path hasn't been found"
|
||||
@@ -49,46 +30,21 @@ for lib_name in "${ffmpeg_libs[@]}"; do
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read_needed_deps() {
|
||||
readelf -d "$lib_path" | grep '(NEEDED)'
|
||||
}
|
||||
|
||||
while read -r line; do
|
||||
if [[ $line =~ .*\[(lib((ssl|crypto|va|va-x11|va-drm)(_3)?\.so(\.[0-9]+)*))\].* ]]; then
|
||||
stub_name="lib$stub_prefix${BASH_REMATCH[2]}"
|
||||
android_ssl_suffix=${BASH_REMATCH[4]}
|
||||
soversion=${BASH_REMATCH[5]}
|
||||
|
||||
if [ -n "$android_ssl_suffix" ] && [ -n "$soversion" ]; then
|
||||
>&2 echo "both, android_ssl_suffix $android_ssl_suffix and soversion $soversion are found"
|
||||
continue
|
||||
fi
|
||||
|
||||
if [[ "$android_ssl_suffix" == "_3" ]]; then
|
||||
stub_name="libQt6FFmpegStub-${BASH_REMATCH[2]}"
|
||||
if [[ ${BASH_REMATCH[4]} == "_3" ]]; then
|
||||
stub_name="${stub_name/_3/}" # Remove "_3" from stub_name
|
||||
stubs_required_versions+=" ${stub_name/.so/ = 3},"
|
||||
elif [[ -n "$soversion" ]]; then
|
||||
stubs_required_versions+=" ${stub_name/.so./ = },"
|
||||
fi
|
||||
|
||||
if [[ -n "$additional_suffix" ]]; then
|
||||
stub_name="${stub_name%%.*}${additional_suffix}.${stub_name#*.}" # Add additional_suffix
|
||||
fi
|
||||
|
||||
patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" "$lib_path"
|
||||
patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" $lib_path
|
||||
fi
|
||||
done <<< "$(read_needed_deps)"
|
||||
done <<< "$(readelf -d $lib_path | grep '(NEEDED)' )"
|
||||
|
||||
sed_cmd="/^Libs.private:/s/ -l(va|va-x11|va-drm|ssl|crypto)/ -l$stub_prefix\\1/g;"
|
||||
if [[ -n "$stubs_required_versions" ]]; then
|
||||
stubs_required_versions="${stubs_required_versions%?}" # remove the last comma
|
||||
sed_cmd+="s/(^Requires.private:[^,]*(,)?.*$)/\\1\\2$stubs_required_versions/g;"
|
||||
fi
|
||||
|
||||
# sed -i doesn't work without parameter on macOS 13
|
||||
sed -i.bak -E "$sed_cmd" "$pkg_config_file_path" && rm -f "${pkg_config_file_path}.bak"
|
||||
sed -i.bak -E '/^Libs.private:/s/ -l(va|va-x11|va-drm|ssl|crypto)/ -lQt6FFmpegStub-\1/g;' $pkg_config_file_path && rm -f ${pkg_config_file_path}.bak
|
||||
if [[ "$set_rpath" == "yes" ]]; then
|
||||
# shellcheck disable=SC2016
|
||||
patchelf --set-rpath '$ORIGIN' "$lib_path"
|
||||
patchelf --set-rpath '$ORIGIN' $lib_path
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -27,9 +27,6 @@ function InstallFromCompressedFileFromURL {
|
||||
DownloadURL "$url" "$url_alt" "$expectedSha1" "$targetFile"
|
||||
echo "Uncompress $targetFile"
|
||||
case $extension in
|
||||
"tgz")
|
||||
tar -xzf "$targetFile" --directory "$targetDirectory"
|
||||
;;
|
||||
"tar.gz")
|
||||
tar -xzf "$targetFile" --directory "$targetDirectory"
|
||||
;;
|
||||
|
||||
@@ -1,67 +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
|
||||
|
||||
download_ffmpeg() {
|
||||
local version="${1:-n7.1.1}"
|
||||
local sha1="${2:-479291e8555fe036ca760f95cea829a21e9b8365}"
|
||||
|
||||
local ffmpeg_name="FFmpeg-$version"
|
||||
local target_dir="$HOME"
|
||||
local ffmpeg_source_dir="$target_dir/$ffmpeg_name"
|
||||
|
||||
if [ ! -d "$ffmpeg_source_dir" ]; then
|
||||
local url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
|
||||
local url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
|
||||
local app_prefix=""
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix" > /dev/null
|
||||
fi
|
||||
|
||||
echo "$ffmpeg_source_dir"
|
||||
}
|
||||
|
||||
get_ffmpeg_config_options() {
|
||||
local build_type="$1"
|
||||
local result
|
||||
|
||||
result=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
|
||||
|
||||
if [ "$build_type" != "static" ]; then
|
||||
result+=" --enable-shared --disable-static"
|
||||
fi
|
||||
|
||||
echo "$result"
|
||||
}
|
||||
|
||||
|
||||
get_ffmpeg_build_type() {
|
||||
local result="${1:-shared}"
|
||||
|
||||
if [ "$result" != "static" ] && [ "$result" != "shared" ]; then
|
||||
>&2 echo "Invalid build_type: $result. The shared build type will be used."
|
||||
result="shared"
|
||||
fi
|
||||
|
||||
echo "$result"
|
||||
}
|
||||
|
||||
set_ffmpeg_dir_env_var() {
|
||||
local envvar="$1"
|
||||
local dir="$2"
|
||||
|
||||
if [ ! -d "$dir" ]; then
|
||||
>&2 echo "the FFmpeg dir $dir doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# minimal validity check, more checks can be added
|
||||
if [ ! -d "$dir/include" ] || [ ! -d "$dir/lib" ]; then
|
||||
>&2 echo "The FFmpeg dir $dir is not valid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
SetEnvVar "$envvar" "$dir"
|
||||
}
|
||||
@@ -4,128 +4,123 @@
|
||||
|
||||
# This script will build and install FFmpeg shared libs
|
||||
set -ex
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
||||
|
||||
os="$1"
|
||||
# Optional parameter to set output installation directory. Useful for local builds.
|
||||
target_install_dir_param="$2"
|
||||
build_type=$(get_ffmpeg_build_type)
|
||||
ffmpeg_source_dir=$(download_ffmpeg)
|
||||
|
||||
assert_envvar_is_populated_dir() {
|
||||
local envvar="$1"
|
||||
local value="${!envvar}"
|
||||
if [ -z "$value" ] || [ ! -d "$value" ] || [ -z "$(find "$value" -mindepth 1 -type f | head -n 1)" ]; then
|
||||
echo "Environment variable '$envvar' is unset, not a directory, or the directory is empty."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_DEFAULT"
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_DEFAULT"
|
||||
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
version="n7.1"
|
||||
url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
|
||||
sha1="f008a93710a7577e3f85a90f4b632cc615164712"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
|
||||
ffmpeg_name="FFmpeg-$version"
|
||||
|
||||
target_dir="$HOME"
|
||||
app_prefix=""
|
||||
ffmpeg_source_dir="$target_dir/$ffmpeg_name"
|
||||
|
||||
if [ ! -d "$ffmpeg_source_dir" ];
|
||||
then
|
||||
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix"
|
||||
fi
|
||||
|
||||
build_ffmpeg_android() {
|
||||
local target_arch=$1
|
||||
local target_dir=$2
|
||||
|
||||
sudo mkdir -p "$target_dir"
|
||||
target_arch=$1
|
||||
target_dir=$2
|
||||
shared="${3:-no}"
|
||||
|
||||
local openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include"
|
||||
local openssl_libs
|
||||
local libs_prefix
|
||||
local target_cpu
|
||||
local target_toolchain_arch
|
||||
sudo mkdir -p "$target_dir"
|
||||
|
||||
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_HOME_DEFAULT/x86_64"
|
||||
libs_prefix="_x86_64"
|
||||
elif [ "$target_arch" == "x86" ]; then
|
||||
target_toolchain_arch="i686-linux-android"
|
||||
target_arch=x86
|
||||
target_cpu=i686
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86"
|
||||
libs_prefix="_x86"
|
||||
elif [ "$target_arch" == "arm64" ]; then
|
||||
target_toolchain_arch="aarch64-linux-android"
|
||||
target_arch=aarch64
|
||||
target_cpu=armv8-a
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a"
|
||||
libs_prefix="_arm64-v8a"
|
||||
fi
|
||||
openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include"
|
||||
openssl_libs=""
|
||||
libs_prefix=""
|
||||
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_HOME_DEFAULT/x86_64"
|
||||
libs_prefix="_x86_64"
|
||||
elif [ "$target_arch" == "x86" ]; then
|
||||
target_toolchain_arch="i686-linux-android"
|
||||
target_arch=x86
|
||||
target_cpu=i686
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86"
|
||||
libs_prefix="_x86"
|
||||
elif [ "$target_arch" == "arm64" ]; then
|
||||
target_toolchain_arch="aarch64-linux-android"
|
||||
target_arch=aarch64
|
||||
target_cpu=armv8-a
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a"
|
||||
libs_prefix="_arm64-v8a"
|
||||
fi
|
||||
|
||||
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
|
||||
ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so"
|
||||
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
|
||||
ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so"
|
||||
|
||||
local api_version=24
|
||||
api_version=24
|
||||
|
||||
local ndk_root=$ANDROID_NDK_ROOT_DEFAULT
|
||||
local ndk_host
|
||||
if uname -a |grep -q "Darwin"; then
|
||||
ndk_host=darwin-x86_64
|
||||
else
|
||||
ndk_host=linux-x86_64
|
||||
fi
|
||||
ndk_root=$ANDROID_NDK_ROOT_DEFAULT
|
||||
if uname -a |grep -q "Darwin"; then
|
||||
ndk_host=darwin-x86_64
|
||||
else
|
||||
ndk_host=linux-x86_64
|
||||
fi
|
||||
|
||||
local toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host}
|
||||
local toolchain_bin=${toolchain}/bin
|
||||
local sysroot=${toolchain}/sysroot
|
||||
local cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++
|
||||
local cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang
|
||||
local ar=${toolchain_bin}/llvm-ar
|
||||
local ranlib=${toolchain_bin}/llvm-ranlib
|
||||
local ffmpeg_config_options
|
||||
toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host}
|
||||
toolchain_bin=${toolchain}/bin
|
||||
sysroot=${toolchain}/sysroot
|
||||
cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++
|
||||
cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang
|
||||
ar=${toolchain_bin}/llvm-ar
|
||||
ranlib=${toolchain_bin}/llvm-ranlib
|
||||
|
||||
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+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
|
||||
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
|
||||
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"
|
||||
if [[ "$shared" == "yes" ]]; then
|
||||
ffmpeg_config_options+=" --enable-shared --disable-static"
|
||||
fi
|
||||
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+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
|
||||
|
||||
local build_dir="$ffmpeg_source_dir/build_android/$target_arch"
|
||||
mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
local build_dir="$ffmpeg_source_dir/build/$target_arch"
|
||||
sudo mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir"
|
||||
# shellcheck disable=
|
||||
# shellcheck disable=SC2086
|
||||
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir"
|
||||
|
||||
sudo make install -j4
|
||||
sudo make install -j4
|
||||
|
||||
popd
|
||||
popd
|
||||
|
||||
rm -f "${openssl_libs}/libcrypto.so"
|
||||
rm -f "${openssl_libs}/libssl.so"
|
||||
rm -f "${openssl_libs}/libcrypto.so"
|
||||
rm -f "${openssl_libs}/libssl.so"
|
||||
|
||||
if [[ "$build_type" == "shared" ]]; then
|
||||
local fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
|
||||
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no"
|
||||
fi
|
||||
if [[ "$shared" == "yes" ]]; then
|
||||
fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
|
||||
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$os" == "android-x86" ]; then
|
||||
target_arch=x86
|
||||
target_dir="/usr/local/android/ffmpeg-x86"
|
||||
envvar="FFMPEG_DIR_ANDROID_X86"
|
||||
target_arch=x86
|
||||
target_dir="/usr/local/android/ffmpeg-x86"
|
||||
|
||||
SetEnvVar "FFMPEG_DIR_ANDROID_X86" "$target_dir"
|
||||
elif [ "$os" == "android-x86_64" ]; then
|
||||
target_arch=x86_64
|
||||
target_dir="/usr/local/android/ffmpeg-x86_64"
|
||||
envvar="FFMPEG_DIR_ANDROID_X86_64"
|
||||
target_arch=x86_64
|
||||
target_dir="/usr/local/android/ffmpeg-x86_64"
|
||||
|
||||
SetEnvVar "FFMPEG_DIR_ANDROID_X86_64" "$target_dir"
|
||||
elif [ "$os" == "android-arm64" ]; then
|
||||
target_arch=arm64
|
||||
target_dir="/usr/local/android/ffmpeg-arm64"
|
||||
envvar="FFMPEG_DIR_ANDROID_ARM64"
|
||||
else
|
||||
>&2 echo "Unhandled android os param: $os"
|
||||
exit 1
|
||||
target_arch=arm64
|
||||
target_dir="/usr/local/android/ffmpeg-arm64"
|
||||
|
||||
SetEnvVar "FFMPEG_DIR_ANDROID_ARM64" "$target_dir"
|
||||
fi
|
||||
|
||||
# If parameter is set, use it as the target output directory.
|
||||
if [ ! -z $target_install_dir_param ]; then
|
||||
target_dir=$target_install_dir_param
|
||||
fi
|
||||
|
||||
build_ffmpeg_android "$target_arch" "$target_dir"
|
||||
set_ffmpeg_dir_env_var "$envvar" "$target_dir"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir" "yes"
|
||||
|
||||
@@ -5,38 +5,45 @@
|
||||
# This script will build and install FFmpeg static libs
|
||||
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"
|
||||
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
||||
version="n7.1"
|
||||
url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
|
||||
sha1="f008a93710a7577e3f85a90f4b632cc615164712"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
|
||||
ffmpeg_name="FFmpeg-$version"
|
||||
|
||||
ffmpeg_source_dir=$(download_ffmpeg)
|
||||
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
|
||||
target_dir="$HOME"
|
||||
ffmpeg_source_dir="$target_dir/$ffmpeg_name"
|
||||
prefix="/usr/local/ios/ffmpeg"
|
||||
dylib_regex="^@rpath/.*\.dylib$"
|
||||
|
||||
if [ ! -d "$ffmpeg_source_dir" ];
|
||||
then
|
||||
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir"
|
||||
fi
|
||||
|
||||
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
|
||||
|
||||
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"
|
||||
target_platform="arm64"
|
||||
minos="-mios-simulator-version-min=16.0"
|
||||
else
|
||||
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
|
||||
exit 1
|
||||
target_sdk="iphoneos"
|
||||
target_platform="arm64"
|
||||
minos="-miphoneos-version-min=16.0"
|
||||
# TODO: consider non-arm simulator?
|
||||
fi
|
||||
|
||||
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
|
||||
# Note: unlike similar install-ffmpeg scripts, not $target_platform,
|
||||
# but $1 (which can be arm64-simulator with arm64 target_platform).
|
||||
local build_dir="$ffmpeg_source_dir/build_ios/$1"
|
||||
sudo mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
@@ -46,30 +53,64 @@ build_ffmpeg_ios() {
|
||||
--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" \
|
||||
--arch=$target_platform \
|
||||
--cc="xcrun --sdk ${target_sdk} clang -arch $target_platform" \
|
||||
--cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_platform" \
|
||||
--ar="$(xcrun --sdk ${target_sdk} --find ar)" \
|
||||
--ranlib="$(xcrun --sdk ${target_sdk} --find ranlib)" \
|
||||
--strip="$(xcrun --sdk ${target_sdk} --find strip)" \
|
||||
--nm="$(xcrun --sdk ${target_sdk} --find nm)" \
|
||||
--target-os=darwin \
|
||||
--extra-ldflags="$minos" \
|
||||
--enable-cross-compile \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--install-name-dir='@rpath' \
|
||||
--enable-swscale \
|
||||
--enable-pthreads \
|
||||
--disable-audiotoolbox
|
||||
|
||||
sudo make install DESTDIR="$build_dir/installed" -j4
|
||||
popd
|
||||
}
|
||||
|
||||
install_ffmpeg() {
|
||||
for dir in "$@"; do
|
||||
echo "Processing files in $dir ..."
|
||||
pushd "$dir" >/dev/null
|
||||
find . -type l -name '*.*.dylib' | while read -r f; do
|
||||
dst="${f:1}"
|
||||
dstdir="$(dirname "$dst")"
|
||||
sudo mkdir -p "$dstdir"
|
||||
|
||||
if [[ ! -f "$dst" ]]; then
|
||||
echo "<Copying $dir/$f to $dst"
|
||||
sudo cp -c "$f" "$dst"
|
||||
symlinkname="$(tmp=${f/*\/}; echo ${tmp/\.*}).dylib"
|
||||
sudo ln -s "$(basename -- "$f")" $dstdir/"$symlinkname"
|
||||
elif lipo -info "$f" >/dev/null 2>&1; then
|
||||
echo "Lipoing $dir/$f into $dst"
|
||||
sudo lipo -create -output "$dst" "$dst" "$f"
|
||||
elif ! diff "$f" "$dst"; then
|
||||
echo "Error: File $f in $dir doesn't match destination $dst"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
echo "LS"
|
||||
popd >/dev/null
|
||||
done
|
||||
sudo cp -r $1$prefix/include $prefix
|
||||
}
|
||||
|
||||
build_info_plist() {
|
||||
local file_path="$1"
|
||||
local framework_name="$2"
|
||||
local framework_id="$3"
|
||||
|
||||
local minimum_version_key="MinimumOSVersion"
|
||||
local minimum_os_version="16.0"
|
||||
local supported_platforms="iPhoneOS"
|
||||
|
||||
# TODO: This should be filled out with the actual version of FFmpeg that we are
|
||||
# deploying.
|
||||
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\">
|
||||
@@ -93,7 +134,7 @@ build_info_plist() {
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>${minimum_version_key}</key>
|
||||
<string>${MINIMUM_IOS_VERSION}</string>
|
||||
<string>${minimum_os_version}</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>${supported_platforms}</string>
|
||||
@@ -109,7 +150,7 @@ create_framework() {
|
||||
# Create a 'traditional' framework from the corresponding dylib.
|
||||
local framework_name="$1"
|
||||
local platform="$2" # For now it's either arm64 or arm64-simulator, see below.
|
||||
local ffmpeg_library_path="$ffmpeg_source_dir/build_ios/${platform}/installed$prefix"
|
||||
local ffmpeg_library_path="$ffmpeg_source_dir/build_ios/${platform}/installed/usr/local/ios/ffmpeg"
|
||||
local framework_complete_path="${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
|
||||
|
||||
sudo mkdir -p "${ffmpeg_library_path}/framework/${framework_name}.framework"
|
||||
@@ -136,37 +177,29 @@ 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"
|
||||
local fw1="$ffmpeg_source_dir/build_ios/arm64/installed/usr/local/ios/ffmpeg/framework/${framework_name}.framework"
|
||||
local fw2="$ffmpeg_source_dir/build_ios/arm64-simulator/installed/usr/local/ios/ffmpeg/framework/${framework_name}.framework"
|
||||
|
||||
sudo mkdir -p "$prefix/framework/"
|
||||
sudo xcodebuild -create-xcframework -framework $fw_a -framework $fw_b -output "${prefix}/framework/${framework_name}.xcframework"
|
||||
sudo xcodebuild -create-xcframework -framework $fw1 -framework $fw2 -output "${prefix}/framework/${framework_name}.xcframework"
|
||||
}
|
||||
|
||||
build_ffmpeg_ios "x86_64-simulator"
|
||||
build_ffmpeg_ios "arm64-iphoneos"
|
||||
build_ffmpeg_ios "arm64-simulator"
|
||||
build_ffmpeg_ios "arm64"
|
||||
|
||||
ffmpeg_libs="libavcodec libavformat libavutil libswresample libswscale"
|
||||
ffmpeg_libs="libavcodec libavdevice libavfilter libavformat libavutil libswresample libswscale"
|
||||
|
||||
for name in $ffmpeg_libs; do
|
||||
create_framework $name "arm64-iphoneos"
|
||||
create_framework $name "x86_64-simulator"
|
||||
create_framework $name "arm64"
|
||||
create_framework $name "arm64-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"
|
||||
create_xcframework $name
|
||||
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
|
||||
# The set_ffmpeg_dir_env_var requires the presence of the "lib" subfolder in order to validate
|
||||
# our FFmpeg install. On iOS we don't use this subfolder, we only rely on the "framework" subfolder.
|
||||
# So we create a dummy "lib" folder to pass the check.
|
||||
sudo mkdir -p "${prefix}/lib"
|
||||
install_ffmpeg "$ffmpeg_source_dir/build_ios/arm64/installed"
|
||||
|
||||
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" $prefix
|
||||
SetEnvVar "FFMPEG_DIR_IOS" $prefix
|
||||
|
||||
156
coin/provisioning/common/unix/install-ffmpeg.sh
Executable file
156
coin/provisioning/common/unix/install-ffmpeg.sh
Executable file
@@ -0,0 +1,156 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2023 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
|
||||
set -ex
|
||||
os="$1"
|
||||
build_type="$2"
|
||||
|
||||
if [ ! -n "$build_type" ] && [ "$build_type" != "static" ] && [ "$build_type" != "shared" ]; then
|
||||
>&2 echo "Invalid build_type: $build_type. The shared build type will be used."
|
||||
build_type="shared"
|
||||
fi
|
||||
|
||||
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
version="n7.1"
|
||||
url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
|
||||
sha1="f008a93710a7577e3f85a90f4b632cc615164712"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
|
||||
ffmpeg_name="FFmpeg-$version"
|
||||
|
||||
target_dir="$HOME"
|
||||
app_prefix=""
|
||||
ffmpeg_source_dir="$target_dir/$ffmpeg_name"
|
||||
|
||||
if [ ! -d "$ffmpeg_source_dir" ]
|
||||
then
|
||||
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix"
|
||||
fi
|
||||
|
||||
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
|
||||
if [ "$build_type" != "static" ]; then
|
||||
ffmpeg_config_options+=" --enable-shared --disable-static"
|
||||
fi
|
||||
|
||||
install_ff_nvcodec_headers() {
|
||||
nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
|
||||
nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip"
|
||||
nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip"
|
||||
nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e"
|
||||
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
|
||||
nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version"
|
||||
if [ ! -d "$nv_codec_dir" ]
|
||||
then
|
||||
InstallFromCompressedFileFromURL "$nv_codec_url_cached" "$nv_codec_url_public" "$nv_codec_sha1" "$target_dir" ""
|
||||
fi
|
||||
|
||||
sudo make -C "$nv_codec_dir" install -j
|
||||
|
||||
# Might be not detected by default on RHEL
|
||||
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"
|
||||
}
|
||||
|
||||
fix_openssl3_pc_files() {
|
||||
# On RHEL 8, openssl3 pc files are libopenssl3.pc, libssl3.pc, libcrypto3.pc,
|
||||
# and FFmpeg cannot find them. Instead, it finds FFmpeg 1.x.x if it's installed.
|
||||
# The function fixes the files with copying them to a custom directory
|
||||
|
||||
local openssl3_pcfiledir=$(pkg-config --variable=pcfiledir openssl3)
|
||||
if [ ! -n "$openssl3_pcfiledir" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
local pcfiles=("libssl" "libcrypto" "openssl")
|
||||
|
||||
for pcfile in ${pcfiles[@]}; do
|
||||
if [ ! -f "$openssl3_pcfiledir/${pcfile}3.pc" ]; then
|
||||
echo "pkgconfig has found openssl3 but the file $openssl3_pcfiledir/${pcfile}3.pc does't exist"
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
local new_pkgconfig_dir="$ffmpeg_source_dir/openssl3_pkgconfig"
|
||||
mkdir -p $new_pkgconfig_dir
|
||||
|
||||
for pcfile in ${pcfiles[@]}; do
|
||||
sed -E '/^Requires(\.private)?:/s/ (libssl|libcrypto)3/ \1/g;' "$openssl3_pcfiledir/${pcfile}3.pc" > "$new_pkgconfig_dir/${pcfile}.pc"
|
||||
done
|
||||
|
||||
export PKG_CONFIG_PATH="$new_pkgconfig_dir:$PKG_CONFIG_PATH"
|
||||
}
|
||||
|
||||
build_ffmpeg() {
|
||||
local arch="$1"
|
||||
local prefix="$2"
|
||||
local build_dir="$ffmpeg_source_dir/build/$arch"
|
||||
mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
if [ -z "$prefix" ]
|
||||
then prefix="/usr/local/$ffmpeg_name"
|
||||
fi
|
||||
|
||||
if [ -n "$arch" ]
|
||||
then cc="clang -arch $arch"
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
if [ -n "$arch" ]
|
||||
then "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc"
|
||||
else "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
|
||||
fi
|
||||
make install DESTDIR="$build_dir/installed" -j4
|
||||
popd
|
||||
}
|
||||
|
||||
if [ "$os" == "linux" ]; then
|
||||
install_ff_nvcodec_headers
|
||||
|
||||
ffmpeg_config_options+=" --enable-openssl"
|
||||
fix_openssl3_pc_files
|
||||
echo "pkg-config openssl version: $(pkg-config --modversion openssl)"
|
||||
|
||||
build_ffmpeg
|
||||
|
||||
output_dir="$ffmpeg_source_dir/build/installed/usr/local/$ffmpeg_name"
|
||||
|
||||
if [ "$build_type" != "static" ]; then
|
||||
fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
|
||||
"$fix_dependencies" "$output_dir"
|
||||
fi
|
||||
|
||||
sudo mv "$output_dir" "/usr/local"
|
||||
SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name"
|
||||
|
||||
elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then
|
||||
brew install yasm
|
||||
export MACOSX_DEPLOYMENT_TARGET=12
|
||||
fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"
|
||||
|
||||
if [ "$os" == "macos" ]; then
|
||||
build_ffmpeg
|
||||
install_dir="$ffmpeg_source_dir/build/installed"
|
||||
"$fix_relative_dependencies" "$install_dir/usr/local/$ffmpeg_name/lib"
|
||||
sudo mv "$install_dir/usr/local/$ffmpeg_name" "/usr/local"
|
||||
else
|
||||
build_ffmpeg "arm64"
|
||||
build_ffmpeg "x86_64"
|
||||
|
||||
arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed"
|
||||
x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed"
|
||||
|
||||
"$fix_relative_dependencies" "$arm64_install_dir/usr/local/$ffmpeg_name/lib"
|
||||
"$fix_relative_dependencies" "$x86_64_install_dir/usr/local/$ffmpeg_name/lib"
|
||||
|
||||
sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir"
|
||||
fi
|
||||
|
||||
SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name"
|
||||
fi
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# version 0.18.0 doesn't work correctly for Android binaries, so we use 0.17.2
|
||||
patchelf_version="0.17.2"
|
||||
|
||||
url_cached="https://ci-files01-hki.ci.qt.io/input/android/patchelf/$patchelf_version.tar.gz"
|
||||
|
||||
@@ -92,7 +92,7 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
|
||||
ninja all:all
|
||||
sudo env "PATH=$PATH" ninja install:all
|
||||
|
||||
SetEnvVar "protobuf_ROOT" "$installPrefix"
|
||||
SetEnvVar "Protobuf_ROOT" "$installPrefix/lib/cmake/protobuf"
|
||||
|
||||
# Refresh shared library cache if OS isn't macOS
|
||||
if uname -a |grep -qv "Darwin"; then
|
||||
|
||||
@@ -20,38 +20,38 @@ PROVISIONING_DIR="$(dirname "$0")/../../"
|
||||
# shellcheck source=./common.sourced.sh
|
||||
source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
|
||||
|
||||
libclang_version="20.1.0"
|
||||
libclang_version="18.1.7"
|
||||
|
||||
if uname -a |grep -q Darwin; then
|
||||
version=$libclang_version
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-macos-universal.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-macos-universal.7z"
|
||||
sha1="a0061a2b7a7411323ae3d81fdb2071ad522ddd5f"
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-mac.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-mac.7z"
|
||||
sha1="9ea511576645ef4abee6d4c27550406e929334d5"
|
||||
elif test -f /etc/redhat-release && grep "Red Hat" /etc/redhat-release | grep "9" ; then
|
||||
version=$libclang_version
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Rhel9.4-gcc11.4-x86_64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Rhel9.4-gcc11.4-x86_64.7z"
|
||||
sha1="041036bb2b360c18448c993671507bbb16b9b76d"
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Rhel9.2-gcc10.0-x86_64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel9.2-gcc10.0-x86_64.7z"
|
||||
sha1="32c29d8df726b035e0a97e767c5c3e392aa331e1"
|
||||
elif test "$PROVISIONING_OS_ID" == "debian" && test "$PROVISIONING_ARCH" == "arm64" ; then
|
||||
version=$libclang_version
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Debian11.6-gcc10.0-arm64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Debian11.6-gcc10.0-arm64.7z"
|
||||
sha1="ad3244f76cb5dab8e3d5dfe839e21a9bac3039e9"
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z"
|
||||
sha1="8d876f60c2fe9c55e18fbac0be2acb70bd20d5d1"
|
||||
elif test "$PROVISIONING_OS_ID" == "ubuntu" && test "$PROVISIONING_ARCH" == "arm64" ; then
|
||||
version=$libclang_version
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu24.04-gcc11.2-arm64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu24.04-gcc11.2-arm64.7z"
|
||||
sha1="bde39a28872cc618983d231ffd1df2c104ff1992"
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Ubuntu24.04-gcc11.2-arm64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu24.04-gcc11.2-arm64.7z"
|
||||
sha1="5a7bda4fbd2c52ae66557034591d977ba617482c"
|
||||
elif test "$PROVISIONING_OS_ID" == "ubuntu" && test "$PROVISIONING_ARCH" == "x86_64" ; then
|
||||
version=$libclang_version
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
|
||||
sha1="3f5e5214cf31adfb01be21fcf4f27b9adf8f13b0"
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
|
||||
sha1="b9f8735a148342174d7d763b5475175cd0827441"
|
||||
else
|
||||
version=$libclang_version
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Rhel8.10-gcc10.0-x86_64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Rhel8.10-gcc10.0-x86_64.7z"
|
||||
sha1="1fdc23ae0fce48ed82508b1bad0c68d2e5a30c8b"
|
||||
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Rhel8.8-gcc10.0-x86_64.7z"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel8.8-gcc10.0-x86_64.7z"
|
||||
sha1="a51c5562c9b071250e7971390d55ef21924271ca"
|
||||
fi
|
||||
|
||||
zip="/tmp/libclang.7z"
|
||||
|
||||
@@ -12,12 +12,12 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
version="3.0.7"
|
||||
ndkVersionLatest="r27c"
|
||||
ndkVersionLatest="r26b"
|
||||
ndkVersionDefault=$ndkVersionLatest
|
||||
prebuiltOpensslNdkShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e"
|
||||
prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce"
|
||||
prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest
|
||||
|
||||
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c
|
||||
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 25
|
||||
# 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.
|
||||
@@ -32,7 +32,7 @@ else
|
||||
fi
|
||||
|
||||
# ANDROID_NDK_ROOT is required during Configure
|
||||
export ANDROID_NDK_ROOT=/opt/android/android-ndk-r27c
|
||||
export ANDROID_NDK_ROOT=/opt/android/android-ndk-r26b
|
||||
|
||||
officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz"
|
||||
cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz"
|
||||
|
||||
@@ -12,12 +12,12 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
version="3.0.7"
|
||||
ndkVersionLatest="r27c"
|
||||
ndkVersionLatest="r26b"
|
||||
ndkVersionDefault=$ndkVersionLatest
|
||||
prebuiltOpensslNdkShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e"
|
||||
prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce"
|
||||
prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest
|
||||
|
||||
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c
|
||||
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r26b
|
||||
# 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.
|
||||
|
||||
@@ -16,11 +16,11 @@ if (Is64BitWinHost) {
|
||||
# More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html
|
||||
|
||||
$openssl_version = "3.0.7"
|
||||
$ndk_version_latest = "r27c"
|
||||
$ndk_version_latest = "r26b"
|
||||
$ndk_version_default = "$ndk_version_latest"
|
||||
$openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz")
|
||||
$openssl_sha1 = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
|
||||
$prebuilt_sha1_ndk_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e"
|
||||
$prebuilt_sha1_ndk_latest = "ea925d5a5b696916fb3650403a2eb3189c52b5ce"
|
||||
$prebuilt_sha1_ndk_default = "$prebuilt_sha1_ndk_latest"
|
||||
$destination_prefix = "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk"
|
||||
|
||||
@@ -70,7 +70,7 @@ function Install($1, $2) {
|
||||
}
|
||||
|
||||
# ANDROID_NDK_ROOT needs to be in environment variables before running this script
|
||||
# Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r27c"
|
||||
# Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r26b"
|
||||
|
||||
$make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"")
|
||||
CheckExitCode $make_install
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
# That's why we need to use Andoid-21 API version in Qt 5.9.
|
||||
|
||||
# NDK
|
||||
$ndkVersionLatest = "r27c"
|
||||
$ndkVersionLatest = "r26b"
|
||||
$ndkVersionDefault = $ndkVersionLatest
|
||||
$ndkChecksumLatest = "ac5f7762764b1f15341094e148ad4f847d050c38"
|
||||
$ndkChecksumLatest = "17453c61a59e848cffb8634f2c7b322417f1732e"
|
||||
$ndkChecksumDefault = $ndkChecksumLatest
|
||||
$ndkCachedUrlLatest = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionLatest-windows.zip"
|
||||
$ndkOfficialUrlLatest = "https://dl.google.com/android/repository/android-ndk-$ndkVersionLatest-windows.zip"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
# 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 updates Windows Root Certifications which are usually updated weekly by Windows update
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
$sstCerts = "C:\Windows\Temp\certificates.sst"
|
||||
Run-Executable "certutil.exe" "-generateSSTFromWU $sstCerts"
|
||||
$sstCertsPath = (Get-ChildItem -Path $sstCerts)
|
||||
$sstCertsPath | Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" | Out-String | Measure-Object -Line
|
||||
Remove-Item -Path $sstCerts
|
||||
@@ -0,0 +1,3 @@
|
||||
Get-NetAdapter | Disable-NetAdapterLso
|
||||
Start-Sleep -s 15 # Give windows some time to adjust network settings
|
||||
Get-NetAdapter
|
||||
@@ -1,8 +0,0 @@
|
||||
# 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 disables the Delivery Optimization service
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DoSvc" -Name "Start" -Value 4
|
||||
@@ -1,27 +0,0 @@
|
||||
# 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 disables device discovery services related to Windows mDNS multicast
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
# Miracast / Wireless Display
|
||||
$regPath2 = "HKLM:\Software\Policies\Microsoft\Windows\Connect"
|
||||
New-Item -Path $regPath2 -Force | Out-Null
|
||||
Set-ItemProperty -Path $regPath2 -Name "DisableWirelessDisplay" -Type DWord -Value 1
|
||||
|
||||
# Function Discovery Resource Publication, printer/service publisher
|
||||
Stop-Service -Name FDResPub
|
||||
Set-Service -Name FDResPub -StartupType Disabled
|
||||
|
||||
# Windows Media Player Network Sharing Service
|
||||
Stop-Service -Name WMPNetworkSvc -Force
|
||||
Set-Service -Name WMPNetworkSvc -StartupType Disabled
|
||||
|
||||
# Function Discovery Provider Host
|
||||
Stop-Service -Name fdPHost
|
||||
Set-Service -Name fdPHost -StartupType Disabled
|
||||
|
||||
# Windows Connect Now
|
||||
Stop-Service -Name wcncsvc
|
||||
Set-Service -Name wcncsvc -StartupType Disabled
|
||||
@@ -358,7 +358,7 @@ function EnterVSDevShell {
|
||||
Write-Host "Enter VisualStudio developer shell (-host_arch=$HostArch -arch=$Arch -VsInstallPath='$VSPath')"
|
||||
try {
|
||||
Import-Module "$VSPath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
|
||||
Enter-VsDevShell -SkipAutomaticLocation -VsInstallPath $VSPath -DevCmdArguments "-host_arch=$HostArch -arch=$Arch -no_logo"
|
||||
Enter-VsDevShell -VsInstallPath $VSPath -DevCmdArguments "-host_arch=$HostArch -arch=$Arch -no_logo"
|
||||
} catch {
|
||||
Write-Host "Failed to enter VisualStudio DevShell"
|
||||
return $false
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
# This script will install FFmpeg
|
||||
$msys = "C:\Utils\msys64\usr\bin\bash"
|
||||
|
||||
$version="n7.1.1"
|
||||
$version="n7.1"
|
||||
$url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
|
||||
$sha1="479291e8555fe036ca760f95cea829a21e9b8365"
|
||||
$sha1="f008a93710a7577e3f85a90f4b632cc615164712"
|
||||
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
|
||||
$ffmpeg_name="FFmpeg-$version"
|
||||
|
||||
@@ -144,7 +144,7 @@ function InstallAndroidArmv7 {
|
||||
$target_cpu="armv7-a"
|
||||
$api_version="24"
|
||||
|
||||
$ndkVersionLatest = "r27c"
|
||||
$ndkVersionLatest = "r26b"
|
||||
$ndkFolderLatest = "/c/Utils/Android/android-ndk-$ndkVersionLatest"
|
||||
|
||||
$toolchain="${ndkFolderLatest}/toolchains/llvm/prebuilt/windows-x86_64"
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
param(
|
||||
[string]$archVer="32",
|
||||
[string]$toolchain="vs2022",
|
||||
[string]$toolchain="vs2019",
|
||||
[bool]$setDefault=$true
|
||||
)
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
$libclang_version="20.1.0"
|
||||
$libclang_version="18.1.7"
|
||||
Write-Output "libClang = $libclang_version" >> ~/versions.txt
|
||||
|
||||
# PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/).
|
||||
@@ -24,8 +24,8 @@ function install() {
|
||||
|
||||
$zip = "c:\users\qt\downloads\libclang.7z"
|
||||
|
||||
$script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z"
|
||||
$script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z"
|
||||
$script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z"
|
||||
$script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z"
|
||||
|
||||
Download $OfficialUrl $CachedUrl $zip
|
||||
Verify-Checksum $zip $sha1
|
||||
@@ -38,10 +38,20 @@ $toolchainSuffix = ""
|
||||
|
||||
if ( $toolchain -eq "vs2022" ) {
|
||||
if ( $archVer -eq "64" ) {
|
||||
$sha1 = "60c840e627b5bb03663f00db17bf249b37936428"
|
||||
$sha1 = "7e51f0eabdfe8eea17aaf1dce7b2ffe1ea064f66"
|
||||
}
|
||||
elseif ( $archVer -eq "arm64" ) {
|
||||
$sha1 = "68ead0e3135dfccae21b226f187fc305803ede3d"
|
||||
$sha1 = "986d4d0f253de505ef499345238c101dac1ca3a6"
|
||||
}
|
||||
else {
|
||||
$sha1 = ""
|
||||
}
|
||||
$toolchainSuffix = "msvc"
|
||||
}
|
||||
|
||||
if ( $toolchain -eq "vs2019" ) {
|
||||
if ( $archVer -eq "64" ) {
|
||||
$sha1 = "8e0862386caef7e4537599ef980eeb6ebee8767f"
|
||||
}
|
||||
else {
|
||||
$sha1 = ""
|
||||
@@ -51,7 +61,7 @@ if ( $toolchain -eq "vs2022" ) {
|
||||
|
||||
if ( $toolchain -eq "mingw" ) {
|
||||
if ( $archVer -eq "64" ) {
|
||||
$sha1 = "2180859572dd6ad2029ecffffcc785cba334e037"
|
||||
$sha1 = "a23cbb0822cf2eb8d1cecf26e8614ef37a7611e3"
|
||||
}
|
||||
else {
|
||||
$sha1 = ""
|
||||
@@ -62,7 +72,7 @@ if ( $toolchain -eq "mingw" ) {
|
||||
|
||||
if ( $toolchain -eq "llvm-mingw" ) {
|
||||
if ( $archVer -eq "64" ) {
|
||||
$sha1 = "3e917d002f363c225e5ee2b7d8999a3cabd8b467"
|
||||
$sha1 = "9c34f99eb575b42c2befe27829c08e6d3f01ae58"
|
||||
}
|
||||
else {
|
||||
$sha1 = ""
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
# 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
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
function CpuArchToString {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $Architecture
|
||||
)
|
||||
|
||||
$arhitecture = switch ($Architecture) {
|
||||
([CpuArch]::arm64) {
|
||||
'arm64'
|
||||
}
|
||||
([CpuArch]::x64) {
|
||||
'amd64'
|
||||
}
|
||||
default {
|
||||
throw "Unsupported architecture: '$Architecture'"
|
||||
}
|
||||
}
|
||||
|
||||
return $arhitecture
|
||||
}
|
||||
|
||||
function StringToCpuArch {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[string] $Architecture
|
||||
)
|
||||
|
||||
$arhitecture = switch ($Architecture) {
|
||||
'arm64' {
|
||||
[CpuArch]::arm64
|
||||
}
|
||||
'amd64' {
|
||||
[CpuArch]::x64
|
||||
}
|
||||
default {
|
||||
throw "Unsupported architecture: '$Architecture'"
|
||||
}
|
||||
}
|
||||
|
||||
return $arhitecture
|
||||
}
|
||||
|
||||
function GetZlibEnvironmentVariableName {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture
|
||||
)
|
||||
|
||||
$architecture = CpuArchToString -Architecture $TargetArchitecture
|
||||
$environmentVariableName = "ZLIB_PATH_$architecture".ToUpper()
|
||||
|
||||
return $environmentVariableName
|
||||
}
|
||||
|
||||
function GetZlibPathByCpuArch {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture
|
||||
)
|
||||
|
||||
$environmentVariableName = GetZlibEnvironmentVariableName -TargetArchitecture $TargetArchitecture
|
||||
|
||||
return [System.Environment]::GetEnvironmentVariable($environmentVariableName, [System.EnvironmentVariableTarget]::Machine)
|
||||
}
|
||||
|
||||
function GetZlibPathByString {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[string] $TargetArchitecture
|
||||
)
|
||||
|
||||
$targetArchitecture = StringToCpuArch -Architecture $TargetArchitecture
|
||||
|
||||
return GetZlibPathByCpuArch -TargetArchitecture $targetArchitecture
|
||||
}
|
||||
@@ -1,204 +0,0 @@
|
||||
# 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 performs manual copying and patching of the zlib source to support
|
||||
# multi-architecture builds on Windows using Microsoft's nmake and Makefile.msc.
|
||||
#
|
||||
# Reasons for this approach:
|
||||
#
|
||||
# 1. In-source build system:
|
||||
# zlib's build system (Makefile.msc) writes all build artifacts directly into the source
|
||||
# directory. To allow concurrent builds for different architectures (e.g., x64 and arm64),
|
||||
# we copy the relevant source files into per-architecture build directories to isolate artifacts.
|
||||
#
|
||||
# 2. Incompatible linker base address:
|
||||
# The default Makefile.msc contains a hardcoded image base address ('-base:0x5A4C0000') for the
|
||||
# linker. This is invalid for ARM64 targets, which require base addresses above 4 GB. The script
|
||||
# patches this line out to prevent linker errors.
|
||||
#
|
||||
# 3. Broken #include in zconf.h:
|
||||
# Based on FFmpeg documentation (https://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows),
|
||||
# zconf.h may erroneously include '<unistd.h>', which doesn't exist on Windows. While Visual Studio 2022
|
||||
# builds tolerate this, we patch it out to ensure compatibility with older toolchains.
|
||||
#
|
||||
# These workarounds allow us to run reproducible, architecture-specific builds in CI without modifying
|
||||
# the original source tree or requiring upstream changes.
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
. "$PSScriptRoot\zlib-helpers.ps1"
|
||||
|
||||
$VERSION='1.3.1'
|
||||
$SHA1='f535367b1a11e2f9ac3bec723fb007fbc0d189e5'
|
||||
|
||||
$WIN32_DIRECTORY='win32'
|
||||
$MAKEFILE="$WIN32_DIRECTORY\Makefile.msc"
|
||||
|
||||
function BuildZlib {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $HostArchitecture,
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture
|
||||
)
|
||||
|
||||
PrepareBuildEnvironment -HostArchitecture $HostArchitecture -TargetArchitecture $TargetArchitecture
|
||||
|
||||
nmake /f $MAKEFILE
|
||||
}
|
||||
|
||||
function CopySource {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture
|
||||
)
|
||||
|
||||
$testDirectory='test'
|
||||
|
||||
$buildDirectory = GetBuildDirectory -TargetArchitecture $TargetArchitecture
|
||||
$win32BuildDirectory = "$buildDirectory\$WIN32_DIRECTORY"
|
||||
$testBuildDirectory = "$buildDirectory\$testDirectory"
|
||||
|
||||
New-Item -Path $buildDirectory -ItemType 'Directory'
|
||||
New-Item -Path $win32BuildDirectory -ItemType 'Directory'
|
||||
New-Item -Path $testBuildDirectory -ItemType 'Directory'
|
||||
|
||||
Copy-Item '*' -Include '*.c','*.h' -Destination $buildDirectory
|
||||
Copy-Item "$WIN32_DIRECTORY\*" -Include '*.def','*.msc','*.rc' -Destination $win32BuildDirectory
|
||||
Copy-Item "$testDirectory\*" -Include '*.c' -Destination $testBuildDirectory
|
||||
}
|
||||
|
||||
function GetBuildDirectory {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture
|
||||
)
|
||||
|
||||
$architectureDirectory = CpuArchToString -Architecture $TargetArchitecture
|
||||
|
||||
return "build\$architectureDirectory"
|
||||
}
|
||||
|
||||
function GetSource {
|
||||
$unzipDirectory = "C:\"
|
||||
$zlibName="zlib-$VERSION"
|
||||
|
||||
$zlibDirectory = "$unzipDirectory$zlibName"
|
||||
|
||||
$urlCached="http://ci-files01-hki.ci.qt.io/input/zlib/zlib-$VERSION.tar.gz"
|
||||
$urlPublic="https://github.com/madler/zlib/releases/download/v$VERSION/zlib-$VERSION.tar.gz"
|
||||
|
||||
$downloadPath = "C:\Windows\Temp\$zlibName.tar.gz"
|
||||
|
||||
Write-Host "Fetching zlib $VERSION..."
|
||||
|
||||
Download $urlPublic $urlCached $downloadPath
|
||||
Verify-Checksum $downloadPath $SHA1
|
||||
Extract-tar_gz $downloadPath $unzipDirectory
|
||||
Remove $downloadPath
|
||||
|
||||
return $zlibDirectory
|
||||
}
|
||||
|
||||
function GetTargetArchitectures {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $HostArchitecture
|
||||
)
|
||||
|
||||
$targetArhitectures = @([CpuArch]::arm64)
|
||||
|
||||
if ($HostArchitecture -eq [CpuArch]::x64) {
|
||||
$targetArhitectures += [CpuArch]::x64
|
||||
}
|
||||
|
||||
return $targetArhitectures
|
||||
}
|
||||
|
||||
function PatchMakefile {
|
||||
$pattern = '-base:\s*0x[0-9A-Fa-f]+'
|
||||
|
||||
(Get-Content $MAKEFILE) | ForEach-Object {
|
||||
$_ -replace $pattern, ''
|
||||
} | Set-Content $MAKEFILE
|
||||
}
|
||||
|
||||
function PatchSource {
|
||||
PatchZconf
|
||||
PatchMakefile
|
||||
}
|
||||
|
||||
function PatchZconf {
|
||||
$zconf = 'zconf.h'
|
||||
$pattern = '#\s*include\s*<unistd\.h>'
|
||||
|
||||
(Get-Content $zconf) | Where-Object {
|
||||
$_ -notmatch $pattern
|
||||
} | Set-Content $zconf
|
||||
}
|
||||
|
||||
function PrepareBuild {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture
|
||||
)
|
||||
|
||||
CopySource -TargetArchitecture $TargetArchitecture
|
||||
}
|
||||
|
||||
function PrepareBuildEnvironment {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $HostArchitecture,
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture
|
||||
)
|
||||
|
||||
$hostArhitecture = CpuArchToString -Architecture $HostArchitecture
|
||||
$targetArhitecture = CpuArchToString -Architecture $TargetArchitecture
|
||||
|
||||
if (-not $(EnterVSDevShell -HostArch $hostArhitecture -Arch $targetArhitecture)) {
|
||||
throw "Failed to prepare build environment for ${hostArhitecture}_${targetArhitecture}"
|
||||
}
|
||||
}
|
||||
|
||||
function SetZlibEnvironmentVariable {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[CpuArch] $TargetArchitecture,
|
||||
[Parameter(Mandatory)]
|
||||
[string] $ZlibDirectory
|
||||
)
|
||||
|
||||
$buildDirectory = GetBuildDirectory -TargetArchitecture $TargetArchitecture
|
||||
$environmentVariableName = GetZlibEnvironmentVariableName -TargetArchitecture $TargetArchitecture
|
||||
$environmentVariableValue = "$ZlibDirectory\$buildDirectory"
|
||||
|
||||
Set-EnvironmentVariable $environmentVariableName $environmentVariableValue
|
||||
}
|
||||
|
||||
$zlibDirectory = GetSource
|
||||
$hostArchitecture = Get-CpuArchitecture
|
||||
$targetArchitectures = GetTargetArchitectures -HostArchitecture $hostArchitecture
|
||||
|
||||
Push-Location $zlibDirectory
|
||||
|
||||
try {
|
||||
foreach ($targetArchitecture in $targetArchitectures) {
|
||||
PrepareBuild -TargetArchitecture $targetArchitecture
|
||||
|
||||
$buildDirectory = GetBuildDirectory -TargetArchitecture $targetArchitecture
|
||||
Push-Location $buildDirectory
|
||||
|
||||
try {
|
||||
PatchSource
|
||||
BuildZlib -HostArchitecture $hostArchitecture -TargetArchitecture $targetArchitecture
|
||||
SetZlibEnvironmentVariable -TargetArchitecture $targetArchitecture -ZlibDirectory $zlibDirectory
|
||||
}
|
||||
finally {
|
||||
Pop-Location
|
||||
}
|
||||
}
|
||||
}
|
||||
finally {
|
||||
Pop-Location
|
||||
}
|
||||
@@ -21,9 +21,9 @@ done
|
||||
|
||||
echo "Using public repositories for now. Repo-clones isn't set yet for Debian use"
|
||||
# (ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories."
|
||||
echo "deb http://deb.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
|
||||
echo "deb-src http://deb.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
|
||||
|
||||
echo "deb https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
|
||||
echo "deb-src https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
# Git is not needed by builds themselves, but is nice to have
|
||||
@@ -145,7 +145,6 @@ installPackages+=(libbluetooth-dev)
|
||||
installPackages+=(dkms)
|
||||
# Needed for qtspeech
|
||||
installPackages+=(libspeechd-dev)
|
||||
installPackages+=(flite1-dev)
|
||||
#Pypdf for PDF reading in RTA tests
|
||||
installPackages+=(python3-pypdf2)
|
||||
# Needed for b2qt
|
||||
|
||||
@@ -41,8 +41,8 @@ EOF
|
||||
sudo sbuild-adduser "$LOGNAME"
|
||||
newgrp sbuild
|
||||
|
||||
# Create chroot for debian bookworm
|
||||
sudo sbuild-createchroot --include=eatmydata,ccache,gnupg,ca-certificates bookworm /srv/chroot/stable-arm64
|
||||
# Create chroot for debian stable
|
||||
sudo sbuild-createchroot --include=eatmydata,ccache,gnupg,ca-certificates stable /srv/chroot/stable-arm64
|
||||
|
||||
echo "Create chroot for Ubuntu Jammy"
|
||||
# First we need update the deboostrap scripts
|
||||
@@ -60,5 +60,5 @@ sudo sbuild-createchroot --include=gnupg,ca-certificates jammy /srv/chroot/jammy
|
||||
echo "Done creating chroot for Ubuntu Jammy"
|
||||
|
||||
# Update chroot.
|
||||
sudo sbuild-update -udcar bookworm
|
||||
sudo sbuild-update -udcar stable
|
||||
sudo sbuild-update -udcar jammy
|
||||
|
||||
@@ -12,8 +12,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
@@ -69,9 +67,8 @@ installPackages+=(libva-devel)
|
||||
installPackages+=(gtk3-devel)
|
||||
# libusb1 for tqtc-boot2qt/qdb
|
||||
installPackages+=(libusbx-devel)
|
||||
# speech-dispatcher-devel / flite-devel for QtSpeech
|
||||
# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux
|
||||
installPackages+=(speech-dispatcher-devel)
|
||||
installPackages+=(flite-devel)
|
||||
# Python for pyside
|
||||
installPackages+=(python3.11)
|
||||
installPackages+=(python3.11-pip)
|
||||
@@ -119,7 +116,6 @@ installPackages+=(libxkbcommon-devel)
|
||||
installPackages+=(libxkbcommon-x11-devel)
|
||||
# xcb-util-* libraries
|
||||
installPackages+=(xcb-util)
|
||||
installPackages+=(xcb-util-devel)
|
||||
installPackages+=(xcb-util-image-devel)
|
||||
installPackages+=(xcb-util-keysyms-devel)
|
||||
installPackages+=(xcb-util-wm-devel)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#Copyright (C) 2023 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
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
# TODO: investigate why the FFmpeg plugin can't find shared FFmpeg on rhel-8.8 / 8.10
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86"
|
||||
|
||||
@@ -11,8 +11,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
|
||||
@@ -11,8 +11,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
#Copyright (C) 2023 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
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64"
|
||||
|
||||
@@ -12,8 +12,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
#Copyright (C) 2023 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
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64"
|
||||
|
||||
@@ -12,8 +12,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
@@ -69,9 +67,8 @@ installPackages+=(libva-devel)
|
||||
installPackages+=(gtk3-devel)
|
||||
# libusb1 for tqtc-boot2qt/qdb
|
||||
installPackages+=(libusbx-devel)
|
||||
# speech-dispatcher-devel / flite-devel for QtSpeech
|
||||
# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux
|
||||
installPackages+=(speech-dispatcher-devel)
|
||||
installPackages+=(flite-devel)
|
||||
# Python 3.8 for pyside. Qt for Python support for Python 3.6 will be deprecated in within pyside6.3
|
||||
installPackages+=(python3.11)
|
||||
installPackages+=(python3.11-pip)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#Copyright (C) 2023 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
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
# TODO: investigate why the FFmpeg plugin can't find shared FFmpeg on rhel-8.8
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86"
|
||||
|
||||
@@ -11,8 +11,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
|
||||
@@ -11,8 +11,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
@@ -74,9 +72,8 @@ installPackages+=(yasm)
|
||||
installPackages+=(gtk3-devel)
|
||||
# libusb1 for tqtc-boot2qt/qdb
|
||||
installPackages+=(libusbx-devel)
|
||||
# speech-dispatcher-devel / flite-devel for QtSpeech
|
||||
# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux
|
||||
installPackages+=(speech-dispatcher-devel)
|
||||
installPackages+=(flite-devel)
|
||||
# Python 2 devel and pip. python-pip requires the EPEL repository to be added
|
||||
# Python 2 no longer supported
|
||||
# installPackages+=(python2-devel python2-pip)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
|
||||
@@ -11,8 +11,6 @@ sudo yum -y remove PackageKit gnome-software
|
||||
sudo yum -y update
|
||||
|
||||
installPackages=()
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
installPackages+=(git)
|
||||
installPackages+=(zlib-devel)
|
||||
installPackages+=(glib2-devel)
|
||||
@@ -74,9 +72,8 @@ installPackages+=(yasm)
|
||||
installPackages+=(gtk3-devel)
|
||||
# libusb1 for tqtc-boot2qt/qdb
|
||||
installPackages+=(libusbx-devel)
|
||||
# speech-dispatcher-devel / flite-devel for QtSpeech
|
||||
# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux
|
||||
installPackages+=(speech-dispatcher-devel)
|
||||
installPackages+=(flite-devel)
|
||||
# Python 2 devel and pip. python-pip requires the EPEL repository to be added
|
||||
# Python 2 no longer supported
|
||||
# installPackages+=(python2-devel python2-pip)
|
||||
@@ -128,7 +125,6 @@ installPackages+=(libxkbcommon-devel)
|
||||
installPackages+=(libxkbcommon-x11-devel)
|
||||
# xcb-util-* libraries
|
||||
installPackages+=(xcb-util)
|
||||
installPackages+=(xcb-util-devel)
|
||||
installPackages+=(xcb-util-image-devel)
|
||||
installPackages+=(xcb-util-keysyms-devel)
|
||||
installPackages+=(xcb-util-wm-devel)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" "static"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" "static"
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
# Copyright (C) 2023 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
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" "static"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" "static"
|
||||
|
||||
@@ -8,15 +8,15 @@ sudo zypper -nq install elfutils binutils
|
||||
|
||||
sudo zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/devel:gcc/SLE-15/devel:gcc.repo
|
||||
sudo zypper refresh
|
||||
sudo zypper -nq install --force-resolution gcc11 gcc11-c++
|
||||
sudo zypper -nq install --force-resolution gcc10 gcc10-c++
|
||||
|
||||
# Make sure needed ca-certificates are available
|
||||
sudo zypper -nq install ca-certificates
|
||||
|
||||
sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 1 \
|
||||
--slave /usr/bin/g++ g++ /usr/bin/g++-11 \
|
||||
--slave /usr/bin/cc cc /usr/bin/gcc-11 \
|
||||
--slave /usr/bin/c++ c++ /usr/bin/g++-11
|
||||
sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 1 \
|
||||
--slave /usr/bin/g++ g++ /usr/bin/g++-10 \
|
||||
--slave /usr/bin/cc cc /usr/bin/gcc-10 \
|
||||
--slave /usr/bin/c++ c++ /usr/bin/g++-10
|
||||
|
||||
sudo zypper -nq install git ninja make patch wget tar
|
||||
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
# 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
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" "static"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" "static"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2023 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
|
||||
|
||||
# Disable updates
|
||||
echo "Disabling auto-upgrades"
|
||||
sudo sed -i 's/"1"/"0"/g' /etc/apt/apt.conf.d/20auto-upgrades
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#Copyright (C) 2023 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
|
||||
|
||||
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
|
||||
|
||||
7
coin/provisioning/qtci-macos-14-arm/28-patchelf.sh → coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/90-squish.sh
Executable file → Normal file
7
coin/provisioning/qtci-macos-14-arm/28-patchelf.sh → coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/90-squish.sh
Executable file → Normal file
@@ -1,7 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2025 The Qt Company Ltd
|
||||
#Copyright (C) 2023 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
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/unix/squishInstall.sh"
|
||||
|
||||
set -ex
|
||||
|
||||
brew install patchelf
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user