Commit 674cf56a 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 1edf144b
......@@ -20,13 +20,20 @@
# along with Hdlmake. If not, see <http://www.gnu.org/licenses/>.
from action import Action
import new_dep_solver as dep_solver
class ListFiles(Action):
def run(self):
files_str = []
for m in self.modules_pool:
if not m.isfetched:
continue
files_str.append(self.options.delimiter.join([f.path for f in m.files]))
print(" ".join(files_str))
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))
# class ListFiles(Action):
# def run(self):
# files_str = []
# for m in self.modules_pool:
# if not m.isfetched:
# continue
# files_str.append(self.options.delimiter.join([f.path for f in m.files]))
# print(" ".join(files_str))
......@@ -204,10 +204,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