buildorder.py: only omit target's subpackage for fast build
This commit is contained in:
parent
befdca1749
commit
ca475bf2be
@ -54,7 +54,7 @@ def parse_build_file_dependencies(path):
|
|||||||
|
|
||||||
class TermuxPackage(object):
|
class TermuxPackage(object):
|
||||||
"A main package definition represented by a directory with a build.sh file."
|
"A main package definition represented by a directory with a build.sh file."
|
||||||
def __init__(self, dir_path):
|
def __init__(self, dir_path, fast_build_mode):
|
||||||
self.dir = dir_path
|
self.dir = dir_path
|
||||||
self.name = os.path.basename(self.dir)
|
self.name = os.path.basename(self.dir)
|
||||||
|
|
||||||
@ -83,6 +83,7 @@ class TermuxPackage(object):
|
|||||||
# Do not depend on itself
|
# Do not depend on itself
|
||||||
self.deps.discard(self.name)
|
self.deps.discard(self.name)
|
||||||
# Do not depend on any sub package
|
# Do not depend on any sub package
|
||||||
|
if not fast_build_mode:
|
||||||
self.deps.difference_update([subpkg.name for subpkg in self.subpkgs])
|
self.deps.difference_update([subpkg.name for subpkg in self.subpkgs])
|
||||||
|
|
||||||
self.needed_by = set() # Populated outside constructor, reverse of deps.
|
self.needed_by = set() # Populated outside constructor, reverse of deps.
|
||||||
@ -120,6 +121,8 @@ class TermuxSubPackage:
|
|||||||
Only relevant when building in fast-build mode"""
|
Only relevant when building in fast-build mode"""
|
||||||
result = []
|
result = []
|
||||||
for dependency_name in sorted(self.deps):
|
for dependency_name in sorted(self.deps):
|
||||||
|
if dependency_name == self.parent.name:
|
||||||
|
self.parent.deps.discard(self.name)
|
||||||
dependency_package = pkgs_map[dependency_name]
|
dependency_package = pkgs_map[dependency_name]
|
||||||
result += dependency_package.recursive_dependencies(pkgs_map)
|
result += dependency_package.recursive_dependencies(pkgs_map)
|
||||||
result += [dependency_package]
|
result += [dependency_package]
|
||||||
@ -135,7 +138,7 @@ def read_packages_from_directories(directories, fast_build_mode):
|
|||||||
for pkgdir_name in sorted(os.listdir(package_dir)):
|
for pkgdir_name in sorted(os.listdir(package_dir)):
|
||||||
dir_path = package_dir + '/' + pkgdir_name
|
dir_path = package_dir + '/' + pkgdir_name
|
||||||
if os.path.isfile(dir_path + '/build.sh'):
|
if os.path.isfile(dir_path + '/build.sh'):
|
||||||
new_package = TermuxPackage(package_dir + '/' + pkgdir_name)
|
new_package = TermuxPackage(package_dir + '/' + pkgdir_name, fast_build_mode)
|
||||||
|
|
||||||
if new_package.name in pkgs_map:
|
if new_package.name in pkgs_map:
|
||||||
die('Duplicated package: ' + new_package.name)
|
die('Duplicated package: ' + new_package.name)
|
||||||
@ -221,6 +224,9 @@ def generate_target_buildorder(target_path, pkgs_map, fast_build_mode):
|
|||||||
|
|
||||||
package_name = os.path.basename(target_path)
|
package_name = os.path.basename(target_path)
|
||||||
package = pkgs_map[package_name]
|
package = pkgs_map[package_name]
|
||||||
|
# Do not depend on any sub package
|
||||||
|
if fast_build_mode:
|
||||||
|
package.deps.difference_update([subpkg.name for subpkg in package.subpkgs])
|
||||||
return package.recursive_dependencies(pkgs_map)
|
return package.recursive_dependencies(pkgs_map)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user