| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test and examples are no longer included as external
projects, this created and issue that convert_dict
tool does not work during build time due to not installed
resources. Before we supported converting dictionaries
in a prefix build, by supplying the path to the ICU data
file located in the Qt build path. The tool had wrapper script
generated which set QT_WEBENGINE_ICU_DATA_DIR.
This was done using QT_TOOL_ENV:
icu_data_dir.name = QT_WEBENGINE_ICU_DATA_DIR
icu_data_dir.value = $$OUT_PWD/../../../src/core/$$getConfigDir()
QT_TOOL_ENV = icu_data_dir
load(qt_tool)
Add workaround for that issue with cmake by setting env variable
with relative path to resources in build tree.
Make example more exciting for new comers and add generator
expression which guards the setting based on module build.
Note this is temporary solution and webengine cmake api should be
introduced to wrap the conversion tasks in some nice look public api
based on qt_internal_wrap_tool_command.
Disable example on windows, since on one of coin winodws machines we get
error "Exit code 0xc0000135".
Task-number: QTBUG-95590
Change-Id: I44664cbcc85b00ec66657e583929a0fba7bde65b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit b4915805b9527864e2475acfb29f7a029f3325ca)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Change-Id: I1e9f3733359c0a02c6f351b7a090ec9fe4664d45
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit e7edc1bc5c55a9b289bec2ff85f869c368bc9e5f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Add macros to share common cmake code blocks
with QtPdf. Reconsider later to do proper scoping
and change those to functions if make sense.
Change-Id: I500acdba1415feab373a012dcf9a9ddedf33cfac
(cherry picked from commit b3031066d17ef01802a4c9752f87675d6a4a1df5)
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since d53f7fcc52 we require toolchain in certain cases.
Add super build check.
Add user notice that qttoolchain.cmake file is required.
Moreover WebEngine uses external project and cmake does
not support querying user defines from command line and
this issue is tracked here:
https://gitlab.kitware.com/cmake/cmake/-/issues/19622
Therefore we assume we get all the data from toolchain.
Fixes: QTBUG-94757
Task-number: QTBUG-94804
Task-number: QTBUG-95051
Task-number: QTBUG-94997
Change-Id: Ibee121ac390892c28d2e6a388e73700a7e69a521
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit cc554531a06e45b76d08eff31ffbc2cd3c136f7d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
| |
Pick-to: dev
Change-Id: Ibab4630fd226f46f58d08c603436dc2c378212ec
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add arm cross-compile basic support. CMake does not
support host builds. However we do host build with gn and
changing that would require an extra effort to keep all necessary
changes with Chromium upstream. Therefore let gn to perform
the host build for required tools and just feed gn with all the
build data.
Add new build steps:
* install gn into QT_HOST_PATH/libexec.
* run hostBuild project to get native architecture and compiler
* call PkgConfigHost to pass pkg-config paths to gn
* create wrapper script for host pkg-config to escape
yocto shell pkg config exports
This change also splits gn toolchain into 3 toolchains host,target,v8
Now hostBuild provides host and v8 toolchain in case of cross compile.
The build optimizations will follow in another patch.
Fix not existing 'boot2qt' condition and enables more test on QEMU.
Note this is tested only with yocto based images.
Pick-to: dev
Task-number: QTBUG-91760
Change-Id: Ic2bea12229acc71fbd36a848e9ed4fed7e14b485
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This fits better with topLevel builds where you can do:
cmake --build . -- qtwebengine
Change-Id: Ic698d110570ed31c5515bac77d56a5639f4ac3dd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit b7da2b5040bb26771103076b7f5fdcb06d639612)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I1ce6e9d0e03bb780f85636865e15552ac28876fa
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit 1efcf20bcc1d41edb56d4ef491dc9c26b7a98f15)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: Ic7a4096d06b05a62a01565d6e7aceac12dc73def
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 7237c81bf20571fac2f898e7e29e7be386e3270a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
This enables running more tests.
Fix issues with tst_qquickwebengineviewgraphics.
Change-Id: Ib223b4e723a7192c18202e8d5dd65d83872f3336
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 4e92dc14b86655154f70e8a1093cc9f3aae1604f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I57d3c057e076445f902da509655728cb20a4a18b
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit c8643e47b0ba8dc0f345c2feaabfa60e54f809c3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
To ensure that correct CMake and qmake support files are used when
building examples.
Change-Id: Ic52ee7f7153877071ab3883fd436ad888f90680d
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit f04bc6833c01efc0fb37d6f6c31c6fa427087664)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Add spellchecker dictionary conversion tool.
Change scope of gn object imported variables to function scope.
Change-Id: Ice579a89e20b80034b675e7f767a774100478472
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 9451ceee24e832d32a86ae6a2f37eea781acaa2f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-94333
Change-Id: I1e9b4c3f042dc370441e062288f5f9689d31c091
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit b8804bf868c9f9b18a8b1caa9f512659113ddb98)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I5674d887a73a6a693d1babc416470c9873491eb3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check the version before using gn, since some systems
can have already gn installed. In case of cross builds
gn is installed into host qt and can simply end up in /usr/bin
path of x86_64 sysroot in case of yocto builds, meaning it will
be picked up by the host system path. Moreover, findGn.cmake
is also going to be installed and should not just look for non
existing builds paths.
One can also avoid pointless recompilations of gn for every
single clean build. Gn can be easily installed by simply building
the "gn" project:
cmake path/to/qtwebengine/src/gn
cmake --build . --parallel
cmake --install .
Note setting DCMAKE_INSTALL_PREFIX and/or DESTDIR
can install gn to desired location.
Change-Id: Ie8f989c838dad2e6e7e346a4f6a861e187ec037f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-86726
Change-Id: I33ec2a73254d9b44de83f4f5491f372b4bb9959b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Guess a toolchain link for top-level builds.
Copy the resources to their final destinations, and search
for the helper process where it is build in this config.
Change-Id: Ie9e829c19d42dddb85df188e48ec269f85268ed4
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coin compiles examples with qmake during cmake build,
unfortunately this fails to have proper includes.
The reason is that during the build qt-cmake creates dummy
mkspecs files even for targets excluded from 'all'.
(targets we use for genex execute). These files later are
sucked by qmake instead of installed pri files since the
source tree is tainted on coin due to doing in-source builds.
Add a workaround for now and make sure dummy mkspecs are removed.
Task-number: QTBUG-93694
Change-Id: If288809b336055a170baa82b7a75d8e9ae46f988
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
| |
The linker on coin needs to open many files.
Task-number: COIN-699
Change-Id: I2819c2608a789387c260bab11276542103157983
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If the build node was skip due to missing requirements,
the test node still tries to download artifacts.
Add the workaround for now.
Task-number: COIN-707
Change-Id: Ib5332b6f5af82a77ac2cf702f5be4abf3fb075a0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
We need to pass -F or -iframework to gn as a compiler flag, however
cmake keeps this parameter as include dir and adds internally
"-iframework QtFoo.framework/.." for the compiler call. This internal
handling can not be accessed with the genex. Add the manual conversion.
Task-number: QTBUG-91760
Change-Id: Id12831432ccb0516be52f79bd5f6cfcbe7e87d9c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use QT_TESTCASE_SOURCEDIR instead of TESTS_SOURCE_DIR.
Introduce Test::HttpServer and Test::Util targets.
Query shared data location from server.
Clean up "shared" resources.
Note QT_TESTCASE_SOURCEDIR must be turned into the canonical form
since the user can call on windows:
"cmake \path\to\foo" instead of "cmake c:\path\to\foo" which
will break all file:// urls.
Note this patch breaks qmake builds.
Task-number: QTBUG-91760
Change-Id: Ibc1f904ac9acd375d1ff70ff80f0c533497e3f20
Reviewed-by: Michael Brüning <michael.bruning@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>
|
|
|
|
|
|
|
|
|
| |
Fix some library dependencies and make proper header includes
in core.
Task-number: QTBUG-91760
Change-Id: I415361dd42ef2cc39716ce3f5f56e6e8556ac4c8
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create QtWebEngineCore, QtWebEngineProcess and drive
headers sync from the libs project.
Main project build should not generate any header files,
since the logic in qtbase assumes fixed QT_BUILD_DIR, which is
by default CMAKE_BINARY_DIR for prefix builds. Drive all syncqt
calls from the libs project and leave the main build
just for the feature evolution and the build summary reporting.
This fixes header installation issues, however this patch
requires also sync.profile update which is done later, to keep
the qmake build still functional.
Note this patch only adds debug builds for linux.
Task-number: QTBUG-91760
Change-Id: I516c26206baa1cf6b966629a694dadce7f79dbec
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Use simple templates. This will get own target
in followup changes.
Task-number: QTBUG-91760
Change-Id: I0b6991f7b54183aa9fb667cec5ad347f66c78b99
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-91760
Change-Id: I56aaf6af42eb1877acbc0faf4e125bc8de4c72fb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only evaluate features in the super repo and do not
create config headers files during the configure step.
However, print the build summary.
The build config headers will be created during the
configure step of 'libs' external project.
Done-With: Jüri Valdmann <juri.valdmann@qt.io>
Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io>
Task-number: QTBUG-91760
Task-number: COIN-711
Change-Id: I481525571e71ca4684de5827f641416035a8f22a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
Add the top level cmake project and ninja and gn cmake builds.
Make ninja and gn build optional.
With qmake we had four stages during the build:
* configure (initial dependencies check)
* qmake (build ninja, build gn, run gn)
* make (compilation)
* make install
With cmake we have some limitations:
a) we need to pass the build config to gn, however cmake
evaluates generator expressions during the generation phase
this means we need a recursive call to cmake
b) qt-cmake qtbase logic (+syncqt) assumes "fixed" build locations
to handle deployment of headers and libs (it uses
CMAKE_BINARY_DIR for QT_BUILD_DIR)
c) cmake can not run twice in the same build directory
d) running recursive/child cmake, makes all generated targets not
accessible during configure time of parent's cmake
e) cmake can only "build" things for subdirectories
To deal with mentioned limitations and to keep things simple we will
split those steps into separate projects:
* SUPERBUILD - this project does dependency checks, only evaluates features
to show the build summary and passes them to EXAMPLES,LIBS,TESTS
projects, it also runs the generator expression to feed LIBS project's
cmake, it does not try to run syncqt as result of (b) and (c)
* NINJA (build ninja)
* GN (build gn)
* LIBS - projects runs simplified feature evaluation (CONDITIONS
resolved by SUPERBUILD cmake) to generate build headers (+syncqt),
it also runs gn during configure and does all libs
compilation. The project's source root must be "src" directory
as a result of (a),(b),(c)
* EXAMPLES - builds examples as a result of (d),(e)
* TESTS - builds tests as a result of (d),(e)
Each of projects will have three stages: configure, compile, install.
Task-number: QTBUG-91760
Done-With: Jüri Valdmann <juri.valdmann@qt.io>
Change-Id: I3b44decefa17f177e5e07c563796aa158a0b0ecb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|