mirror of
https://github.com/YosysHQ/yosys
synced 2026-05-30 13:56:33 +00:00
Update CI scripts for CMake
Co-authored-by: Catherine <whitequark@whitequark.org>
This commit is contained in:
parent
16af8cbcc5
commit
17381fa6f8
32 changed files with 364 additions and 339 deletions
|
|
@ -1,7 +1,3 @@
|
|||
ifneq ($(wildcard ../Makefile.conf),)
|
||||
include ../Makefile.conf
|
||||
endif
|
||||
|
||||
OVERRIDE_MAIN=1
|
||||
include ./common.mk
|
||||
|
||||
|
|
@ -91,7 +87,7 @@ prep: $(MK_TEST_DIRS:%=%/Makefile)
|
|||
.PHONY: force-create
|
||||
# this target actually emits Makefile files
|
||||
%/Makefile: force-create
|
||||
+@cd $* && python3 generate_mk.py
|
||||
+@cd $* && python3 generate_mk.py $(if $(SEED),-S$(SEED))
|
||||
|
||||
makefile-./%: %/Makefile
|
||||
@$(MAKE) -C $*
|
||||
|
|
@ -125,3 +121,16 @@ clean:
|
|||
@rm -f ./tools/cmp_tbdata
|
||||
@rm -f $(addsuffix /Makefile,$(MK_TEST_DIRS))
|
||||
@find . -name '*.result' -type f -exec rm -f {} +
|
||||
|
||||
.PHONY: coverage
|
||||
coverage:
|
||||
@echo "Creating coverage HTML"
|
||||
@$(YOSYS) -qp 'help; help -all'
|
||||
@rm -rf $(COVERAGE_HTML)
|
||||
@llvm-profdata merge -sparse $(COVERAGE_DIR)/coverage_*.profraw -o $(COVERAGE_DIR)/yosys.profdata
|
||||
@llvm-cov show $(YOSYS) -instr-profile=$(COVERAGE_DIR)/yosys.profdata -format=html -output-dir=$(COVERAGE_HTML) --compilation-dir=$(SRC_DIR) --ignore-filename-regex='(^|.*/)libs/.*|/usr/include/.*|$(subst /,\/,$(VERIFIC_DIR))/.*'
|
||||
|
||||
.PHONY: clean_coverage
|
||||
clean_coverage:
|
||||
@echo "Clean coverage"
|
||||
@rm -rf $(COVERAGE_DIR)
|
||||
|
|
|
|||
|
|
@ -1,20 +1,29 @@
|
|||
ROOT_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
|
||||
BUILD_DIR ?= $(ROOT_DIR)/..
|
||||
BUILD_DIR ?= $(realpath $(ROOT_DIR)/../build)
|
||||
SRC_DIR := $(realpath $(ROOT_DIR)/..)
|
||||
|
||||
SBY ?= sby
|
||||
YOSYS ?= $(BUILD_DIR)/yosys
|
||||
ABC ?= $(BUILD_DIR)/yosys-abc
|
||||
YOSYS_FILTERLIB ?= $(BUILD_DIR)/yosys-filterlib
|
||||
YOSYS_CONFIG ?= $(BUILD_DIR)/yosys-config
|
||||
YOSYS_SMTBMC ?= $(BUILD_DIR)/yosys-smtbmc
|
||||
SBY ?= sby
|
||||
ABC ?= $(BUILD_CMD)yosys-abc
|
||||
YOSYS ?= $(BUILD_CMD)yosys
|
||||
YOSYS_CONFIG ?= $(BUILD_CMD)yosys-config
|
||||
YOSYS_FILTERLIB ?= $(BUILD_CMD)yosys-filterlib
|
||||
YOSYS_SMTBMC ?= $(BUILD_CMD)yosys-smtbmc
|
||||
YOSYS_WITNESS ?= @$(BUILD_CMD)yosys-witness
|
||||
YOSYS_MAX_THREADS ?= 4
|
||||
COVERAGE_DIR ?= $(realpath $(ROOT_DIR)/..)/coverage
|
||||
COVERAGE_HTML ?= $(realpath $(ROOT_DIR)/..)/coverage_html
|
||||
LLVM_PROFILE_FILE ?= $(COVERAGE_DIR)/coverage_%p.profraw
|
||||
VERIFIC_DIR ?= /usr/local/src/verific_lib
|
||||
|
||||
export BUILD_DIR
|
||||
export YOSYS
|
||||
export YOSYS_CONFIG
|
||||
export YOSYS_SMTBMC
|
||||
export ABC
|
||||
export SBY
|
||||
export YOSYS_MAX_THREADS
|
||||
export LLVM_PROFILE_FILE
|
||||
export LLVM_PROFILE_FILE_BUFFER_SIZE=0
|
||||
|
||||
all:
|
||||
|
||||
|
|
|
|||
|
|
@ -10,19 +10,19 @@ def create_tests():
|
|||
|
||||
gen_tests_makefile.generate_cmd_test("parent_content1", [
|
||||
f"{setup}",
|
||||
'cd .. && $(YOSYS_ABS) -qp "read_verilog -defer memfile/memory.v; '
|
||||
'cd .. && $(YOSYS) -qp "read_verilog -defer memfile/memory.v; '
|
||||
'chparam -set MEMFILE \\"content1.dat\\" memory"'
|
||||
])
|
||||
|
||||
gen_tests_makefile.generate_cmd_test("parent_content2_temp", [
|
||||
f"{setup}",
|
||||
'cd .. && $(YOSYS_ABS) -qp "read_verilog -defer memfile/memory.v; '
|
||||
'cd .. && $(YOSYS) -qp "read_verilog -defer memfile/memory.v; '
|
||||
'chparam -set MEMFILE \\"temp/content2.dat\\" memory"'
|
||||
])
|
||||
|
||||
gen_tests_makefile.generate_cmd_test("parent_content2_full", [
|
||||
f"{setup}",
|
||||
'cd .. && $(YOSYS_ABS) -qp "read_verilog -defer memfile/memory.v; '
|
||||
'cd .. && $(YOSYS) -qp "read_verilog -defer memfile/memory.v; '
|
||||
'chparam -set MEMFILE \\"memfile/temp/content2.dat\\" memory"'
|
||||
])
|
||||
|
||||
|
|
@ -64,5 +64,4 @@ def create_tests():
|
|||
'chparam -set MEMFILE \\"content3.dat\\" memory"'
|
||||
])
|
||||
|
||||
extra = ["YOSYS_ABS := $(abspath $(YOSYS))"]
|
||||
gen_tests_makefile.generate_custom(create_tests, extra)
|
||||
gen_tests_makefile.generate_custom(create_tests)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ chmod +x "$DIR/ezcmdline_dummy_solver"
|
|||
CXXFLAGS=$(${YOSYS_CONFIG} --cxxflags)
|
||||
DATDIR=$(${YOSYS_CONFIG} --datdir)
|
||||
DATDIR=${DATDIR//\//\\\/}
|
||||
CXXFLAGS=${CXXFLAGS//$DATDIR/..\/..\/share}
|
||||
CXXFLAGS=${CXXFLAGS//$DATDIR/$BUILD_DIR/share}
|
||||
${YOSYS_CONFIG} --exec --cxx ${CXXFLAGS} -I"$BASEDIR" --ldflags -shared -o "$DIR/ezcmdline_plugin.so" "$DIR/ezcmdline_plugin.cc"
|
||||
${YOSYS} -m "$DIR/ezcmdline_plugin.so" -p "ezcmdline_test -cmd $DIR/ezcmdline_dummy_solver" | grep -q "ezcmdline_test passed!"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ rm -rf plugin_search
|
|||
CXXFLAGS=$(${YOSYS_CONFIG} --cxxflags)
|
||||
DATDIR=$(${YOSYS_CONFIG} --datdir)
|
||||
DATDIR=${DATDIR//\//\\\/}
|
||||
CXXFLAGS=${CXXFLAGS//$DATDIR/..\/..\/share}
|
||||
CXXFLAGS=${CXXFLAGS//$DATDIR/$BUILD_DIR/share}
|
||||
${YOSYS_CONFIG} --exec --cxx ${CXXFLAGS} --ldflags -shared -o plugin.so plugin.cc
|
||||
${YOSYS} -m ./plugin.so -p "test" | grep -q "Plugin test passed!"
|
||||
mkdir -p plugin_search
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ def vcdextract(signals, on_change, file, output, limit=None):
|
|||
print(*values[:len(signals)], file=output)
|
||||
|
||||
|
||||
share = Path(__file__).parent / ".." / ".." / "share"
|
||||
share = Path(os.environ.get("BUILD_DIR", "../..")) / "share"
|
||||
|
||||
simlibs = [str(share / "simlib.v"), str(share / "simcells.v")]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue