summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-31 14:33:53 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-09-22 08:47:24 +0000
commit06e3d201299ab803f4dc41f35201830c74242d19 (patch)
tree2f2100c24b051876eca4849c72e13a45dd8a2c0b
parentc0419ae89fbc4fbdc58aef5b8b01ab0b45f8ff98 (diff)
Adapt to new GN submodule
Change-Id: I3980634a1029479ab944b2e03f12a02d0c77d0c1 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--mkspecs/features/functions.prf2
-rw-r--r--src/buildtools/gn.pro20
-rwxr-xr-xtools/scripts/init-repository.py13
-rwxr-xr-xtools/scripts/take_snapshot.py16
4 files changed, 38 insertions, 13 deletions
diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf
index ac84ad321..a26f1258d 100644
--- a/mkspecs/features/functions.prf
+++ b/mkspecs/features/functions.prf
@@ -70,7 +70,7 @@ defineReplace(ninjaPath) {
defineReplace(gnPath) {
src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
- out = $$shadowed($$absolute_path(chromium/tools/gn/out/Release/gn, $$src_3rd_party_dir))
+ out = $$shadowed($$absolute_path(gn/out/Release/gn, $$src_3rd_party_dir))
win32: out = $${out}.exe
return($$out)
diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
index d8f57aee1..559cdf183 100644
--- a/src/buildtools/gn.pro
+++ b/src/buildtools/gn.pro
@@ -9,24 +9,20 @@ QT_FOR_CONFIG += webenginecore-private
build_pass|!debug_and_release {
!qtConfig(webengine-system-gn): CONFIG(release, debug|release) {
buildgn.target = build_gn
- gn_args = $$gnArgs()
out = $$gnPath()
- !qtConfig(webengine-system-ninja): ninja_path = "--path $$ninjaPath()"
+ out_path = $$dirname(out)
+ !qtConfig(webengine-system-ninja): ninja_path = $$ninjaPath()
+ else: ninja_path="ninja"
# 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_bootstrap = $$system_path($$absolute_path(gn/build/gen.py, $$src_3rd_party_dir))
- gn_args = $$system_quote($$gn_args)
- win32:isDeveloperBuild() {
- # GN is always built in release mode, which conflicts with incremental linking when
- # doing a developer build of WebEngine.
- gn_args = $$replace(gn_args, "use_incremental_linking=true ", "")
+ gn_configure = $$system_quote($$gn_bootstrap) --no-last-commit-position --out-path $$out_path
+ !system("$$pythonPathForSystem() $$gn_configure") {
+ error("GN generation error!")
}
-
- 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") {
+ !system("cd $$system_quote($$system_path($$out_path)) && $$ninja_path $$basename(out)" ) {
error("GN build error!")
}
}
diff --git a/tools/scripts/init-repository.py b/tools/scripts/init-repository.py
index a5bef10c3..221f74a65 100755
--- a/tools/scripts/init-repository.py
+++ b/tools/scripts/init-repository.py
@@ -42,6 +42,7 @@ import version_resolver as resolver
chromium_src = os.environ.get('CHROMIUM_SRC_DIR')
ninja_src = os.path.join(qtwebengine_root, 'src/3rdparty_upstream/ninja')
+gn_src = os.path.join(qtwebengine_root, 'src/3rdparty_upstream/gn')
use_external_chromium = False
parser = argparse.ArgumentParser(description='Initialize QtWebEngine repository.')
@@ -63,6 +64,7 @@ if not chromium_src or not os.path.isdir(chromium_src):
if args.snapshot or not chromium_src:
chromium_src = os.path.join(qtwebengine_root, 'src/3rdparty/chromium')
ninja_src = os.path.join(qtwebengine_root, 'src/3rdparty/ninja')
+ gn_src = os.path.join(qtwebengine_root, 'src/3rdparty/gn')
args.snapshot = True
print 'CHROMIUM_SRC_DIR not set, using Chromium in' + chromium_src
@@ -84,6 +86,7 @@ def updateLastChange():
os.chdir(currentDir)
def initUpstreamSubmodules():
+ gn_url = 'https://gn.googlesource.com/gn'
ninja_url = 'https://github.com/martine/ninja.git'
chromium_url = 'https://chromium.googlesource.com/chromium/src.git'
ninja_shasum = 'refs/tags/' + resolver.currentNinjaVersion()
@@ -91,6 +94,8 @@ def initUpstreamSubmodules():
os.chdir(qtwebengine_root)
current_submodules = subprocess.check_output(['git', 'submodule'])
+ if not 'src/3rdparty_upstream/gn' in current_submodules:
+ subprocess.call(['git', 'submodule', 'add', gn_url, 'src/3rdparty_upstream/gn'])
if not 'src/3rdparty_upstream/ninja' in current_submodules:
subprocess.call(['git', 'submodule', 'add', ninja_url, 'src/3rdparty_upstream/ninja'])
if not use_external_chromium and not 'src/3rdparty_upstream/chromium' in current_submodules:
@@ -103,6 +108,13 @@ def initUpstreamSubmodules():
ninjaSubmodule.os = 'all'
ninjaSubmodule.initialize()
+ gnSubmodule = GitSubmodule.Submodule()
+ gnSubmodule.path = 'src/3rdparty_upstream/gn'
+ gnSubmodule.ref = 'master'
+ gnSubmodule.url = gn_url
+ gnSubmodule.os = 'all'
+ gnSubmodule.initialize()
+
if not use_external_chromium:
chromiumSubmodule = GitSubmodule.Submodule()
chromiumSubmodule.path = 'src/3rdparty_upstream/chromium'
@@ -113,6 +125,7 @@ def initUpstreamSubmodules():
chromiumSubmodule.initSubmodules()
# Unstage repositories so we do not accidentally commit them.
+ subprocess.call(['git', 'reset', '-q', 'HEAD', 'src/3rdparty_upstream/gn'])
subprocess.call(['git', 'reset', '-q', 'HEAD', 'src/3rdparty_upstream/ninja'])
subprocess.call(['git', 'reset', '-q', 'HEAD', 'src/3rdparty_upstream/chromium'])
diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py
index 0373f391b..8f841b9eb 100755
--- a/tools/scripts/take_snapshot.py
+++ b/tools/scripts/take_snapshot.py
@@ -299,6 +299,21 @@ def listFilesInCurrentRepository():
files.append(os.path.join(submodule.pathRelativeToTopMostSupermodule(), submodule_file))
return files
+def exportGn():
+ third_party_upstream_gn = os.path.join(third_party_upstream, 'gn')
+ third_party_gn = os.path.join(third_party, 'gn')
+ os.makedirs(third_party_gn);
+ print 'exporting contents of:' + third_party_upstream_gn
+ os.chdir(third_party_upstream_gn)
+ files = listFilesInCurrentRepository()
+ print 'copying files to ' + third_party_gn
+ for i in xrange(len(files)):
+ printProgress(i+1, len(files))
+ f = files[i]
+ if not isInGitBlacklist(f):
+ copyFile(f, os.path.join(third_party_gn, f))
+ print("")
+
def exportNinja():
third_party_upstream_ninja = os.path.join(third_party_upstream, 'ninja')
third_party_ninja = os.path.join(third_party, 'ninja')
@@ -352,6 +367,7 @@ if 'true' in ignore_case_setting:
clearDirectory(third_party)
+exportGn()
exportNinja()
exportChromium()