3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-05-25 19:36:21 +00:00

Migrate build system to CMake

See #5895 for details.

This commit does not include CI or documentation changes.
This commit is contained in:
Catherine 2026-05-12 05:33:04 +00:00
parent 9d0cdb8551
commit 9b087b4aa7
207 changed files with 5202 additions and 2294 deletions

213
passes/cmds/CMakeLists.txt Normal file
View file

@ -0,0 +1,213 @@
add_subdirectory(sdc)
yosys_pass(exec
exec.cc
ENABLE_IF
YOSYS_ENABLE_SPAWN
)
yosys_pass(add
add.cc
)
yosys_pass(delete
delete.cc
)
yosys_pass(design
design.cc
ESSENTIAL
)
yosys_pass(design_equal
design_equal.cc
)
yosys_pass(select
select.cc
PROVIDES
cd
ls
ESSENTIAL
)
yosys_pass(show
show.cc
LIBRARIES
$<${YOSYS_ENABLE_READLINE}:PkgConfig::readline>
$<${YOSYS_ENABLE_EDITLINE}:PkgConfig::editline>
REQUIRES
read_rtlil
read_verilog
)
yosys_pass(viz
viz.cc
)
yosys_pass(rename
rename.cc
REQUIRES
write_verilog
)
yosys_pass(autoname
autoname.cc
)
yosys_pass(connect
connect.cc
)
yosys_pass(scatter
scatter.cc
)
yosys_pass(setundef
setundef.cc
)
yosys_pass(splitnets
splitnets.cc
)
yosys_pass(splitcells
splitcells.cc
)
yosys_pass(stat
stat.cc
REQUIRES
libparse
)
yosys_pass(internal_stats
internal_stats.cc
REQUIRES
libparse
)
yosys_pass(setattr
setattr.cc
PROVIDES
wbflip
setparam
chparam
)
yosys_pass(copy
copy.cc
)
yosys_pass(splice
splice.cc
)
yosys_pass(scc
scc.cc
)
yosys_pass(glift
glift.cc
)
yosys_pass(torder
torder.cc
)
yosys_pass(logcmd
logcmd.cc
)
yosys_pass(tee
tee.cc
)
yosys_pass(write_file
write_file.cc
)
yosys_pass(connwrappers
connwrappers.cc
)
yosys_pass(trace
trace.cc
PROVIDES
debug
)
yosys_pass(plugin
plugin.cc
INCLUDE_DIRS
${pybind11_INCLUDE_DIR}
LIBRARIES
$<${YOSYS_ENABLE_PLUGINS}:${Dlfcn_LIBRARIES}>
$<${YOSYS_ENABLE_PYTHON}:Python3::Python>
ESSENTIAL
)
yosys_pass(check
check.cc
)
yosys_pass(edgetypes
edgetypes.cc
)
yosys_pass(portlist
portlist.cc
)
yosys_pass(chformal
chformal.cc
)
yosys_pass(chtype
chtype.cc
)
yosys_pass(blackbox
blackbox.cc
)
yosys_pass(ltp
ltp.cc
)
yosys_pass(linux_perf
linux_perf.cc
)
yosys_pass(bugpoint
bugpoint.cc
REQUIRES
proc_clean
opt_clean
design
ENABLE_IF
YOSYS_ENABLE_SPAWN
)
yosys_pass(scratchpad
scratchpad.cc
)
yosys_pass(logger
logger.cc
)
yosys_pass(printattrs
printattrs.cc
)
yosys_pass(sta
sta.cc
)
yosys_pass(clean_zerowidth
clean_zerowidth.cc
)
yosys_pass(xprop
xprop.cc
REQUIRES
bmuxmap
demuxmap
)
yosys_pass(dft_tag
dft_tag.cc
)
yosys_pass(future
future.cc
)
yosys_pass(box_derive
box_derive.cc
)
yosys_pass(example_dt
example_dt.cc
)
yosys_pass(portarcs
portarcs.cc
)
yosys_pass(wrapcell
wrapcell.cc
)
yosys_pass(setenv
setenv.cc
)
yosys_pass(abstract
abstract.cc
)
yosys_pass(test_select
test_select.cc
)
yosys_pass(timeest
timeest.cc
)
yosys_pass(linecoverage
linecoverage.cc
)
yosys_pass(sort
sort.cc
)
yosys_pass(icell_liberty
icell_liberty.cc
)

View file

@ -1,64 +0,0 @@
ifeq ($(DISABLE_SPAWN),0)
OBJS += passes/cmds/exec.o
endif
OBJS += passes/cmds/add.o
OBJS += passes/cmds/delete.o
OBJS += passes/cmds/design.o
OBJS += passes/cmds/design_equal.o
OBJS += passes/cmds/select.o
OBJS += passes/cmds/show.o
OBJS += passes/cmds/viz.o
OBJS += passes/cmds/rename.o
OBJS += passes/cmds/autoname.o
OBJS += passes/cmds/connect.o
OBJS += passes/cmds/scatter.o
OBJS += passes/cmds/setundef.o
OBJS += passes/cmds/splitnets.o
OBJS += passes/cmds/splitcells.o
OBJS += passes/cmds/stat.o
OBJS += passes/cmds/internal_stats.o
OBJS += passes/cmds/setattr.o
OBJS += passes/cmds/copy.o
OBJS += passes/cmds/splice.o
OBJS += passes/cmds/scc.o
OBJS += passes/cmds/glift.o
OBJS += passes/cmds/torder.o
OBJS += passes/cmds/logcmd.o
OBJS += passes/cmds/tee.o
OBJS += passes/cmds/write_file.o
OBJS += passes/cmds/connwrappers.o
OBJS += passes/cmds/trace.o
OBJS += passes/cmds/plugin.o
OBJS += passes/cmds/check.o
OBJS += passes/cmds/edgetypes.o
OBJS += passes/cmds/portlist.o
OBJS += passes/cmds/chformal.o
OBJS += passes/cmds/chtype.o
OBJS += passes/cmds/blackbox.o
OBJS += passes/cmds/ltp.o
OBJS += passes/cmds/linux_perf.o
ifeq ($(DISABLE_SPAWN),0)
OBJS += passes/cmds/bugpoint.o
endif
OBJS += passes/cmds/scratchpad.o
OBJS += passes/cmds/logger.o
OBJS += passes/cmds/printattrs.o
OBJS += passes/cmds/sta.o
OBJS += passes/cmds/clean_zerowidth.o
OBJS += passes/cmds/xprop.o
OBJS += passes/cmds/dft_tag.o
OBJS += passes/cmds/future.o
OBJS += passes/cmds/box_derive.o
OBJS += passes/cmds/example_dt.o
OBJS += passes/cmds/portarcs.o
OBJS += passes/cmds/wrapcell.o
OBJS += passes/cmds/setenv.o
OBJS += passes/cmds/abstract.o
OBJS += passes/cmds/test_select.o
OBJS += passes/cmds/timeest.o
OBJS += passes/cmds/linecoverage.o
OBJS += passes/cmds/sort.o
OBJS += passes/cmds/icell_liberty.o
include $(YOSYS_SRC)/passes/cmds/sdc/Makefile.inc

View file

@ -0,0 +1,9 @@
yosys_pass(sdc
sdc.cc
LIBRARIES
$<${YOSYS_ENABLE_TCL}:PkgConfig::tcl>
DATA_DIR
sdc
DATA_FILES
graph-stubs.sdc
)

View file

@ -1,3 +0,0 @@
OBJS += passes/cmds/sdc/sdc.o
$(eval $(call add_share_file,share/sdc,passes/cmds/sdc/graph-stubs.sdc))

View file

@ -1,3 +1,4 @@
#include "kernel/yosys_config.h"
#ifdef YOSYS_ENABLE_TCL
#include "kernel/register.h"

View file

@ -442,7 +442,7 @@ struct ShowWorker
id2num(wire->name), shape.c_str(), is_borderless? " margin=0, width=0" : "", findLabel(wire->name.str()),
is_borderless
? "color=\"none\", fontcolor=\"black\""
: nextColor(RTLIL::SigSpec(wire), "color=\"black\", fontcolor=\"black\"").c_str(),
: nextColor(RTLIL::SigSpec(wire), "color=\"black\", fontcolor=\"black\"").c_str(),
src_href.c_str());
if (wire->port_input)
all_sources.insert(stringf("n%d", id2num(wire->name)));
@ -770,7 +770,7 @@ struct ShowPass : public Pass {
std::vector<std::pair<std::string, RTLIL::Selection>> color_selections;
std::vector<std::pair<std::string, RTLIL::Selection>> label_selections;
#if defined(_WIN32) || defined(YOSYS_DISABLE_SPAWN)
#if defined(_WIN32) || !defined(YOSYS_ENABLE_SPAWN)
std::string format = "dot";
std::string prefix = "show";
#else
@ -948,13 +948,13 @@ struct ShowPass : public Pass {
std::string cmd = stringf(DOT_CMD, format, dot_file, out_file, out_file, out_file);
#undef DOT_CMD
log("Exec: %s\n", cmd);
#if !defined(YOSYS_DISABLE_SPAWN)
#if defined(YOSYS_ENABLE_SPAWN)
if (run_command(cmd) != 0)
log_cmd_error("Shell command failed!\n");
#endif
}
#if defined(YOSYS_DISABLE_SPAWN)
#if !defined(YOSYS_ENABLE_SPAWN)
log_assert(viewer_exe.empty() && !format.empty());
#else
if (viewer_exe != "none") {

View file

@ -898,7 +898,7 @@ struct VizPass : public Pass {
log_header(design, "Generating Graphviz representation of design.\n");
log_push();
#if defined(_WIN32) || defined(YOSYS_DISABLE_SPAWN)
#if defined(_WIN32) || !defined(YOSYS_ENABLE_SPAWN)
std::string format = "dot";
std::string prefix = "show";
#else
@ -1029,13 +1029,13 @@ struct VizPass : public Pass {
std::string cmd = stringf(DOT_CMD, format, dot_file, out_file, out_file, out_file);
#undef DOT_CMD
log("Exec: %s\n", cmd);
#if !defined(YOSYS_DISABLE_SPAWN)
#if defined(YOSYS_ENABLE_SPAWN)
if (run_command(cmd) != 0)
log_cmd_error("Shell command failed!\n");
#endif
}
#if defined(YOSYS_DISABLE_SPAWN)
#if !defined(YOSYS_ENABLE_SPAWN)
log_assert(viewer_exe.empty() && !format.empty());
#else
if (!viewer_exe.empty()) {