summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-27 13:24:26 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-02-28 14:24:39 +0100
commit26b4267a3b00ebedb560169d09f974cd87a6a370 (patch)
treeba77ff92b9cafe8710182d82b0ce527b72c32dfb /tools
parent42af15c421a520499bc872e2d55053dcffb2a07b (diff)
Handle recursive DEPS
Needed to include angle third party dependencies Change-Id: I8b4fada4cac0f90f52d541953ddbdf530b6cdb37 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/scripts/git_submodule.py14
-rwxr-xr-xtools/scripts/take_snapshot.py9
-rw-r--r--tools/scripts/version_resolver.py27
3 files changed, 33 insertions, 17 deletions
diff --git a/tools/scripts/git_submodule.py b/tools/scripts/git_submodule.py
index 684a8af67..28b92d942 100644
--- a/tools/scripts/git_submodule.py
+++ b/tools/scripts/git_submodule.py
@@ -61,6 +61,9 @@ class DEPSParser:
#result.update(self.custom_vars or {})
return result
+ def get_recursedeps(self):
+ return self.local_scope["recursedeps"]
+
def createSubmodulesFromScope(self, scope, os):
submodules = []
for dep in scope:
@@ -225,6 +228,9 @@ class Submodule:
# The submodule operations should be done relative to the current submodule's
# supermodule.
if self.topmost_supermodule_path_prefix:
+ if not os.path.isdir(self.path):
+ print '-- skipping ' + self.path + ' as dir has been stripped. --'
+ return
os.chdir(self.topmost_supermodule_path_prefix)
if os.path.isdir(self.path):
@@ -309,22 +315,22 @@ class Submodule:
os.chdir(oldCwd)
return flattened_submodules
- def readSubmodules(self):
+ def readSubmodules(self, use_deps=False):
submodules = []
- if self.ref:
+ if use_deps:
submodules = resolver.readSubmodules()
print 'DEPS file provides the following submodules:'
for submodule in submodules:
print '{:<80}'.format(submodule.pathRelativeToTopMostSupermodule()) + '{:<120}'.format(submodule.url) + submodule.ref
- else: # Try .gitmodules since no ref has been specified
+ else: # Try .gitmodules instead
gitmodules_file_name = '.gitmodules'
submodules = self.readSubmodulesFromGitModules(self, gitmodules_file_name, self.path)
return submodules
def initSubmodules(self):
+ submodules = self.readSubmodules()
oldCwd = os.getcwd()
os.chdir(self.path)
- submodules = self.readSubmodules()
for submodule in submodules:
submodule.initialize()
subprocessCall(['git', 'commit', '-a', '--amend', '--no-edit'])
diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py
index b4fce4f73..756c10079 100755
--- a/tools/scripts/take_snapshot.py
+++ b/tools/scripts/take_snapshot.py
@@ -147,6 +147,9 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('third_party/accessibility')
or file_path.startswith('third_party/afl')
or file_path.startswith('third_party/android_')
+ or file_path.startswith('third_party/angle/third_party/deqp')
+ or file_path.startswith('third_party/angle/third_party/glmark2')
+ or file_path.startswith('third_party/angle/third_party/vulkan-validation-layers')
or file_path.startswith('third_party/apache-')
or file_path.startswith('third_party/arcode-android-sdk')
or file_path.startswith('third_party/ashmem')
@@ -291,10 +294,10 @@ def clearDirectory(directory):
shutil.rmtree(direntry)
os.chdir(currentDir)
-def listFilesInCurrentRepository():
+def listFilesInCurrentRepository(use_deps=False):
currentRepo = GitSubmodule.Submodule(os.getcwd())
files = subprocess.check_output(['git', 'ls-files']).splitlines()
- submodules = currentRepo.readSubmodules()
+ submodules = currentRepo.readSubmodules(use_deps)
for submodule in submodules:
submodule_files = submodule.listFiles()
for submodule_file in submodule_files:
@@ -337,7 +340,7 @@ def exportChromium():
os.makedirs(third_party_chromium);
print 'exporting contents of:' + third_party_upstream_chromium
os.chdir(third_party_upstream_chromium)
- files = listFilesInCurrentRepository()
+ files = listFilesInCurrentRepository(True)
# Add LASTCHANGE files which are not tracked by git.
files.append('build/util/LASTCHANGE')
files.append('build/util/LASTCHANGE.committime')
diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py
index 7b7a84e07..034ed1928 100644
--- a/tools/scripts/version_resolver.py
+++ b/tools/scripts/version_resolver.py
@@ -88,17 +88,24 @@ def readSubmodules():
for sub in git_submodules:
submodule_dict[sub.path] = sub
+ extradeps_dirs = parser.get_recursedeps()
# Add buildtools submodules
- buildtools_deps_file_path = "buildtools/DEPS"
- if (os.path.isfile(buildtools_deps_file_path)):
- with open(buildtools_deps_file_path, 'r') as buildtools_deps_file:
- buildtools_deps = buildtools_deps_file.read()
- if buildtools_deps:
- buildtools_parser = GitSubmodule.DEPSParser()
- buildtools_parser.topmost_supermodule_path_prefix = './buildtools/'
- buildtools_submodules = buildtools_parser.parse(buildtools_deps)
- for sub in buildtools_submodules:
- submodule_dict[sub.path] = sub
+ extradeps_dirs.append('buildtools')
+
+ for extradeps_dir in extradeps_dirs:
+ if extradeps_dir.startswith('src/'):
+ extradeps_dir = extradeps_dir[4:]
+ extra_deps_file_path = extradeps_dir + '/DEPS'
+ if (os.path.isfile(extra_deps_file_path)):
+ with open(extra_deps_file_path, 'r') as extra_deps_file:
+ extra_deps = extra_deps_file.read()
+ if extra_deps:
+ extradeps_parser = GitSubmodule.DEPSParser()
+ extradeps_parser.topmost_supermodule_path_prefix = extradeps_dir
+ extradeps_submodules = extradeps_parser.parse(extra_deps)
+ for sub in extradeps_submodules:
+ submodule_dict[sub.path] = sub
+
# Remove unwanted upstream submodules
for path in submodule_blacklist: