Commit 889ceac5 authored by Will's avatar Will

Add method build_limited_file_set to module_pool.

Builds the limited set of files that is required to satisfy the dependencies of the top level entity/module. 
parent 7126c775
......@@ -21,15 +21,15 @@
from .action import Action
import logging
import new_dep_solver as dep_solver
class ListFiles(Action):
def run(self):
unfetched_modules = False
files_str = []
for m in self.modules_pool:
if not m.isfetched:
unfetched_modules = True
else:
files_str.append(self.options.delimiter.join([f.path for f in m.files]))
if unfetched_modules: logging.warning("Some of the modules have not been fetched!")
print(" ".join(files_str))
unfetched_modules = [m for m in self.modules_pool if not m.isfetched]
for m in unfetched_modules:
logging.warning("List incomplete, module %s has not been fetched!", m)
file_set = self.modules_pool.build_limited_file_set()
file_list = dep_solver.make_dependency_sorted_list(file_set)
files_str = [f.path for f in file_list]
print(self.options.delimiter.join(files_str))
......@@ -205,10 +205,20 @@ class ModulePool(list):
return all_manifested_files
def build_limited_file_set(self, top_entity=None):
if not top_entity:
top_entity = self.top_module.top_module
self.solve_dependencies();
files = dep_solver.make_dependency_set(self.build_file_set(),top_entity)
from srcfile import SourceFileSet
source_files = SourceFileSet()
source_files.add(files)
return source_files
def build_global_file_set(self):
"""Build set of all files from manifests plus all include files from sources"""
from .srcfile import SourceFileSet
files = self.build_file_set()
files = self.build_limited_file_set()
assert isinstance(files, SourceFileSet)
self.solve_dependencies()
ret = []
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment