mirror of
https://github.com/YosysHQ/yosys
synced 2026-05-25 11:26:22 +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:
parent
9d0cdb8551
commit
9b087b4aa7
207 changed files with 5202 additions and 2294 deletions
10
frontends/CMakeLists.txt
Normal file
10
frontends/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
add_subdirectory(aiger)
|
||||
add_subdirectory(aiger2)
|
||||
add_subdirectory(ast)
|
||||
add_subdirectory(blif)
|
||||
add_subdirectory(json)
|
||||
add_subdirectory(liberty)
|
||||
add_subdirectory(rpc)
|
||||
add_subdirectory(rtlil)
|
||||
add_subdirectory(verific)
|
||||
add_subdirectory(verilog)
|
||||
6
frontends/aiger/CMakeLists.txt
Normal file
6
frontends/aiger/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
yosys_frontend(aigerparse
|
||||
aigerparse.cc
|
||||
aigerparse.h
|
||||
REQUIRES
|
||||
opt_clean
|
||||
)
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
|
||||
OBJS += frontends/aiger/aigerparse.o
|
||||
|
||||
3
frontends/aiger2/CMakeLists.txt
Normal file
3
frontends/aiger2/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
yosys_frontend(xaiger2
|
||||
xaiger.cc
|
||||
)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
|
||||
OBJS += frontends/aiger2/xaiger.o
|
||||
13
frontends/ast/CMakeLists.txt
Normal file
13
frontends/ast/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
yosys_core(ast
|
||||
ast_binding.cc
|
||||
ast_binding.h
|
||||
ast.cc
|
||||
ast.h
|
||||
dpicall.cc
|
||||
genrtlil.cc
|
||||
simplify.cc
|
||||
LIBRARIES
|
||||
$<${YOSYS_ENABLE_LIBFFI}:${Dlfcn_LIBRARIES};PkgConfig::libffi>
|
||||
REQUIRES
|
||||
sha1
|
||||
)
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
|
||||
OBJS += frontends/ast/ast.o
|
||||
OBJS += frontends/ast/simplify.o
|
||||
OBJS += frontends/ast/genrtlil.o
|
||||
OBJS += frontends/ast/dpicall.o
|
||||
OBJS += frontends/ast/ast_binding.o
|
||||
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#include "ast.h"
|
||||
|
||||
#ifdef YOSYS_ENABLE_PLUGINS
|
||||
#ifdef YOSYS_ENABLE_LIBFFI
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <ffi.h>
|
||||
|
|
@ -149,7 +149,7 @@ std::unique_ptr<AST::AstNode> AST::dpi_call(AstSrcLocType loc, const std::string
|
|||
|
||||
YOSYS_NAMESPACE_END
|
||||
|
||||
#else /* YOSYS_ENABLE_PLUGINS */
|
||||
#else /* YOSYS_ENABLE_LIBFFI */
|
||||
|
||||
YOSYS_NAMESPACE_BEGIN
|
||||
|
||||
|
|
@ -160,5 +160,5 @@ std::unique_ptr<AST::AstNode> AST::dpi_call(AstSrcLocType, const std::string&, c
|
|||
|
||||
YOSYS_NAMESPACE_END
|
||||
|
||||
#endif /* YOSYS_ENABLE_PLUGINS */
|
||||
#endif /* YOSYS_ENABLE_LIBFFI */
|
||||
|
||||
|
|
|
|||
8
frontends/blif/CMakeLists.txt
Normal file
8
frontends/blif/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
yosys_frontend(blif
|
||||
blifparse.cc
|
||||
blifparse.h
|
||||
DATA_DIR
|
||||
include/frontends/blif
|
||||
DATA_FILES
|
||||
blifparse.h
|
||||
)
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
|
||||
OBJS += frontends/blif/blifparse.o
|
||||
|
||||
3
frontends/json/CMakeLists.txt
Normal file
3
frontends/json/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
yosys_frontend(json
|
||||
jsonparse.cc
|
||||
)
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
|
||||
OBJS += frontends/json/jsonparse.o
|
||||
|
||||
5
frontends/liberty/CMakeLists.txt
Normal file
5
frontends/liberty/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
yosys_frontend(liberty
|
||||
liberty.cc
|
||||
REQUIRES
|
||||
libparse
|
||||
)
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
|
||||
OBJS += frontends/liberty/liberty.o
|
||||
|
||||
8
frontends/rpc/CMakeLists.txt
Normal file
8
frontends/rpc/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
yosys_frontend(rpc
|
||||
rpc_frontend.cc
|
||||
REQUIRES
|
||||
json11
|
||||
sha1
|
||||
ENABLE_IF
|
||||
YOSYS_ENABLE_SPAWN
|
||||
)
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
ifeq ($(DISABLE_SPAWN),0)
|
||||
OBJS += frontends/rpc/rpc_frontend.o
|
||||
endif
|
||||
3
frontends/rtlil/CMakeLists.txt
Normal file
3
frontends/rtlil/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
yosys_frontend(rtlil
|
||||
rtlil_frontend.cc
|
||||
)
|
||||
|
|
@ -1 +0,0 @@
|
|||
OBJS += frontends/rtlil/rtlil_frontend.o
|
||||
70
frontends/verific/CMakeLists.txt
Normal file
70
frontends/verific/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
if (NOT YOSYS_ENABLE_VERIFIC)
|
||||
# Stub interface library.
|
||||
add_library(verific INTERFACE)
|
||||
set(verific_data_files)
|
||||
else()
|
||||
if (NOT YOSYS_VERIFIC_COMPONENTS)
|
||||
get_verific_components(YOSYS_VERIFIC_COMPONENTS)
|
||||
endif()
|
||||
|
||||
if (NOT YOSYS_VERIFIC_FEATURES)
|
||||
foreach (component ${YOSYS_VERIFIC_COMPONENTS})
|
||||
if (component MATCHES "^(hier_tree|vhdl|edif|extensions)$")
|
||||
list(APPEND YOSYS_VERIFIC_FEATURES ${component})
|
||||
elseif (component STREQUAL "verilog")
|
||||
list(APPEND YOSYS_VERIFIC_FEATURES systemverilog)
|
||||
elseif (component STREQUAL "synlib")
|
||||
list(APPEND YOSYS_VERIFIC_FEATURES liberty)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
message(STATUS "Verific library components: ${YOSYS_VERIFIC_COMPONENTS}")
|
||||
message(STATUS "Verific frontend features: ${YOSYS_VERIFIC_FEATURES}")
|
||||
|
||||
get_verific_options(verific_include_dirs verific_libraries ${YOSYS_VERIFIC_COMPONENTS})
|
||||
add_library(verific INTERFACE)
|
||||
target_include_directories(verific INTERFACE
|
||||
${verific_include_dirs}
|
||||
)
|
||||
target_link_libraries(verific INTERFACE
|
||||
$<LINK_LIBRARY:WHOLE_ARCHIVE,${verific_libraries}>
|
||||
PkgConfig::zlib
|
||||
)
|
||||
|
||||
set(verific_data_files)
|
||||
if ("vhdl" IN_LIST YOSYS_VERIFIC_FEATURES)
|
||||
foreach (vdb_std 1987 1993 2008 2019)
|
||||
set(vdb_std_root ${YOSYS_VERIFIC_DIR}/vhdl_packages/vdbs_${vdb_std})
|
||||
file(GLOB_RECURSE vdb_files RELATIVE ${vdb_std_root} ${vdb_std_root}/*)
|
||||
foreach (vdb_file ${vdb_files})
|
||||
list(APPEND verific_data_files
|
||||
verific/vhdl_vdbs_${vdb_std}/${vdb_file}
|
||||
${YOSYS_VERIFIC_DIR}/vhdl_packages/vdbs_${vdb_std}/${vdb_file}
|
||||
)
|
||||
endforeach()
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
yosys_frontend(verific
|
||||
verific.cc
|
||||
verific.h
|
||||
$<${YOSYS_ENABLE_VERIFIC}:verificsva.cc>
|
||||
DEFINITIONS
|
||||
$<$<IN_LIST:hier_tree,${YOSYS_VERIFIC_FEATURES}>:VERIFIC_HIER_TREE_SUPPORT>
|
||||
$<$<IN_LIST:systemverilog,${YOSYS_VERIFIC_FEATURES}>:VERIFIC_SYSTEMVERILOG_SUPPORT>
|
||||
$<$<IN_LIST:vhdl,${YOSYS_VERIFIC_FEATURES}>:VERIFIC_VHDL_SUPPORT>
|
||||
$<$<IN_LIST:edif,${YOSYS_VERIFIC_FEATURES}>:VERIFIC_EDIF_SUPPORT>
|
||||
$<$<IN_LIST:liberty,${YOSYS_VERIFIC_FEATURES}>:VERIFIC_LIBERTY_SUPPORT>
|
||||
$<$<IN_LIST:extensions,${YOSYS_VERIFIC_FEATURES}>:YOSYSHQ_VERIFIC_EXTENSIONS>
|
||||
LIBRARIES
|
||||
verific
|
||||
REQUIRES
|
||||
sha1
|
||||
read_verilog
|
||||
PROVIDES
|
||||
read
|
||||
DATA_EXPLICIT
|
||||
${verific_data_files}
|
||||
)
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
|
||||
OBJS += frontends/verific/verific.o
|
||||
|
||||
ifeq ($(ENABLE_VERIFIC),1)
|
||||
|
||||
OBJS += frontends/verific/verificsva.o
|
||||
|
||||
EXTRA_TARGETS += share/verific
|
||||
|
||||
share/verific:
|
||||
$(P) rm -rf share/verific.new
|
||||
$(Q) mkdir -p share/verific.new
|
||||
ifeq ($(ENABLE_VERIFIC_VHDL),1)
|
||||
$(Q) cp -r $(VERIFIC_DIR)/vhdl_packages/vdbs_1987/. share/verific.new/vhdl_vdbs_1987
|
||||
$(Q) cp -r $(VERIFIC_DIR)/vhdl_packages/vdbs_1993/. share/verific.new/vhdl_vdbs_1993
|
||||
$(Q) cp -r $(VERIFIC_DIR)/vhdl_packages/vdbs_2008/. share/verific.new/vhdl_vdbs_2008
|
||||
$(Q) cp -r $(VERIFIC_DIR)/vhdl_packages/vdbs_2019/. share/verific.new/vhdl_vdbs_2019
|
||||
endif
|
||||
$(Q) chmod -R a+rX share/verific.new
|
||||
$(Q) mv share/verific.new share/verific
|
||||
|
||||
endif
|
||||
|
||||
43
frontends/verilog/CMakeLists.txt
Normal file
43
frontends/verilog/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
if (NOT FLEX_INCLUDE_DIRS)
|
||||
set(FLEX_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/libs/flex)
|
||||
endif()
|
||||
|
||||
flex_target(verilog_lexer
|
||||
verilog_lexer.l
|
||||
verilog_lexer.cc
|
||||
)
|
||||
bison_target(verilog_parser
|
||||
verilog_parser.y
|
||||
verilog_parser.tab.cc
|
||||
# (requires CMake 4.0)
|
||||
# OPTIONS
|
||||
# -Wall -Werror
|
||||
)
|
||||
yosys_frontend(verilog
|
||||
const2ast.cc
|
||||
preproc.cc
|
||||
preproc.h
|
||||
verilog_error.cc
|
||||
verilog_error.h
|
||||
verilog_frontend.cc
|
||||
verilog_frontend.h
|
||||
verilog_lexer.h
|
||||
verilog_location.h
|
||||
${FLEX_verilog_lexer_OUTPUTS}
|
||||
${BISON_verilog_parser_OUTPUTS}
|
||||
INCLUDE_DIRS
|
||||
${FLEX_INCLUDE_DIRS}
|
||||
REQUIRES
|
||||
sha1
|
||||
ast
|
||||
PROVIDES
|
||||
verilog_defaults
|
||||
verilog_defines
|
||||
read_verilog_file_list
|
||||
ESSENTIAL
|
||||
)
|
||||
set_source_files_properties(
|
||||
${BISON_verilog_parser_OUTPUT_SOURCE}
|
||||
PROPERTIES
|
||||
COMPILE_DEFINITIONS -DYYMAXDEPTH=10000000
|
||||
)
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
|
||||
GENFILES += frontends/verilog/verilog_parser.tab.cc
|
||||
GENFILES += frontends/verilog/verilog_parser.tab.hh
|
||||
GENFILES += frontends/verilog/verilog_parser.output
|
||||
GENFILES += frontends/verilog/verilog_lexer.cc
|
||||
|
||||
frontends/verilog/verilog_parser.tab.cc: frontends/verilog/verilog_parser.y
|
||||
$(Q) mkdir -p $(dir $@)
|
||||
$(P) $(BISON) -Wall -Werror -o $@ -d -r all -b frontends/verilog/verilog_parser $<
|
||||
|
||||
frontends/verilog/verilog_parser.tab.hh: frontends/verilog/verilog_parser.tab.cc
|
||||
|
||||
frontends/verilog/verilog_frontend.o: frontends/verilog/verilog_parser.tab.hh
|
||||
frontends/verilog/preproc.o: frontends/verilog/verilog_parser.tab.hh
|
||||
|
||||
frontends/verilog/verilog_lexer.h: frontends/verilog/verilog_parser.tab.hh
|
||||
frontends/verilog/verilog_lexer.cc: frontends/verilog/verilog_lexer.l frontends/verilog/verilog_parser.tab.cc
|
||||
$(Q) mkdir -p $(dir $@)
|
||||
$(P) flex -o frontends/verilog/verilog_lexer.cc $<
|
||||
|
||||
frontends/verilog/verilog_parser.tab.o: CXXFLAGS += -DYYMAXDEPTH=10000000
|
||||
|
||||
OBJS += frontends/verilog/verilog_parser.tab.o
|
||||
OBJS += frontends/verilog/verilog_lexer.o
|
||||
OBJS += frontends/verilog/preproc.o
|
||||
OBJS += frontends/verilog/verilog_frontend.o
|
||||
OBJS += frontends/verilog/verilog_error.o
|
||||
OBJS += frontends/verilog/const2ast.o
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue