actionmap = {
"build" : self.call_toolchain_build,
"download" : self.call_toolchain_download,
+ "tree" : self.call_toolchain_tree,
}
return actionmap[args.action.name](args.action)
return toolchain.download()
+ def call_toolchain_tree(self, args):
+ print backend.deptree(backend.parse_package(backend.get_package_names(toolchain=True), toolchain=True))
+
def call_build(self, args):
force = True
if os.path.basename(package) == name:
return package
-def depsolve(packages, recursive=False):
+def depsolve(packages, recursive=False, toolchain=False):
deps = []
for package in packages:
if not package in deps:
deps.sort()
return deps
-def deptree(packages):
+def deptree(packages, toolchain=False):
ret = [packages]
while True:
return ret
-def depsort(packages):
+def depsort(packages, toolchain=False):
ret = []
- for l1 in deptree(packages):
+ for l1 in deptree(packages, toolchain=toolchain):
ret.extend(l1)
return ret
return True
- def _dependencies(self, s, recursive=False):
+ def _dependencies(self, s, recursive=False, toolchain=False):
c = s + "_CACHE"
if not self._data.has_key(c):
- deps = parse_package(self._data.get(s).split(" "))
+ deps = parse_package(self._data.get(s).split(" "), toolchain=toolchain)
self._data.update({c : depsolve(deps, recursive)})
return self._data.get(c)
@property
def dependencies(self):
+ if self.__toolchain:
+ return self.dependencies_toolchain
+
return self._dependencies("PKG_DEPENDENCIES")
@property
@property
def dependencies_all(self):
- return depsolve(self.dependencies + self.dependencies_build, recursive=True)
+ deps = self.dependencies
+ if not self.__toolchain:
+ deps.extend(self.dependencies_build)
+ return depsolve(deps, recursive=True)
+
+ @property
+ def dependencies_toolchain(self):
+ return self._dependencies("PKG_TOOLCHAIN_DEPENDENCIES", toolchain=True)
@property
def description(self):
def version(self):
return self._data.get("PKG_VER")
+ @property
+ def __toolchain(self):
+ return self.repo.name == "toolchain"
+
class Package(object):
def __init__(self, name, naoki, toolchain=False):