summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2017-04-26 15:39:33 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2017-04-28 16:26:32 +0000
commit9df14dff86fcc2daa0d9342174dba62ec32169bc (patch)
tree4bb20783045b0e8d92f9418c99a30b318ccbd731
parent4ee9cf19095a66b1cdb47229b1a1e7957dff584f (diff)
Clean "system" calls to build&run gn and ninja
There was a time when gn build was called during make step, however this was not working with recursive qmake calls. Clean up leftovers and fix path and warnings like "Conditional must expand to exactly one word." during builds. Change-Id: I8546520345a5f89ee829558fa0fd9183587848b3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--src/buildtools/gn.pro46
-rw-r--r--src/buildtools/ninja.pro36
-rw-r--r--src/core/gn_run.pro24
3 files changed, 46 insertions, 60 deletions
diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
index f8f8b20d..829e7a31 100644
--- a/src/buildtools/gn.pro
+++ b/src/buildtools/gn.pro
@@ -1,36 +1,30 @@
TEMPLATE = aux
-CONFIG += release
-
option(host_build)
-defineReplace(buildGn) {
- gn_args = $$1
- out = $$gnPath()
- !qtConfig(system-ninja): ninja_path = "--path $$ninjaPath()"
- # check if it is not already build
- !exists($$out) {
- mkpath($$dirname(out))
- src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
- gn_bootstrap = $$system_path($$absolute_path(chromium/tools/gn/bootstrap/bootstrap.py, $$src_3rd_party_dir))
- gn_args = $$system_quote($$gn_args)
- gn_configure = $$system_quote($$gn_bootstrap) --shadow --gn-gen-args=$$gn_args $$ninja_path
- !system("cd $$system_quote($$system_path($$dirname(out))) && $$pythonPathForSystem() $$gn_configure") {
- error("GN build error!")
- }
- }
-}
+!debug_and_release: CONFIG += release
isQtMinimum(5, 8) {
include($$QTWEBENGINE_OUT_ROOT/qtwebengine-config.pri)
QT_FOR_CONFIG += webengine-private
}
-!qtConfig(system-gn) {
- buildgn.target = build_gn
- buildgn.commands = $$buildGn($$gnArgs())
- QMAKE_EXTRA_TARGETS += buildgn
-
- default_target.target = first
- default_target.depends = buildgn
- QMAKE_EXTRA_TARGETS += default_target
+build_pass|!debug_and_release {
+ !qtConfig(system-gn): CONFIG(release, debug|release) {
+ buildgn.target = build_gn
+ gn_args = $$gnArgs()
+ out = $$gnPath()
+ !qtConfig(system-ninja): ninja_path = "--path $$ninjaPath()"
+ # check if it is not already build
+ !exists($$out) {
+ mkpath($$dirname(out))
+ src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
+ gn_bootstrap = $$system_path($$absolute_path(chromium/tools/gn/bootstrap/bootstrap.py, $$src_3rd_party_dir))
+ gn_args = $$system_quote($$gn_args)
+ gn_configure = $$system_quote($$gn_bootstrap) --shadow --gn-gen-args=$$gn_args $$ninja_path
+ !system("cd $$system_quote($$system_path($$dirname(out))) && $$pythonPathForSystem() $$gn_configure") {
+ error("GN build error!")
+ }
+ }
+ QMAKE_DISTCLEAN += $$out
+ }
}
diff --git a/src/buildtools/ninja.pro b/src/buildtools/ninja.pro
index 0a01f1f4..1b17c6df 100644
--- a/src/buildtools/ninja.pro
+++ b/src/buildtools/ninja.pro
@@ -1,31 +1,25 @@
TEMPLATE = aux
-CONFIG += release
-defineReplace(buildNinja) {
- out = $$ninjaPath()
- # check if it is not already build
- !exists($$out) {
- mkpath($$dirname(out))
- src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
- ninja_configure = $$system_quote($$system_path($$absolute_path(ninja/configure.py, $$src_3rd_party_dir)))
- !system("cd $$system_quote($$system_path($$dirname(out))) && $$pythonPathForSystem() $$ninja_configure --bootstrap") {
- error("NINJA build error!")
- }
- }
-}
+!debug_and_release: CONFIG += release
isQtMinimum(5, 8) {
include($$QTWEBENGINE_OUT_ROOT/qtwebengine-config.pri)
QT_FOR_CONFIG += webengine-private
}
-!qtConfig(system-ninja) {
- buildninja.target = build_ninja
- buildninja.commands = $$buildNinja()
- QMAKE_EXTRA_TARGETS += buildninja
-
- default_target.target = first
- default_target.depends = buildninja
- QMAKE_EXTRA_TARGETS += default_target
+build_pass|!debug_and_release {
+ !qtConfig(system-ninja): CONFIG(release, debug|release) {
+ out = $$ninjaPath()
+ # check if it is not already build
+ !exists($$out) {
+ mkpath($$dirname(out))
+ src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
+ ninja_configure = $$system_quote($$system_path($$absolute_path(ninja/configure.py, $$src_3rd_party_dir)))
+ !system("cd $$system_quote($$system_path($$dirname(out))) && $$pythonPathForSystem() $$ninja_configure --bootstrap") {
+ error("NINJA build error!")
+ }
+ }
+ QMAKE_DISTCLEAN += $$out
+ }
}
diff --git a/src/core/gn_run.pro b/src/core/gn_run.pro
index b6966a51..ee4e7892 100644
--- a/src/core/gn_run.pro
+++ b/src/core/gn_run.pro
@@ -5,13 +5,6 @@ isQtMinimum(5, 8) {
TEMPLATE = aux
-defineReplace(runGn) {
- message("Running: $$1")
- !system($$1) {
- error("GN run error!")
- }
-}
-
qtConfig(debug_and_release): CONFIG += debug_and_release build_all
qtConfig(system-ninja) {
@@ -42,17 +35,22 @@ build_pass|!debug_and_release {
gn_args += is_debug=false
}
- gn_args += "qtwebengine_target=\"$$shell_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\""
+ gn_args += "qtwebengine_target=\"$$system_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\""
!qtConfig(system-gn) {
- gn_binary = $$shell_quote($$shell_path($$gnPath()))
+ gn_binary = $$system_quote($$system_path($$gnPath()))
}
- gn_args = $$shell_quote($$gn_args)
- gn_src_root = $$shell_quote($$shell_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir()))
- gn_build_root = $$shell_quote($$shell_path($$OUT_PWD/$$getConfigDir()))
+ gn_args = $$system_quote($$gn_args)
+ gn_src_root = $$system_quote($$system_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir()))
+ gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir()))
gn_python = "--script-executable=$$pythonPathForSystem()"
- $$runGn($$gn_binary gen $$gn_build_root $$gn_python --args=$$gn_args --root=$$gn_src_root)
+ gn_run = $$gn_binary gen $$gn_build_root $$gn_python --args=$$gn_args --root=$$gn_src_root
+
+ message("Running: $$gn_run ")
+ !system($$gn_run) {
+ error("GN run error!")
+ }
runninja.commands = $$NINJA \$\(NINJAFLAGS\) -C $$gn_build_root QtWebEngineCore
QMAKE_EXTRA_TARGETS += runninja