From 26b4267a3b00ebedb560169d09f974cd87a6a370 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 27 Jan 2020 13:24:26 +0100 Subject: Handle recursive DEPS Needed to include angle third party dependencies Change-Id: I8b4fada4cac0f90f52d541953ddbdf530b6cdb37 Reviewed-by: Michal Klocek --- tools/scripts/git_submodule.py | 14 ++++++++++---- tools/scripts/take_snapshot.py | 9 ++++++--- tools/scripts/version_resolver.py | 27 +++++++++++++++++---------- 3 files changed, 33 insertions(+), 17 deletions(-) (limited to 'tools') 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: -- cgit v1.2.3