Skip to content

Commit b5a624c

Browse files
authored
Merge pull request #996 from diffblue/verilog-include-paths
Verilog: remove dependency on `util/config.h`
2 parents 52181a6 + 402089f commit b5a624c

File tree

6 files changed

+18
-14
lines changed

6 files changed

+18
-14
lines changed

src/ebmc/transition_system.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,6 @@ int preprocess(const cmdlinet &cmdline, message_handlert &message_handler)
9494
return 1;
9595
}
9696

97-
// do -I
98-
if(cmdline.isset('I'))
99-
config.verilog.include_paths = cmdline.get_values('I');
100-
10197
auto language = get_language_from_filename(filename);
10298

10399
if(language == nullptr)
@@ -110,9 +106,12 @@ int preprocess(const cmdlinet &cmdline, message_handlert &message_handler)
110106
}
111107

112108
optionst options;
109+
110+
// do -I
111+
if(cmdline.isset('I'))
112+
options.set_option("I", cmdline.get_values('I'));
113+
113114
options.set_option("force-systemverilog", cmdline.isset("systemverilog"));
114-
options.set_option("vl2smv-extensions", cmdline.isset("vl2smv-extensions"));
115-
options.set_option("warn-implicit-nets", cmdline.isset("warn-implicit-nets"));
116115

117116
// do -D
118117
if(cmdline.isset('D'))
@@ -162,6 +161,11 @@ static bool parse(
162161
languaget &language = *lf.language;
163162

164163
optionst options;
164+
165+
// do -I
166+
if(cmdline.isset('I'))
167+
options.set_option("I", cmdline.get_values('I'));
168+
165169
options.set_option("force-systemverilog", cmdline.isset("systemverilog"));
166170
options.set_option("vl2smv-extensions", cmdline.isset("vl2smv-extensions"));
167171
options.set_option("warn-implicit-nets", cmdline.isset("warn-implicit-nets"));
@@ -242,10 +246,6 @@ int get_transition_system(
242246
{
243247
messaget message(message_handler);
244248

245-
// do -I
246-
if(cmdline.isset('I'))
247-
config.verilog.include_paths = cmdline.get_values('I');
248-
249249
if(cmdline.isset("preprocess"))
250250
return preprocess(cmdline, message_handler);
251251

src/verilog/verilog_language.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ void verilog_languaget::set_language_options(
3636
{
3737
force_systemverilog = options.get_bool_option("force-systemverilog");
3838
vl2smv_extensions = options.get_bool_option("vl2smv-extensions");
39+
include_paths = options.get_list_option("I");
3940
initial_defines = options.get_list_option("defines");
4041
warn_implicit_nets = options.get_bool_option("warn-implicit-nets");
4142
}
@@ -107,7 +108,7 @@ bool verilog_languaget::preprocess(
107108
message_handlert &message_handler)
108109
{
109110
verilog_preprocessort preprocessor(
110-
instream, outstream, message_handler, path, initial_defines);
111+
instream, outstream, message_handler, path, include_paths, initial_defines);
111112

112113
try { preprocessor.preprocessor(); }
113114
catch(int e) { return true; }

src/verilog/verilog_language.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class verilog_languaget:public languaget
9494
bool force_systemverilog = false;
9595
bool vl2smv_extensions = false;
9696
bool warn_implicit_nets = false;
97+
std::list<std::string> include_paths;
9798
std::list<std::string> initial_defines;
9899
verilog_parse_treet parse_tree;
99100
};

src/verilog/verilog_preprocessor.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ Author: Daniel Kroening, [email protected]
88

99
#include "verilog_preprocessor.h"
1010

11-
#include <util/config.h>
1211
#include <util/unicode.h>
1312

1413
#include "expr2verilog.h"
@@ -136,7 +135,7 @@ std::filesystem::path verilog_preprocessort::find_include_file(
136135
}
137136

138137
// Then try include paths in given order.
139-
for(const auto &include_path : config.verilog.include_paths)
138+
for(const auto &include_path : include_paths)
140139
{
141140
auto full_name = std::filesystem::path{include_path}.append(given_filename);
142141
if(std::filesystem::directory_entry(full_name).exists())

src/verilog/verilog_preprocessor.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ class verilog_preprocessort:public preprocessort
2222
std::ostream &_out,
2323
message_handlert &_message_handler,
2424
const std::string &_filename,
25+
const std::list<std::string> &_include_paths,
2526
const std::list<std::string> &_initial_defines)
2627
: preprocessort(_in, _out, _message_handler, _filename),
28+
include_paths(_include_paths),
2729
initial_defines(_initial_defines)
2830
{
2931
condition=true;
@@ -33,6 +35,7 @@ class verilog_preprocessort:public preprocessort
3335

3436
protected:
3537
// from the command line
38+
const std::list<std::string> &include_paths;
3639
const std::list<std::string> &initial_defines;
3740

3841
using tokent = verilog_preprocessor_token_sourcet::tokent;

src/vlindex/verilog_indexer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ std::string verilog_indexert::preprocess(const std::string &file_name)
9292

9393
console_message_handlert message_handler;
9494
verilog_preprocessort preprocessor(
95-
in_stream, preprocessed, message_handler, file_name, {});
95+
in_stream, preprocessed, message_handler, file_name, {}, {});
9696

9797
try
9898
{

0 commit comments

Comments
 (0)