| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix condition to include examples and tests based
on targets. We are no longer behind external project
so we can simply check for targets.
Fix issue for including automoc call when running qt
configure when doing top level build.
Task-number: QTBUG-95590
Change-Id: I0cd2d8016e14ddf296455277e968b43a923a7217
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit faa74f9b402f6b5d78acdb71b05ca340684b3591)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cmake builds when cross compiling have 3 different sets
of qt libs:
* sysroot
* host
* staging ones (target)
However unlike qmake cmake does not support rpath-link therefore libs
during the linking can be resolved to the sysroot instead of
staging (target) ones, meaning we compile against newer headers
and link with older sysroot's lib.
Luckily this only happens when cmake is not able to set full absolute
path to the library in staging dir, which in turn depends on rpath of
the library. If rpath start with ORIGIN cmake will make absolute
path and all implicit dependency libs are pulled from that lib location.
However, during examples builds libs for given module are not installed
yet, meaning there is no ORIGIN in rpath libraries so no absolute path
meaning that all implicit dependencies in result are pulled from
sysroot. This leads to linker errors in best scenario or to faulty
linked application.
The workaround introduced in QTBUG-86533 is to add all implicit
dependencies as explicit, but in case of webengine it means adding log
list of implicit dependencies to every single example.
Simply disable build of examples as workaround.
Note tests are not currently affected by that issue on coin, since they
are built after installing module libs, which is not the case for
examples.
Note this issue is affecting us now, since external project is gone and
we do not install libs implicitly during module build stage.
Task-number: QTBUG-86533
Change-Id: Ica29cffcfbfcf66912af60ba4f8e88eca3af6f78
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 7d2a2bf1b022419872b9eac813afed112240631c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous gn-cmake integration was driven towards having the
complete cmake build tree which included gn build artifacts.
These were marked as IMPORTED in cmake build files, this way
cmake "knew" all object files and static libs coming from gn.
To achieve that we needed to run the cmake configure twice.
First to feed gn with the build information from cmake and
then the second run to import all the build information to
cmake based on gn run.
As a side effect of this the first run cmake was creating incomplete
targets, so we could use generator expressions to gather all the data
needed for gn run. The second run of cmake was able to create fully
initialized targets. We used 'external project' to run cmake the second
time.
This approach worked well when doing "module" builds and having two
targets, one in the main project and one in external was not an issue.
Moreover, this approach could be integrated nicely since CI does only
"module" builds.
Unfortunately "top level" builds are implemented to import all qt
targets into one build tree. This created issue for qtwebengine since
fully initialized targets were 'hidden' by 'external project' and
including half baked (dummy) targets from the main project resulted
in bunch of issues related to the dependency tracking and build race
conditions. Also using 'external project' complicated installation
rules and in the end installation worked differently than in other
modules.
With current approach we use response files, so we hide all build
artifacts coming from gn and feed cmake with those response files.
This way we run the cmake configure once and we create all the targets
once. Using rsp files hacks linker options in cmake, so this approach
is sub-optimal, however allows to have working "top level" builds.
It is worth mentioning here that the final module linking has to take
place with cmake's part of build since doing one static lib in gn is
not possible due to the toolchain limitation (msvc is not able to
process static libs over 4Gb and has no support for thin archives,
so only a shared lib is doable at time of writing)
Following changes are made:
* remove 'external project' for qtwebengine target, we keep it however
for ninja ,gn and a host project
* call gn from cmake in a scripting mode during build and not configure
run, this way BUILD.gn is assembled as a build step so after
generator expressions are executed
* BUILD.gn is assembled now from 4 files:
- root template BUILD.root.gn.in
- compiler data gn_config_c.cmake, gn_config_cxx.cmake
- sources data gn_cofnig_target.cmake
* since we use gn wrapper script use gn.args file to pass arguments
instead of a command line, so this file can be now easily modified
when running gn and ninja 'manually'
* since a script mode does not support handling of properties with
TARGET as such, use the DIRECTORY scope in some of our functions
which handle GN_TARGET
* use qt_build_repo() in main CMakeFile and remove all coin and top
level build hacks
* remove 'external project' for examples and tests, this is no longer
required as all qt targets are not hidden by external project
* remove leftovers from gn feedback call used for GN_TARGET
* improve installation rules, WebEgineCore target is not by default
installed during build, therefore we need to copy resources and
translations to root so tests and examples still can be built without
a module being installed first
* adjust GN lookup paths, we look for gn in main configure and during
scripting mode when gn is executed
Fixes: QTBUG-94349
Fixes: QTBUG-94709
Fixes: QTBUG-94922
Fixes: QTBUG-94997
Fixes: QTBUG-95051
Fixes: QTBUG-95152
Fixes: QTBUG-95158
Fixes: QTBUG-95972
Task-number: QTBUG-95231
Task-number: QTBUG-95590
Change-Id: I5e7a34287ee59d904103fe310fc7c6a36a8dfbc9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit bd75c51f2a7f7384d3303e86764211cb3e32f03d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Port QtPdf to Qt6:
* QtPdf,QtPdfWidgets,QtPdfQuick libs
* QtPdfQuickPlugin, QtPdfPlugin (imageformat) plugins
* widget and quick examples
* qtpdf tests
To fit gn cmake integration and new repo layout code is a bit
reshuffled.
Compared to qmke build following features are not ported yet:
* ios fat libs
* qtbase 3rdparty static dependencies
WebEngine build can be skipped with setting
QT_FEATURE_qtwebengine_build=OFF
Note this patch needs follow up for 6.2 branch to disable qtpdf
builds by default, since this should not part of qt 6.2 release.
Task-number: QTBUG-95353
Change-Id: I4dd9f3934bdd478fb6d2fa686074a24d91f09953
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 79d04aa9e3e9aa84d7378260519f9e9a6759dc41)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
- Fix typos
- Fix Quick Controls 2 dependencies
Change-Id: I3f8d2314a78f9193ce20b69cf2b1ed87311d4870
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit 3668c27dee6afe1ef0e05df4fc6c5a3450e84901)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
| |
Task-number: QTBUG-86726
Change-Id: I33ec2a73254d9b44de83f4f5491f372b4bb9959b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
QtWebEngine requires support of TARGET_PROPERTY for genex in
gn template generation to dump all compilation flags.
This is supported since version 3.19, set examples to 3.16 as
rest of the qt.
Task-number: QTBUG-91760
Change-Id: Ifa5903c8c6efcb160db05baf1e18c865b48bcf39
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
Add only quick and widget examples to the build for now.
Update examples qmake files so the ci can also build qmake
examples after the cmake bulid.
Note this patch breakes qmake builds.
Task-number: QTBUG-91760
Change-Id: Ia867a49bc3deab1967bdedcf525ad4afe3967c2a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|