| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We try to build qtpdf after qtwebengine is done.
However "ninja docs" now depends on gn run and
should not trigger module compilation. Therefore
sync on NinjaReady target so GnReady for QtPdf
can run just after gn binary is compiled and
does not trigger whole qtwebenigne module build.
Task-number: QTBUG-88482
Pick-to: 6.5
Change-Id: Iaf7f8ec631414c636915d53532bc85e84c5534a5
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix typo, which slipped through testing. This covers the case when
gn is already built (external project) and user reconfigures qtwebengine
after removing cache (for non-prefix build)
Pick-to: 6.4 6.4.0 6.3
Task-number: QTBUG-106406
Change-Id: Ic0d105ff7d50a07f3729cb0cd095d2a8daf6911b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
In case of non prefix builds gn should be copied so
it can be detected by cross-build from host qt.
Pick-to: 6.4 6.3
Change-Id: I02937fc7101c249b22cfa06275c508410f888248
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-105718
Change-Id: I2ad190e5536cdbdc8d2656e61892545d66911a02
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.
Existing copyright statements remain intact
Task-number: QTBUG-88621
Change-Id: I118bd63694cfe2c9a413af4a38828a31727f8e86
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
If gn is found in install path, still install it for qt host
otherwise in case of reconfigure we never install.
Pick-to: 6.3 6.2
Change-Id: I154e2ead386d52006e2647297b6148170b8a85cb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we only supported a cross-compiling with universal builds,
however qmake also supports 'regular' cross compilation (by setting
'-device-option'). This is semi-supported with qt-cmake as we need to
provide additional configure defines like:
* CMAKE_OSX_ARCHITECTURES=arm64
* CMAKE_SYSTEM_NAME=Darwin
* CMAKE_OSX_DEPLOYMENT_TARGET=10.14
It might seem to be a far fetched issue, however in case of webengine
doing the cross compilation for only one architecture allows to save
compile times when testing only arm64 builds.
Note we do not need to create gn toolchains for that case, however
unlike universal builds it requires host qt build for tools.
Pick-to: 6.3 6.2
Change-Id: Ica8470fdd4cad4866c1470e0403ffd019eaf39a6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously if qtwebengine was configured with a CMake version lower
than 3.19, CMake would exit with a fatal error saying the version is
too low.
Now the CMake version check is delayed to the configure summary which
changes the hard error into a build time warning instead, just like
with all the other repo requirements.
An additional cmake_minimum_required call is used to require all 3.19
behaviors (upgraded policies) once configure establishes that the
CMake version is new enough.
Pick-to: 6.2 6.3
Change-Id: I03a20ae62ce2dcee23e5615241c6c97a86df4d2f
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QtPDf iOS builds must support fat libs builds. Compared
to 5.15 however this is done differently. Before we tweaked gn
to compile multi arch with 'Xarch' parameter. This had few
downsides as we could not determine which arch/cpu compiles
given file as compilation was opaque to gn. The current approach is
to follow mac universal builds, compile builds separately for each
architecture and lipo the outcome. However, this introduces some
issues as ios builds are static builds and creating lipo archive
will gather object files, which should end up in final QtPdf lib
instead. Therefore create multi arch object file instead of archive
and use this one.
Note the compiler now uses arch triple for Pdfium as Chromium does,
however qt files still use 'arch' and '*-version-min' combination.
Task-number: QTBUG-88614
Pick-to: 6.3 6.2
Change-Id: I7775c8b4d1554df497eb61fa6187f12c00b9032d
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can configure webenigne repository with
FEATURE_qtpdf_build and FEATURE_qtwebegine_build
so make them public. The handling is still affected
by QTBUG-96936,however private vs public features
will most likely get better handling soon.
Fix build summary to better reflect build options.
Pick-to: 6.2
Change-Id: Ic6ef54a68b68d0f05c520a058665e6294efbe041
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The error is:
CMake Error at src/CMakeLists.txt:166 (add_dependencies):
Cannot add target-level dependencies to non-existent target
"run_core_GnReady".
Change-Id: I8adc3a90d18fc0edab39ba9a37eaf3e18636b30e
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit d8bf7df001670b879492743cd4431c5956708653)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
No webengine build can be also specified from command line.
Pick-to: 6.2
Change-Id: I812c871dfbab4b34c650e67344af835f421ea61c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Pick-to: 6.2
Change-Id: I5e7a34287ee59d904103fe310fc7c6a36a8dfbc9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Pick-to: 6.2
Task-number: QTBUG-95353
Change-Id: I4dd9f3934bdd478fb6d2fa686074a24d91f09953
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-86726
Change-Id: I33ec2a73254d9b44de83f4f5491f372b4bb9959b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor the gn handling and add:
* the gn target for encapsulating resources needed to
run chromium builds
* the support for SOURCES, INCLUDES, DEFINES, COMPILE OPTIONS.
* the multi config support for cmake and enable debug,
release builds
* CONDITION evaluation for the gn target and the gn arg list
* the linux specific config and all missing source sets
* use REALPATH instead of ABSOLUTE, this fixes missing
drive letter on windows
Task-number: QTBUG-91760
Change-Id: Ib283d8ab817ff36ee9c94c2b8f44785709c45258
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>
|
|
|
|
|
|
|
|
|
| |
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>
|