Internals/CI: Format cmakefiles using mbake

This commit is contained in:
Wilson Snyder 2025-06-26 17:36:56 -04:00
parent 2c5e9a785a
commit 993f65f3b4
4 changed files with 50 additions and 14 deletions

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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"
)