git: d7ee1b9f2e0a - main - cad/surelog: New port: SystemVerilog 2017 Pre-processor, Parser, Elaborator, etc

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 27 Dec 2021 17:09:33 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d7ee1b9f2e0aa100b4ec29a87ee9b4186999c251

commit d7ee1b9f2e0aa100b4ec29a87ee9b4186999c251
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2021-12-27 17:06:26 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2021-12-27 17:09:30 +0000

    cad/surelog: New port: SystemVerilog 2017 Pre-processor, Parser, Elaborator, etc
---
 cad/Makefile                                       |   1 +
 cad/surelog/Makefile                               |  34 ++
 cad/surelog/distinfo                               |  13 +
 ...antlr4__fast_runtime_Cpp_runtime_CMakeLists.txt |  61 ++++
 cad/surelog/pkg-descr                              |   4 +
 cad/surelog/pkg-plist                              | 364 +++++++++++++++++++++
 6 files changed, 477 insertions(+)

diff --git a/cad/Makefile b/cad/Makefile
index 299ab699da5c..9488029e9720 100644
--- a/cad/Makefile
+++ b/cad/Makefile
@@ -121,6 +121,7 @@
     SUBDIR += stepcode
     SUBDIR += stm32flash
     SUBDIR += sumo
+    SUBDIR += surelog
     SUBDIR += sweethome3d
     SUBDIR += tkgate
     SUBDIR += tochnog
diff --git a/cad/surelog/Makefile b/cad/surelog/Makefile
new file mode 100644
index 000000000000..6b3b611f7988
--- /dev/null
+++ b/cad/surelog/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	surelog
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.0-3924
+DISTVERSIONSUFFIX=	-g53d571844
+CATEGORIES=	cad
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	SystemVerilog 2017 Pre-processor, Parser, Elaborator, etc
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	utf8cpp>0:devel/utf8cpp
+LIB_DEPENDS=	libtcmalloc.so:devel/google-perftools
+
+USES=		cmake compiler:c++17-lang localbase:ldflags python:build tcl:86,build
+USE_JAVA=	yes
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	chipsalliance
+GH_PROJECT=	Surelog
+GH_TUPLE=	\
+		alainmarcel:antlr4:18ca2ee:antlr4/third_party/antlr4 \
+		chipsalliance:UHDM:a8be019:UHDM/third_party/UHDM \
+		capnproto:capnproto:14f24a4:UHDM_capnproto/third_party/UHDM/third_party/capnproto \
+		google:googletest:1b18723:googletest/third_party/googletest \
+		google:flatbuffers:f28c2b2:flatbuffers/third_party/flatbuffers
+
+CMAKE_ON=	BUILD_SHARED_LIBS
+
+BINARY_ALIAS=	python3=${PYTHON_CMD} tclsh=${TCLSH}
+
+.include <bsd.port.mk>
diff --git a/cad/surelog/distinfo b/cad/surelog/distinfo
new file mode 100644
index 000000000000..cfc885b01c08
--- /dev/null
+++ b/cad/surelog/distinfo
@@ -0,0 +1,13 @@
+TIMESTAMP = 1640583362
+SHA256 (chipsalliance-Surelog-v0.0-3924-g53d571844_GH0.tar.gz) = 17d22630977055af40ba6b02da4c6d7821ff9533b4250bdebba8f1bb49070419
+SIZE (chipsalliance-Surelog-v0.0-3924-g53d571844_GH0.tar.gz) = 86506853
+SHA256 (alainmarcel-antlr4-18ca2ee_GH0.tar.gz) = 77f1b3586e29b773f84adc6ef000a015fc3eec9c2af6008b087e55a494cdfd45
+SIZE (alainmarcel-antlr4-18ca2ee_GH0.tar.gz) = 6777084
+SHA256 (chipsalliance-UHDM-a8be019_GH0.tar.gz) = 9843aabb5488e62e350033b355997e42b2514a431377a7650ef6c55fc48791e0
+SIZE (chipsalliance-UHDM-a8be019_GH0.tar.gz) = 1700368
+SHA256 (capnproto-capnproto-14f24a4_GH0.tar.gz) = 1130e78658e8b1ceb3a69a6b3a964913f22505532ab217299e5600f371922877
+SIZE (capnproto-capnproto-14f24a4_GH0.tar.gz) = 2121570
+SHA256 (google-googletest-1b18723_GH0.tar.gz) = c51c5ce6577f1e2972e53ddb7df4e072c8e4091090d281a7eb753717e545c0b1
+SIZE (google-googletest-1b18723_GH0.tar.gz) = 832180
+SHA256 (google-flatbuffers-f28c2b2_GH0.tar.gz) = 0c36feddf752c7eaaa43254a1efd63f3ebf3886ab97d488b03b5396c209e6046
+SIZE (google-flatbuffers-f28c2b2_GH0.tar.gz) = 1686020
diff --git a/cad/surelog/files/patch-third__party_antlr4__fast_runtime_Cpp_runtime_CMakeLists.txt b/cad/surelog/files/patch-third__party_antlr4__fast_runtime_Cpp_runtime_CMakeLists.txt
new file mode 100644
index 000000000000..a69407fd6725
--- /dev/null
+++ b/cad/surelog/files/patch-third__party_antlr4__fast_runtime_Cpp_runtime_CMakeLists.txt
@@ -0,0 +1,61 @@
+- workaround for https://github.com/chipsalliance/Surelog/issues/2349
+- ... replace bundled utfcpp with the external build-time dependency
+
+--- third_party/antlr4_fast/runtime/Cpp/runtime/CMakeLists.txt.orig	2021-12-27 08:04:15 UTC
++++ third_party/antlr4_fast/runtime/Cpp/runtime/CMakeLists.txt
+@@ -1,6 +1,7 @@
+ 
+ include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
+ 
++if (FALSE)
+ set(THIRDPARTY_DIR ${CMAKE_BINARY_DIR}/runtime/thirdparty)
+ set(UTFCPP_DIR ${THIRDPARTY_DIR}/utfcpp)
+ ExternalProject_Add(
+@@ -12,8 +13,8 @@ ExternalProject_Add(
+   CMAKE_ARGS            -DCMAKE_INSTALL_PREFIX=${UTFCPP_DIR}/install -Dgtest_force_shared_crt=ON -DUTF8_TESTS=OFF
+   TEST_AFTER_INSTALL    0
+   STEP_TARGETS          build)
++endif()
+ 
+-
+ include_directories(
+   ${PROJECT_SOURCE_DIR}/runtime/src
+   ${PROJECT_SOURCE_DIR}/runtime/src/atn
+@@ -23,8 +24,8 @@ include_directories(
+   ${PROJECT_SOURCE_DIR}/runtime/src/tree
+   ${PROJECT_SOURCE_DIR}/runtime/src/tree/pattern
+   ${PROJECT_SOURCE_DIR}/runtime/src/tree/xpath
+-  ${UTFCPP_DIR}/install/include/utf8cpp
+-  ${UTFCPP_DIR}/install/include/utf8cpp/utf8
++  #${UTFCPP_DIR}/install/include/utf8cpp
++  #${UTFCPP_DIR}/install/include/utf8cpp/utf8
+ )
+ 
+ 
+@@ -50,8 +51,8 @@ add_custom_target(make_lib_output_dir ALL
+     COMMAND ${CMAKE_COMMAND} -E make_directory ${LIB_OUTPUT_DIR}
+     )
+ 
+-add_dependencies(antlr4_shared make_lib_output_dir utfcpp)
+-add_dependencies(antlr4_static make_lib_output_dir utfcpp)
++add_dependencies(antlr4_shared make_lib_output_dir)
++add_dependencies(antlr4_static make_lib_output_dir)
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+   target_link_libraries(antlr4_shared ${UUID_LIBRARIES})
+@@ -131,6 +132,7 @@ install(DIRECTORY "${PROJECT_SOURCE_DIR}/runtime/src/"
+         FILES_MATCHING PATTERN "*.h"
+         )
+ 
++if (FALSE)
+ install(FILES "${UTFCPP_DIR}/source/utf8.h"
+         DESTINATION "include/antlr4-runtime")
+ install(DIRECTORY "${UTFCPP_DIR}/source/utf8"
+@@ -138,6 +140,6 @@ install(DIRECTORY "${UTFCPP_DIR}/source/utf8"
+         COMPONENT dev
+         FILES_MATCHING PATTERN "*.h"
+         )
+-
++endif()
+ 
+ 
diff --git a/cad/surelog/pkg-descr b/cad/surelog/pkg-descr
new file mode 100644
index 000000000000..49e4c789698f
--- /dev/null
+++ b/cad/surelog/pkg-descr
@@ -0,0 +1,4 @@
+SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler. Provides
+IEEE Design/TB C/C++ VPI and Python AST API.
+
+WWW: https://github.com/chipsalliance/Surelog
diff --git a/cad/surelog/pkg-plist b/cad/surelog/pkg-plist
new file mode 100644
index 000000000000..4d4a8e47eb63
--- /dev/null
+++ b/cad/surelog/pkg-plist
@@ -0,0 +1,364 @@
+bin/surelog
+bin/uhdm-dump
+bin/uhdm-hier
+cmake/Surelog-%%CMAKE_BUILD_TYPE%%.cmake
+cmake/Surelog.cmake
+cmake/SurelogConfig.cmake
+include/surelog/API/PythonAPI.h
+include/surelog/API/SLAPI.h
+include/surelog/API/Surelog.h
+include/surelog/CommandLine/CommandLineParser.h
+include/surelog/Common/ClockingBlockHolder.h
+include/surelog/Common/PortNetHolder.h
+include/surelog/Common/RTTI.h
+include/surelog/Config/Config.h
+include/surelog/Config/ConfigSet.h
+include/surelog/Design/BindStmt.h
+include/surelog/Design/ClockingBlock.h
+include/surelog/Design/DataType.h
+include/surelog/Design/DefParam.h
+include/surelog/Design/Design.h
+include/surelog/Design/DesignComponent.h
+include/surelog/Design/DesignElement.h
+include/surelog/Design/DummyType.h
+include/surelog/Design/Enum.h
+include/surelog/Design/FileCNodeId.h
+include/surelog/Design/FileContent.h
+include/surelog/Design/Function.h
+include/surelog/Design/Instance.h
+include/surelog/Design/ModPort.h
+include/surelog/Design/ModuleDefinition.h
+include/surelog/Design/ModuleInstance.h
+include/surelog/Design/Netlist.h
+include/surelog/Design/ParamAssign.h
+include/surelog/Design/Parameter.h
+include/surelog/Design/Scope.h
+include/surelog/Design/Signal.h
+include/surelog/Design/SimpleType.h
+include/surelog/Design/Statement.h
+include/surelog/Design/Struct.h
+include/surelog/Design/Task.h
+include/surelog/Design/TfPortItem.h
+include/surelog/Design/TimeInfo.h
+include/surelog/Design/Union.h
+include/surelog/Design/VObject.h
+include/surelog/Design/ValuedComponentI.h
+include/surelog/DesignCompile/CompileHelper.h
+include/surelog/ErrorReporting/Error.h
+include/surelog/ErrorReporting/ErrorContainer.h
+include/surelog/ErrorReporting/ErrorDefinition.h
+include/surelog/ErrorReporting/Location.h
+include/surelog/ErrorReporting/LogListener.h
+include/surelog/ErrorReporting/Report.h
+include/surelog/ErrorReporting/Waiver.h
+include/surelog/Expression/ExprBuilder.h
+include/surelog/Expression/Value.h
+include/surelog/Library/Library.h
+include/surelog/Library/LibrarySet.h
+include/surelog/Package/Package.h
+include/surelog/SourceCompile/SymbolTable.h
+include/surelog/SourceCompile/VObjectTypes.h
+include/surelog/Testbench/ClassDefinition.h
+include/surelog/Testbench/ClassObject.h
+include/surelog/Testbench/Constraint.h
+include/surelog/Testbench/CoverGroupDefinition.h
+include/surelog/Testbench/FunctionMethod.h
+include/surelog/Testbench/Program.h
+include/surelog/Testbench/Property.h
+include/surelog/Testbench/TaskMethod.h
+include/surelog/Testbench/TypeDef.h
+include/surelog/Testbench/Variable.h
+include/surelog/surelog.h
+include/uhdm/BaseClass.h
+include/uhdm/ElaboratorListener.h
+include/uhdm/ExprEval.h
+include/uhdm/RTTI.h
+include/uhdm/Serializer.h
+include/uhdm/SymbolFactory.h
+include/uhdm/VpiListener.h
+include/uhdm/actual_group.h
+include/uhdm/alias_stmt.h
+include/uhdm/always.h
+include/uhdm/any_pattern.h
+include/uhdm/array_net.h
+include/uhdm/array_typespec.h
+include/uhdm/array_var.h
+include/uhdm/assert_stmt.h
+include/uhdm/assertion.h
+include/uhdm/assign_stmt.h
+include/uhdm/assignment.h
+include/uhdm/assume.h
+include/uhdm/atomic_stmt.h
+include/uhdm/attribute.h
+include/uhdm/begin.h
+include/uhdm/bit_select.h
+include/uhdm/bit_typespec.h
+include/uhdm/bit_var.h
+include/uhdm/break_stmt.h
+include/uhdm/byte_typespec.h
+include/uhdm/byte_var.h
+include/uhdm/case_item.h
+include/uhdm/case_property.h
+include/uhdm/case_property_item.h
+include/uhdm/case_stmt.h
+include/uhdm/chandle_typespec.h
+include/uhdm/chandle_var.h
+include/uhdm/checker_decl.h
+include/uhdm/checker_inst.h
+include/uhdm/checker_inst_port.h
+include/uhdm/checker_port.h
+include/uhdm/class_defn.h
+include/uhdm/class_obj.h
+include/uhdm/class_typespec.h
+include/uhdm/class_var.h
+include/uhdm/clocked_property.h
+include/uhdm/clocked_seq.h
+include/uhdm/clocking_block.h
+include/uhdm/clocking_io_decl.h
+include/uhdm/clone_tree.h
+include/uhdm/concurrent_assertions.h
+include/uhdm/constant.h
+include/uhdm/constr_foreach.h
+include/uhdm/constr_if.h
+include/uhdm/constr_if_else.h
+include/uhdm/constraint.h
+include/uhdm/constraint_expr.h
+include/uhdm/constraint_item_group.h
+include/uhdm/constraint_ordering.h
+include/uhdm/cont_assign.h
+include/uhdm/cont_assign_bit.h
+include/uhdm/containers.h
+include/uhdm/continue_stmt.h
+include/uhdm/cover.h
+include/uhdm/deassign.h
+include/uhdm/def_param.h
+include/uhdm/delay_control.h
+include/uhdm/delay_term.h
+include/uhdm/design.h
+include/uhdm/disable.h
+include/uhdm/disable_fork.h
+include/uhdm/disables.h
+include/uhdm/dist_item.h
+include/uhdm/distribution.h
+include/uhdm/do_while.h
+include/uhdm/enum_const.h
+include/uhdm/enum_net.h
+include/uhdm/enum_struct_packed_net_group.h
+include/uhdm/enum_struct_union_packed_array_typespec_group.h
+include/uhdm/enum_struct_union_packed_var_group.h
+include/uhdm/enum_typespec.h
+include/uhdm/enum_var.h
+include/uhdm/event_control.h
+include/uhdm/event_stmt.h
+include/uhdm/event_typespec.h
+include/uhdm/expect_stmt.h
+include/uhdm/expr.h
+include/uhdm/expr_constr_group.h
+include/uhdm/expr_dist.h
+include/uhdm/expr_interf_expr_group.h
+include/uhdm/expr_range_group.h
+include/uhdm/expr_ref_obj_group.h
+include/uhdm/expr_sequence_inst_group.h
+include/uhdm/expr_sequence_inst_named_event_group.h
+include/uhdm/expr_tchk_term_group.h
+include/uhdm/expr_typespec_group.h
+include/uhdm/extends.h
+include/uhdm/final_stmt.h
+include/uhdm/for_stmt.h
+include/uhdm/force.h
+include/uhdm/foreach_stmt.h
+include/uhdm/forever_stmt.h
+include/uhdm/fork_stmt.h
+include/uhdm/func_call.h
+include/uhdm/function.h
+include/uhdm/gate.h
+include/uhdm/gate_array.h
+include/uhdm/gen_scope.h
+include/uhdm/gen_scope_array.h
+include/uhdm/gen_var.h
+include/uhdm/hier_path.h
+include/uhdm/if_else.h
+include/uhdm/if_stmt.h
+include/uhdm/immediate_assert.h
+include/uhdm/immediate_assume.h
+include/uhdm/immediate_cover.h
+include/uhdm/implication.h
+include/uhdm/import.h
+include/uhdm/indexed_part_select.h
+include/uhdm/initial.h
+include/uhdm/instance.h
+include/uhdm/instance_array.h
+include/uhdm/instance_item.h
+include/uhdm/int_typespec.h
+include/uhdm/int_var.h
+include/uhdm/integer_net.h
+include/uhdm/integer_typespec.h
+include/uhdm/integer_var.h
+include/uhdm/interf_prog_mod_group.h
+include/uhdm/interface.h
+include/uhdm/interface_array.h
+include/uhdm/interface_expr.h
+include/uhdm/interface_tf_decl.h
+include/uhdm/interface_typespec.h
+include/uhdm/io_decl.h
+include/uhdm/let_decl.h
+include/uhdm/let_expr.h
+include/uhdm/logic_net.h
+include/uhdm/logic_typespec.h
+include/uhdm/logic_var.h
+include/uhdm/long_int_typespec.h
+include/uhdm/long_int_var.h
+include/uhdm/method_func_call.h
+include/uhdm/method_func_task_call_group.h
+include/uhdm/method_task_call.h
+include/uhdm/mod_path.h
+include/uhdm/modport.h
+include/uhdm/module.h
+include/uhdm/module_array.h
+include/uhdm/multiclock_sequence_expr.h
+include/uhdm/named_begin.h
+include/uhdm/named_event.h
+include/uhdm/named_event_array.h
+include/uhdm/named_event_sequence_expr_group.h
+include/uhdm/named_fork.h
+include/uhdm/net.h
+include/uhdm/net_bit.h
+include/uhdm/net_drivers.h
+include/uhdm/net_loads.h
+include/uhdm/nets.h
+include/uhdm/nets_vars_ref_obj_group.h
+include/uhdm/null_stmt.h
+include/uhdm/operand_group.h
+include/uhdm/operation.h
+include/uhdm/ordered_wait.h
+include/uhdm/package.h
+include/uhdm/packed_array_net.h
+include/uhdm/packed_array_typespec.h
+include/uhdm/packed_array_var.h
+include/uhdm/param_assign.h
+include/uhdm/parameter.h
+include/uhdm/parameters.h
+include/uhdm/part_select.h
+include/uhdm/path_term.h
+include/uhdm/pattern.h
+include/uhdm/pattern_expr_group.h
+include/uhdm/port.h
+include/uhdm/port_bit.h
+include/uhdm/ports.h
+include/uhdm/prim_term.h
+include/uhdm/primitive.h
+include/uhdm/primitive_array.h
+include/uhdm/process_stmt.h
+include/uhdm/program.h
+include/uhdm/program_array.h
+include/uhdm/prop_formal_decl.h
+include/uhdm/property_decl.h
+include/uhdm/property_expr_group.h
+include/uhdm/property_expr_named_event_group.h
+include/uhdm/property_inst.h
+include/uhdm/property_inst_spec_group.h
+include/uhdm/property_spec.h
+include/uhdm/property_typespec.h
+include/uhdm/range.h
+include/uhdm/real_typespec.h
+include/uhdm/real_var.h
+include/uhdm/ref_obj.h
+include/uhdm/ref_obj_interf_net_var_group.h
+include/uhdm/ref_var.h
+include/uhdm/reg.h
+include/uhdm/reg_array.h
+include/uhdm/%%CMAKE_BUILD_TYPE%%.h
+include/uhdm/repeat.h
+include/uhdm/repeat_control.h
+include/uhdm/restrict.h
+include/uhdm/return_stmt.h
+include/uhdm/scope.h
+include/uhdm/seq_formal_decl.h
+include/uhdm/sequence_decl.h
+include/uhdm/sequence_expr_group.h
+include/uhdm/sequence_expr_multiclock_group.h
+include/uhdm/sequence_inst.h
+include/uhdm/sequence_typespec.h
+include/uhdm/short_int_typespec.h
+include/uhdm/short_int_var.h
+include/uhdm/short_real_typespec.h
+include/uhdm/short_real_var.h
+include/uhdm/simple_expr.h
+include/uhdm/simple_expr_use_group.h
+include/uhdm/soft_disable.h
+include/uhdm/spec_param.h
+include/uhdm/stmt.h
+include/uhdm/string_typespec.h
+include/uhdm/string_var.h
+include/uhdm/struct_net.h
+include/uhdm/struct_pattern.h
+include/uhdm/struct_typespec.h
+include/uhdm/struct_var.h
+include/uhdm/sv_vpi_user.h
+include/uhdm/switch_array.h
+include/uhdm/switch_tran.h
+include/uhdm/sys_func_call.h
+include/uhdm/sys_func_task_call_group.h
+include/uhdm/sys_task_call.h
+include/uhdm/table_entry.h
+include/uhdm/tagged_pattern.h
+include/uhdm/task.h
+include/uhdm/task_call.h
+include/uhdm/task_func.h
+include/uhdm/task_func_named_begin_fork_group.h
+include/uhdm/tchk.h
+include/uhdm/tchk_term.h
+include/uhdm/tf_call.h
+include/uhdm/tf_call_args.h
+include/uhdm/thread_obj.h
+include/uhdm/time_net.h
+include/uhdm/time_typespec.h
+include/uhdm/time_var.h
+include/uhdm/type_parameter.h
+include/uhdm/typespec.h
+include/uhdm/typespec_member.h
+include/uhdm/udp.h
+include/uhdm/udp_array.h
+include/uhdm/udp_defn.h
+include/uhdm/uhdm.h
+include/uhdm/uhdm_forward_decl.h
+include/uhdm/uhdm_types.h
+include/uhdm/uhdm_vpi_user.h
+include/uhdm/union_typespec.h
+include/uhdm/union_var.h
+include/uhdm/unsupported_expr.h
+include/uhdm/unsupported_stmt.h
+include/uhdm/unsupported_typespec.h
+include/uhdm/user_systf.h
+include/uhdm/var_bit.h
+include/uhdm/var_select.h
+include/uhdm/variable_drivers_group.h
+include/uhdm/variable_loads_group.h
+include/uhdm/variables.h
+include/uhdm/variables_operation_group.h
+include/uhdm/vhpi_user.h
+include/uhdm/virtual_interface_var.h
+include/uhdm/void_typespec.h
+include/uhdm/vpi_listener.h
+include/uhdm/vpi_uhdm.h
+include/uhdm/vpi_user.h
+include/uhdm/vpi_visitor.h
+include/uhdm/wait_fork.h
+include/uhdm/wait_stmt.h
+include/uhdm/waits.h
+include/uhdm/while_stmt.h
+lib/libcapnp.so
+lib/libcapnp.so.0.8.0
+lib/libkj.so
+lib/libkj.so.0.8.0
+lib/surelog/libantlr4-runtime.a
+lib/surelog/libflatbuffers.a
+lib/surelog/libsurelog.a
+lib/surelog/pkg/work/ovm_pkg.sv.slpa
+lib/surelog/pkg/work/ovm_pkg.sv.slpp
+lib/surelog/pkg/work/uvm_pkg.sv.slpa
+lib/surelog/pkg/work/uvm_pkg.sv.slpp
+lib/surelog/sv/builtin.sv
+lib/uhdm/UHDM.capnp
+lib/uhdm/libuhdm.a
+@dir lib/surelog/python