Added support for changing Yosys namespace

This commit is contained in:
Benedikt Tutzer 2019-04-03 12:21:21 +02:00
parent 539a7f3fbc
commit 0774a500d4
2 changed files with 5 additions and 4 deletions

View File

@ -119,6 +119,7 @@ extern const char *Tcl_GetStringResult(Tcl_Interp *interp);
# define PATH_MAX 4096 # define PATH_MAX 4096
#endif #endif
#define YOSYS_NAMESPACE Yosys
#define PRIVATE_NAMESPACE_BEGIN namespace { #define PRIVATE_NAMESPACE_BEGIN namespace {
#define PRIVATE_NAMESPACE_END } #define PRIVATE_NAMESPACE_END }
#define YOSYS_NAMESPACE_BEGIN namespace Yosys { #define YOSYS_NAMESPACE_BEGIN namespace Yosys {

View File

@ -972,7 +972,7 @@ sources = [
Source("kernel/cost",[]) Source("kernel/cost",[])
] ]
blacklist_methods = ["Yosys::Pass::run_register", "Yosys::Module::Pow", "Yosys::Module::Bu0", "Yosys::CaseRule::optimize"] blacklist_methods = ["YOSYS_NAMESPACE::Pass::run_register", "YOSYS_NAMESPACE::Module::Pow", "YOSYS_NAMESPACE::Module::Bu0", "YOSYS_NAMESPACE::CaseRule::optimize"]
enum_names = ["State","SyncType","ConstFlags"] enum_names = ["State","SyncType","ConstFlags"]
@ -1765,7 +1765,7 @@ def parse_header(source):
private_segment = False private_segment = False
while i < len(source_text): while i < len(source_text):
line = source_text[i].replace("YOSYS_NAMESPACE_BEGIN", " namespace Yosys{").replace("YOSYS_NAMESPACE_END"," }") line = source_text[i].replace("YOSYS_NAMESPACE_BEGIN", " namespace YOSYS_NAMESPACE{").replace("YOSYS_NAMESPACE_END"," }")
ugly_line = unpretty_string(line) ugly_line = unpretty_string(line)
if str.startswith(ugly_line, "namespace "):# and ugly_line.find("std") == -1 and ugly_line.find("__") == -1: if str.startswith(ugly_line, "namespace "):# and ugly_line.find("std") == -1 and ugly_line.find("__") == -1:
@ -1892,7 +1892,7 @@ def parse_header(source):
if candidate != None: if candidate != None:
while i < j: while i < j:
i += 1 i += 1
line = source_text[i].replace("YOSYS_NAMESPACE_BEGIN", " namespace Yosys{").replace("YOSYS_NAMESPACE_END"," }") line = source_text[i].replace("YOSYS_NAMESPACE_BEGIN", " namespace YOSYS_NAMESPACE{").replace("YOSYS_NAMESPACE_END"," }")
ugly_line = unpretty_string(line) ugly_line = unpretty_string(line)
if len(namespaces) != 0: if len(namespaces) != 0:
namespaces[-1] = (namespaces[-1][0], namespaces[-1][1] + ugly_line.count("{") - ugly_line.count("}")) namespaces[-1] = (namespaces[-1][0], namespaces[-1][1] + ugly_line.count("{") - ugly_line.count("}"))
@ -2028,7 +2028,7 @@ def gen_wrappers(filename, debug_level_ = 0):
#include <boost/python.hpp> #include <boost/python.hpp>
#include <boost/log/exceptions.hpp> #include <boost/log/exceptions.hpp>
using namespace Yosys; USING_YOSYS_NAMESPACE
namespace YOSYS_PYTHON { namespace YOSYS_PYTHON {
""") """)