Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
H
Hdlmake
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
15
Issues
15
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Hdlmake
Commits
047666ed
Commit
047666ed
authored
May 15, 2016
by
Javier D. Garcia-Lasheras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add parser as an option for all the actions
parent
18002461
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
19 additions
and
32 deletions
+19
-32
__main__.py
hdlmake/__main__.py
+2
-2
list_files.py
hdlmake/action/list_files.py
+1
-1
merge_cores.py
hdlmake/action/merge_cores.py
+1
-3
qsys_hw_tcl_update.py
hdlmake/action/qsys_hw_tcl_update.py
+1
-1
remote_synthesis.py
hdlmake/action/remote_synthesis.py
+1
-1
simulation.py
hdlmake/action/simulation.py
+1
-1
module_pool.py
hdlmake/module_pool.py
+12
-23
No files found.
hdlmake/__main__.py
View file @
047666ed
...
...
@@ -292,8 +292,8 @@ def _get_parser():
parser
.
add_argument
(
"--generate-project-vhd"
,
help
=
"generate project.vhd file with a meta package describing the project"
,
dest
=
"generate_project_vhd"
,
default
=
False
,
action
=
"store_true"
)
parser
.
add_argument
(
"--force"
,
help
=
"force hdlmake to generate the makefile, even if the specified tool is missing"
,
default
=
False
,
action
=
"store_true"
)
parser
.
add_argument
(
"--
allow-unknown"
,
dest
=
"allow_unknown
"
,
default
=
False
,
help
=
"
allow unknown option insertions in the child Manifests
"
,
action
=
"store_true"
)
parser
.
add_argument
(
"--
parser"
,
dest
=
"parser
"
,
default
=
False
,
help
=
"
enable smart parser engine
"
,
action
=
"store_true"
)
return
parser
...
...
hdlmake/action/list_files.py
View file @
047666ed
...
...
@@ -28,7 +28,7 @@ class ListFiles(Action):
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_set
=
self
.
modules_pool
.
build_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
))
hdlmake/action/merge_cores.py
View file @
047666ed
...
...
@@ -48,9 +48,7 @@ class MergeCores(Action):
self
.
_check_all_fetched_or_quit
()
logging
.
info
(
"Merging all cores into one source file per language."
)
flist
=
pool
.
build_global_file_set
()
# if not os.path.exists(self.options.merge_cores):
# os.makedirs(self.options.merge_cores)
flist
=
pool
.
build_file_set
()
base
=
self
.
options
.
dest
f_out
=
open
(
base
+
".vhd"
,
"w"
)
...
...
hdlmake/action/qsys_hw_tcl_update.py
View file @
047666ed
...
...
@@ -28,7 +28,7 @@ import logging
class
QsysHwTclUpdate
(
Action
):
def
run
(
self
):
file_set
=
self
.
modules_pool
.
build_
limited_
file_set
()
file_set
=
self
.
modules_pool
.
build_file_set
()
file_list
=
dep_solver
.
make_dependency_sorted_list
(
file_set
)
files_str
=
[
os
.
path
.
relpath
(
f
.
path
)
for
f
in
file_list
]
...
...
hdlmake/action/remote_synthesis.py
View file @
047666ed
...
...
@@ -65,7 +65,7 @@ class GenerateRemoteSynthesisMakefile(Action):
self
.
env
.
check_remote_tool
(
tool_object
)
self
.
env
.
check_general
()
files
=
self
.
modules_pool
.
build_
global_
file_set
()
files
=
self
.
modules_pool
.
build_file_set
()
sff
=
SourceFileFactory
()
files
.
add
(
sff
.
new
(
top_mod
.
syn_project
,
module
=
None
))
...
...
hdlmake/action/simulation.py
View file @
047666ed
...
...
@@ -80,7 +80,7 @@ class GenerateSimulationMakefile(Action):
pool
=
self
.
modules_pool
top_module
=
pool
.
get_top_module
()
fset
=
pool
.
build_
limited_
file_set
()
fset
=
pool
.
build_file_set
()
dep_files
=
fset
.
filter
(
DepFile
)
#dep_solver.solve(dep_files)
...
...
hdlmake/module_pool.py
View file @
047666ed
...
...
@@ -193,45 +193,34 @@ class ModulePool(list):
def
solve_dependencies
(
self
):
"""Set dependencies for all project files"""
if
not
self
.
_deps_solved
:
dep_solver
.
solve
(
self
.
build_file_set
())
dep_solver
.
solve
(
self
.
build_
complete_
file_set
())
self
.
_deps_solved
=
True
def
build_file_set
(
self
):
if
global_mod
.
options
.
parser
==
True
:
return
self
.
build_limited_file_set
()
else
:
return
self
.
build_complete_file_set
()
def
build_complete_file_set
(
self
):
"""Build set of all files listed in the manifests"""
from
.srcfile
import
SourceFileSet
all_manifested_files
=
SourceFileSet
()
for
module
in
self
:
all_manifested_files
.
add
(
module
.
files
)
return
all_manifested_files
def
build_limited_file_set
(
self
,
top_entity
=
None
):
if
not
top_entity
:
top_entity
=
self
.
top_module
.
top_module
def
build_limited_file_set
(
self
):
top_entity
=
self
.
top_module
.
top_module
self
.
solve_dependencies
();
files
=
dep_solver
.
make_dependency_set
(
self
.
build_file_set
(),
top_entity
)
files
=
dep_solver
.
make_dependency_set
(
self
.
build_
complete_
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
()
assert
isinstance
(
files
,
SourceFileSet
)
self
.
solve_dependencies
()
ret
=
[]
for
file
in
files
:
try
:
for
dep_file
in
file
.
dep_depends_on
:
if
dep_file
not
in
ret
:
ret
.
add
(
dep_file
)
ret
.
add
(
file
)
except
:
pass
return
files
def
get_top_module
(
self
):
return
self
.
top_module
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment