diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index ba0d6a892..d0b16f48b 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -28,6 +28,7 @@ jobs: run: | bash ci/ci-install.bash && sudo apt-get install clang-format-14 yapf3 && + sudo pip3 install gersemi mbake && git config --global user.email "action@example.com" && git config --global user.name "github action" - name: Format code diff --git a/Makefile.in b/Makefile.in index c63fa0c28..f3f22f548 100644 --- a/Makefile.in +++ b/Makefile.in @@ -461,7 +461,7 @@ analyzer-include: scan-build $(MAKE) -k examples format: - $(MAKE) -j 4 format-c format-py format-exec + $(MAKE) -j 5 format-c format-cmake format-exec format-py CLANGFORMAT = clang-format-14 CLANGFORMAT_FLAGS = -i @@ -539,7 +539,7 @@ format-py yapf: $(YAPF) $(YAPF_FLAGS) $(PY_FILES) GERSEMI = gersemi -GERSEMI_FLAGS = -i +GERSEMI_FLAGS = -i --no-warn-about-unknown-commands format-cmake: $(GERSEMI) $(GERSEMI_FLAGS) $(CMAKE_FILES) diff --git a/docs/guide/install.rst b/docs/guide/install.rst index 333dde197..9e1783b57 100644 --- a/docs/guide/install.rst +++ b/docs/guide/install.rst @@ -159,7 +159,7 @@ Those developing Verilator itself may also want these (see internals.rst): sudo apt-get install clang clang-format-14 cmake gdb gprof graphviz lcov sudo apt-get install python3-clang python3-distro yapf3 bear jq - sudo pip3 install sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe ruff sarif-tools + sudo pip3 install sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe gersemi mbake ruff sarif-tools sudo pip3 install git+https://github.com/antmicro/astsee.git cpan install Pod::Perldoc diff --git a/verilator-config.cmake.in b/verilator-config.cmake.in index e5babed69..13e386511 100644 --- a/verilator-config.cmake.in +++ b/verilator-config.cmake.in @@ -237,7 +237,10 @@ function(verilate TARGET) if(NOT VERILATE_TRACE_VCD) set(VERILATE_TRACE_VCD TRUE) endif() - message(DEPRECATION "The `TRACE` argument is deprecated. Please use `TRACE_VCD` instead.") + message( + DEPRECATION + "The `TRACE` argument is deprecated. Please use `TRACE_VCD` instead." + ) endif() if(NOT VERILATE_SOURCES) @@ -444,7 +447,9 @@ function(verilate TARGET) json_get_list(JSOURCES_USER_CLASSES "${MANIFEST}" sources user_classes) json_get_list(JSOURCES_DEPS "${MANIFEST}" sources deps) - file(WRITE ${VDIR}/${VERILATE_PREFIX}.cmake + file( + WRITE + ${VDIR}/${VERILATE_PREFIX}.cmake "# Verilated -*- CMake -*-\n" "# DESCRIPTION: Verilator output: CMake include script with class lists\n" "#\n" @@ -496,7 +501,9 @@ function(verilate TARGET) json_get_submodules(JSUBMODULES JNSUBMODULES "${MANIFEST}") if(JNSUBMODULES) - file(APPEND ${VDIR}/${VERILATE_PREFIX}.cmake + file( + APPEND + ${VDIR}/${VERILATE_PREFIX}.cmake "# Verilate hierarchical blocks\n" "get_target_property(TOP_TARGET_NAME \"\${TARGET}\" NAME)\n" ) @@ -514,30 +521,58 @@ function(verilate TARGET) set(SUBMODULE_VERILATE_ARGS "") if(NOT ${I} STREQUAL ${JNSUBMODULES}) - string(APPEND SUBMODULE_CMAKE + string( + APPEND + SUBMODULE_CMAKE "add_library(${JSUBMODULE_PREFIX} STATIC)\n" "target_link_libraries(\${TOP_TARGET_NAME} PRIVATE ${JSUBMODULE_PREFIX})\n" ) if(JSUBMODULE_DEPS) - string(APPEND SUBMODULE_CMAKE "target_link_libraries(${JSUBMODULE_PREFIX} INTERFACE ${JSUBMODULE_DEPS})\n") + string( + APPEND + SUBMODULE_CMAKE + "target_link_libraries(${JSUBMODULE_PREFIX} INTERFACE ${JSUBMODULE_DEPS})\n" + ) endif() - string(APPEND SUBMODULE_VERILATE_ARGS "${JSUBMODULE_PREFIX} PREFIX ${JSUBMODULE_PREFIX} TOP_MODULE ${JSUBMODULE_TOP} DIRECTORY ${JSUBMODULE_DIRECTORY} SOURCES ${JSUBMODULE_SOURCES}") + string( + APPEND + SUBMODULE_VERILATE_ARGS + "${JSUBMODULE_PREFIX} PREFIX ${JSUBMODULE_PREFIX} TOP_MODULE ${JSUBMODULE_TOP} DIRECTORY ${JSUBMODULE_DIRECTORY} SOURCES ${JSUBMODULE_SOURCES}" + ) else() - string(APPEND SUBMODULE_CMAKE "# Verilate the top module that refers to lib-create wrappers of above\n") - string(APPEND SUBMODULE_VERILATE_ARGS "\${TOP_TARGET_NAME} PREFIX ${JSUBMODULE_PREFIX} TOP_MODULE ${JSUBMODULE_TOP} DIRECTORY ${JSUBMODULE_DIRECTORY} SOURCES ${JSUBMODULE_SOURCES}") + string( + APPEND + SUBMODULE_CMAKE + "# Verilate the top module that refers to lib-create wrappers of above\n" + ) + string( + APPEND + SUBMODULE_VERILATE_ARGS + "\${TOP_TARGET_NAME} PREFIX ${JSUBMODULE_PREFIX} TOP_MODULE ${JSUBMODULE_TOP} DIRECTORY ${JSUBMODULE_DIRECTORY} SOURCES ${JSUBMODULE_SOURCES}" + ) endif() if(JSUBMODILE_VERILATOR_ARGS) - string(APPEND SUBMODULE_VERILATE_ARGS " VERILATOR_ARGS -f ${JSUBMODILE_VERILATOR_ARGS}") + string( + APPEND + SUBMODULE_VERILATE_ARGS + " VERILATOR_ARGS -f ${JSUBMODILE_VERILATOR_ARGS}" + ) endif() if(JSUBMODULE_CFLAGS) - string(APPEND SUBMODULE_VERILATE_ARGS " -CFLAGS ${JSUBMODULE_CFLAGS}") + string( + APPEND + SUBMODULE_VERILATE_ARGS + " -CFLAGS ${JSUBMODULE_CFLAGS}" + ) endif() - file(APPEND ${VDIR}/${VERILATE_PREFIX}.cmake + file( + APPEND + ${VDIR}/${VERILATE_PREFIX}.cmake "${SUBMODULE_CMAKE}" "verilate(${SUBMODULE_VERILATE_ARGS})\n" )