From 66d347cdc437b51849ffb4ace15d6ddda5f7bcae Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Tue, 1 Sep 2026 17:02:04 -0700 Subject: [PATCH 1/3] remove 'format' build system target Generic named targets like this do not compose well with outer build systems. --- CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 446d29cd..1d953c8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,8 +155,3 @@ if(NOT CMAKE_CROSSCOMPILING) add_dependencies(check murphi-comment-ls) add_dependencies(check union-array-width) endif() - -add_custom_target(format - COMMAND git ls-files -z '**/*.c' '**/*.cc' '**/*.h' | - xargs -0 -- clang-format -i --style=file - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) From f7a05bff787a12498a45999735edb2ec55f5228c Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Tue, 1 Sep 2026 17:02:04 -0700 Subject: [PATCH 2/3] CI: add CMake linting While addressing the issues the linter complains about, this also adds `murphi2smv` to the test dependencies. It seems we have no tests of this but for consistency it seems wise to make it available to the tester. Note that this required breaking up the `$PATH` manipulation for the test target. CMake appears to have no way to continue non-string text across multiple lines. The result is probably a net improvement anyway though. --- .github/workflows/ci.yml | 18 +++++++++++++++++ CMakeLists.txt | 32 +++++++++++++++++++++++------ librumur/CMakeLists.txt | 20 +++++++++++++----- murphi-format/CMakeLists.txt | 18 ++++++++++++----- murphi2c/CMakeLists.txt | 32 ++++++++++++++++++++--------- murphi2murphi/CMakeLists.txt | 18 ++++++++++++----- murphi2smv/CMakeLists.txt | 11 ++++++++-- murphi2uclid/CMakeLists.txt | 18 ++++++++++++----- murphi2xml/CMakeLists.txt | 15 ++++++++++---- rumur/CMakeLists.txt | 39 ++++++++++++++++++++++++++---------- 10 files changed, 169 insertions(+), 52 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3dc32c8..b46b7a42 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -571,6 +571,24 @@ jobs: cd wd && git ls-files -z -- '**/*.c' '**/*.cc' '**/*.h' | xargs -0 -- clang-format-22 --dry-run --style=file --Werror -- + cmake_analysis: + name: CMake analysis + runs-on: ubuntu-26.04 + steps: + - run: uname -rms + - run: python3 --version + - run: python3 -m pip install --user cmakelang + - run: echo "cloning ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" + - run: git clone --no-checkout -- ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} wd + - run: > + cd wd && + git fetch -- origin ${{ github.event.pull_request.head.sha }} && + git checkout FETCH_HEAD + - run: > + cd wd && + git ls-files -z -- ':(glob)**/CMakeLists.txt' ':(glob)**/*.cmake' | + xargs -0 -- python3 -m cmakelang.lint + python_analysis: name: Python analysis runs-on: ubuntu-26.04 diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d953c8b..016f9198 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,30 +126,50 @@ endif() # comment for OpenBSD maintainers grepping packages: # Rumur uses pledge() on OpenBSD +set(TEST_PATH "$ENV{PATH}") add_subdirectory(librumur) +set(TEST_INC "${CMAKE_CURRENT_SOURCE_DIR}/librumur/include") +set(TEST_INC "${TEST_INC}:${CMAKE_CURRENT_BINARY_DIR}/librumur") add_subdirectory(murphi-format) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/murphi-format:${TEST_PATH}") add_subdirectory(murphi2c) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/murphi2c:${TEST_PATH}") add_subdirectory(murphi2murphi) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/murphi2murphi:${TEST_PATH}") add_subdirectory(murphi2smv) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/murphi2smv:${TEST_PATH}") add_subdirectory(murphi2uclid) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/murphi2uclid:${TEST_PATH}") add_subdirectory(murphi2xml) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/murphi2xml:${TEST_PATH}") add_subdirectory(rumur) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/rumur:${TEST_PATH}") add_subdirectory(share) add_subdirectory(tests/element-is-pure) +set(TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/tests/element-is-pure:${TEST_PATH}") add_subdirectory(tests/murphi-comment-ls) +set( + TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/tests/murphi-comment-ls:${TEST_PATH}" +) add_subdirectory(tests/union-array-width) +set( + TEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/tests/union-array-width:${TEST_PATH}" +) add_custom_target(check COMMAND env - PATH=${CMAKE_CURRENT_BINARY_DIR}/rumur:${CMAKE_CURRENT_BINARY_DIR}/murphi-format:${CMAKE_CURRENT_BINARY_DIR}/murphi2c:${CMAKE_CURRENT_BINARY_DIR}/murphi2murphi:${CMAKE_CURRENT_BINARY_DIR}/murphi2uclid:${CMAKE_CURRENT_BINARY_DIR}/murphi2xml:${CMAKE_CURRENT_BINARY_DIR}/tests/element-is-pure:${CMAKE_CURRENT_BINARY_DIR}/tests/murphi-comment-ls:${CMAKE_CURRENT_BINARY_DIR}/tests/union-array-width:$ENV{PATH} - CPLUS_INCLUDE_PATH=${CMAKE_CURRENT_SOURCE_DIR}/librumur/include:${CMAKE_CURRENT_BINARY_DIR}/librumur - LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}/librumur - LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}/librumur - python3 -m pytest --capture=no --override-ini=cache_dir=${CMAKE_CURRENT_BINARY_DIR} --verbose --verbose ${CMAKE_CURRENT_SOURCE_DIR}/tests/tests.py + "PATH=${TEST_PATH}" + "CPLUS_INCLUDE_PATH=${TEST_INC}" + "LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}/librumur" + "LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}/librumur" + python3 -m pytest --capture=no + --override-ini=cache_dir=${CMAKE_CURRENT_BINARY_DIR} --verbose --verbose + ${CMAKE_CURRENT_SOURCE_DIR}/tests/tests.py + COMMENT "Running test suite" USES_TERMINAL ) add_dependencies(check - murphi-format murphi2c murphi2murphi murphi2uclid murphi2xml rumur + murphi-format murphi2c murphi2murphi murphi2smv murphi2uclid murphi2xml rumur ) if(NOT CMAKE_CROSSCOMPILING) add_dependencies(check murphi-comment-ls) diff --git a/librumur/CMakeLists.txt b/librumur/CMakeLists.txt index a07d3041..2454be3c 100644 --- a/librumur/CMakeLists.txt +++ b/librumur/CMakeLists.txt @@ -45,17 +45,23 @@ include(CheckCXXCompilerFlag) set_source_files_properties(lexer.l.cc PROPERTIES COMPILE_FLAGS "") CHECK_CXX_COMPILER_FLAG(-Wsign-compare HAS_WARNING_SIGN_COMPARE) if(HAS_WARNING_SIGN_COMPARE) - set_source_files_properties(lexer.l.cc PROPERTIES COMPILE_FLAGS "${LEXER_COMPILE_FLAGS} -Wno-sign-compare") + set_source_files_properties(lexer.l.cc + PROPERTIES COMPILE_FLAGS "${LEXER_COMPILE_FLAGS} -Wno-sign-compare" + ) endif() get_source_file_property(LEXER_COMPILE_FLAGS lexer.l.cc COMPILE_FLAGS) CHECK_CXX_COMPILER_FLAG(-Wregister HAS_WARNING_REGISTER) if(HAS_WARNING_REGISTER) - set_source_files_properties(lexer.l.cc PROPERTIES COMPILE_FLAGS "${LEXER_COMPILE_FLAGS} -Wno-register") + set_source_files_properties(lexer.l.cc + PROPERTIES COMPILE_FLAGS "${LEXER_COMPILE_FLAGS} -Wno-register" + ) endif() get_source_file_property(LEXER_COMPILE_FLAGS lexer.l.cc COMPILE_FLAGS) CHECK_CXX_COMPILER_FLAG(-Wdeprecated-register HAS_WARNING_DEPRECATED_REGISTER) if(HAS_WARNING_DEPRECATED_REGISTER) - set_source_files_properties(lexer.l.cc PROPERTIES COMPILE_FLAGS "${LEXER_COMPILE_FLAGS} -Wno-deprecated-register") + set_source_files_properties(lexer.l.cc + PROPERTIES COMPILE_FLAGS "${LEXER_COMPILE_FLAGS} -Wno-deprecated-register" + ) endif() add_custom_command( @@ -63,12 +69,16 @@ add_custom_command( COMMAND src/make-version.py ${CMAKE_CURRENT_BINARY_DIR}/version.c MAIN_DEPENDENCY src/make-version.py DEPENDS always_run - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating version.c" +) # Dummy output to make sure we always re-evaluate the version step above. add_custom_command( OUTPUT always_run - COMMAND /usr/bin/env true) + COMMAND /usr/bin/env true + COMMENT "Triggering version.c regeneration" +) add_library(librumur ${CMAKE_CURRENT_BINARY_DIR}/version.c diff --git a/murphi-format/CMakeLists.txt b/murphi-format/CMakeLists.txt index 850d1a9a..ea4da685 100644 --- a/murphi-format/CMakeLists.txt +++ b/murphi-format/CMakeLists.txt @@ -1,9 +1,12 @@ add_custom_command( OUTPUT resources_manpage.c - COMMAND ../misc/xxd.py doc/murphi-format.1 ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.c + COMMAND ../misc/xxd.py doc/murphi-format.1 + ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.c MAIN_DEPENDENCY doc/murphi-format.1 DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_manpage.c" +) add_executable(murphi-format ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.c @@ -20,12 +23,17 @@ target_link_libraries(murphi-format PRIVATE librumur) add_custom_target(man-murphi-format ALL - DEPENDS murphi-format.1.gz) + DEPENDS murphi-format.1.gz + COMMENT "murphi-format man page" +) add_custom_command( OUTPUT murphi-format.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/murphi-format.1 >"${CMAKE_CURRENT_BINARY_DIR}/murphi-format.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/murphi-format.1 + >"${CMAKE_CURRENT_BINARY_DIR}/murphi-format.1.gz" MAIN_DEPENDENCY doc/murphi-format.1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing murphi-format.1" +) install(TARGETS murphi-format RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/murphi2c/CMakeLists.txt b/murphi2c/CMakeLists.txt index 50df01dc..7f56924b 100644 --- a/murphi2c/CMakeLists.txt +++ b/murphi2c/CMakeLists.txt @@ -1,22 +1,31 @@ # Define resources. add_custom_command( OUTPUT resources_manpage.cc - COMMAND ../misc/xxd.py doc/murphi2c.1 ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.cc + COMMAND ../misc/xxd.py doc/murphi2c.1 + ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.cc MAIN_DEPENDENCY doc/murphi2c.1 DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_manpage.cc" +) add_custom_command( OUTPUT resources_c_prefix.cc - COMMAND ../misc/xxd.py resources/c_prefix.c ${CMAKE_CURRENT_BINARY_DIR}/resources_c_prefix.cc + COMMAND ../misc/xxd.py resources/c_prefix.c + ${CMAKE_CURRENT_BINARY_DIR}/resources_c_prefix.cc MAIN_DEPENDENCY resources/c_prefix.c DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_c_prefix.cc" +) add_custom_command( OUTPUT resources_h_prefix.cc - COMMAND ../misc/xxd.py resources/h_prefix.h ${CMAKE_CURRENT_BINARY_DIR}/resources_h_prefix.cc + COMMAND ../misc/xxd.py resources/h_prefix.h + ${CMAKE_CURRENT_BINARY_DIR}/resources_h_prefix.cc MAIN_DEPENDENCY resources/h_prefix.h DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_h_prefix.cc" +) add_executable(murphi2c ${CMAKE_CURRENT_BINARY_DIR}/resources_c_prefix.cc @@ -45,12 +54,17 @@ target_link_libraries(murphi2c # Compress manpage add_custom_target(man-murphi2c ALL - DEPENDS murphi2c.1.gz) + DEPENDS murphi2c.1.gz + COMMENT "murphi2c man page" +) add_custom_command( OUTPUT murphi2c.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/murphi2c.1 >"${CMAKE_CURRENT_BINARY_DIR}/murphi2c.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/murphi2c.1 + >"${CMAKE_CURRENT_BINARY_DIR}/murphi2c.1.gz" MAIN_DEPENDENCY doc/murphi2c.1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing murphi2c.1" +) install(TARGETS murphi2c RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/murphi2murphi/CMakeLists.txt b/murphi2murphi/CMakeLists.txt index d4fa1e70..4b522119 100644 --- a/murphi2murphi/CMakeLists.txt +++ b/murphi2murphi/CMakeLists.txt @@ -1,10 +1,13 @@ # Define resources. add_custom_command( OUTPUT resources_manpage.cc - COMMAND ../misc/xxd.py doc/murphi2murphi.1 ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.cc + COMMAND ../misc/xxd.py doc/murphi2murphi.1 + ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.cc MAIN_DEPENDENCY doc/murphi2murphi.1 DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_manpage.cc" +) add_executable(murphi2murphi ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.cc @@ -32,12 +35,17 @@ target_link_libraries(murphi2murphi # Compress manpage add_custom_target(man-murphi2murphi ALL - DEPENDS murphi2murphi.1.gz) + DEPENDS murphi2murphi.1.gz + COMMENT "murphi2murphi man page" +) add_custom_command( OUTPUT murphi2murphi.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/murphi2murphi.1 >"${CMAKE_CURRENT_BINARY_DIR}/murphi2murphi.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/murphi2murphi.1 + >"${CMAKE_CURRENT_BINARY_DIR}/murphi2murphi.1.gz" MAIN_DEPENDENCY doc/murphi2murphi.1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing murphi2murphi.1" +) install(TARGETS murphi2murphi RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/murphi2smv/CMakeLists.txt b/murphi2smv/CMakeLists.txt index 2174917f..27180995 100644 --- a/murphi2smv/CMakeLists.txt +++ b/murphi2smv/CMakeLists.txt @@ -4,6 +4,7 @@ add_custom_command( MAIN_DEPENDENCY doc/murphi2smv.1 DEPENDS ../misc/xxd.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating manpage.cc" ) add_executable(murphi2smv @@ -21,12 +22,18 @@ target_include_directories(murphi2smv PRIVATE target_link_libraries(murphi2smv PRIVATE librumur) -add_custom_target(man-murphi2smv ALL DEPENDS murphi2smv.1.gz) +add_custom_target(man-murphi2smv + ALL + DEPENDS murphi2smv.1.gz + COMMENT "murphi2smv man page" +) add_custom_command( OUTPUT murphi2smv.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/murphi2smv.1 >"${CMAKE_CURRENT_BINARY_DIR}/murphi2smv.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/murphi2smv.1 + >"${CMAKE_CURRENT_BINARY_DIR}/murphi2smv.1.gz" MAIN_DEPENDENCY doc/murphi2smv.1 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing murphi2smv.1" ) install(TARGETS murphi2smv diff --git a/murphi2uclid/CMakeLists.txt b/murphi2uclid/CMakeLists.txt index 3567e8dc..abce9c2b 100644 --- a/murphi2uclid/CMakeLists.txt +++ b/murphi2uclid/CMakeLists.txt @@ -1,9 +1,12 @@ add_custom_command( OUTPUT manpage.cc - COMMAND ../misc/xxd.py doc/murphi2uclid.1 ${CMAKE_CURRENT_BINARY_DIR}/manpage.cc + COMMAND ../misc/xxd.py doc/murphi2uclid.1 + ${CMAKE_CURRENT_BINARY_DIR}/manpage.cc MAIN_DEPENDENCY doc/murphi2uclid.1 DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating manpage.cc" +) add_executable(murphi2uclid ${CMAKE_CURRENT_BINARY_DIR}/manpage.cc @@ -24,12 +27,17 @@ target_link_libraries(murphi2uclid add_custom_target(man-murphi2uclid ALL - DEPENDS murphi2uclid.1.gz) + DEPENDS murphi2uclid.1.gz + COMMENT "murphi2uclid man page" +) add_custom_command( OUTPUT murphi2uclid.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/murphi2uclid.1 >"${CMAKE_CURRENT_BINARY_DIR}/murphi2uclid.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/murphi2uclid.1 + >"${CMAKE_CURRENT_BINARY_DIR}/murphi2uclid.1.gz" MAIN_DEPENDENCY doc/murphi2uclid.1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing murphi2uclid.1" +) install(TARGETS murphi2uclid RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/murphi2xml/CMakeLists.txt b/murphi2xml/CMakeLists.txt index 4dd65c08..fb0d73af 100644 --- a/murphi2xml/CMakeLists.txt +++ b/murphi2xml/CMakeLists.txt @@ -3,7 +3,9 @@ add_custom_command( COMMAND ../misc/xxd.py doc/murphi2xml.1 ${CMAKE_CURRENT_BINARY_DIR}/manpage.cc MAIN_DEPENDENCY doc/murphi2xml.1 DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating manpage.cc" +) add_executable(murphi2xml ${CMAKE_CURRENT_BINARY_DIR}/manpage.cc @@ -23,12 +25,17 @@ target_link_libraries(murphi2xml # Compress manpages add_custom_target(man-murphi2xml ALL - DEPENDS murphi2xml.1.gz) + DEPENDS murphi2xml.1.gz + COMMENT "murphi2xml man page" +) add_custom_command( OUTPUT murphi2xml.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/murphi2xml.1 >"${CMAKE_CURRENT_BINARY_DIR}/murphi2xml.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/murphi2xml.1 + >"${CMAKE_CURRENT_BINARY_DIR}/murphi2xml.1.gz" MAIN_DEPENDENCY doc/murphi2xml.1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing murphi2xml.1" +) install(TARGETS murphi2xml RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/rumur/CMakeLists.txt b/rumur/CMakeLists.txt index 4b859c5b..2dcb65a3 100644 --- a/rumur/CMakeLists.txt +++ b/rumur/CMakeLists.txt @@ -1,22 +1,31 @@ # Define resources. add_custom_command( OUTPUT resources_manpage.cc - COMMAND ../misc/xxd.py doc/rumur.1 ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.cc + COMMAND ../misc/xxd.py doc/rumur.1 + ${CMAKE_CURRENT_BINARY_DIR}/resources_manpage.cc MAIN_DEPENDENCY doc/rumur.1 DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_manpage.cc" +) add_custom_command( OUTPUT resources_includes.cc - COMMAND ../misc/xxd.py resources/includes.c ${CMAKE_CURRENT_BINARY_DIR}/resources_includes.cc + COMMAND ../misc/xxd.py resources/includes.c + ${CMAKE_CURRENT_BINARY_DIR}/resources_includes.cc MAIN_DEPENDENCY resources/includes.c DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_includes.cc" +) add_custom_command( OUTPUT resources_header.cc - COMMAND ../misc/xxd.py resources/header.c ${CMAKE_CURRENT_BINARY_DIR}/resources_header.cc + COMMAND ../misc/xxd.py resources/header.c + ${CMAKE_CURRENT_BINARY_DIR}/resources_header.cc MAIN_DEPENDENCY resources/header.c DEPENDS ../misc/xxd.py - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating resources_header.cc" +) add_executable(rumur ${CMAKE_CURRENT_BINARY_DIR}/resources_includes.cc @@ -71,17 +80,25 @@ target_link_libraries(rumur # Compress manpages add_custom_target(man-rumur ALL - DEPENDS rumur.1.gz rumur-run.1.gz) + DEPENDS rumur.1.gz rumur-run.1.gz + COMMENT "rumur man pages" +) add_custom_command( OUTPUT rumur.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/rumur.1 >"${CMAKE_CURRENT_BINARY_DIR}/rumur.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/rumur.1 + >"${CMAKE_CURRENT_BINARY_DIR}/rumur.1.gz" MAIN_DEPENDENCY doc/rumur.1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing rumur.1" +) add_custom_command( OUTPUT rumur-run.1.gz - COMMAND gzip -9 --no-name --to-stdout doc/rumur-run.1 >"${CMAKE_CURRENT_BINARY_DIR}/rumur-run.1.gz" + COMMAND gzip -9 --no-name --to-stdout doc/rumur-run.1 + >"${CMAKE_CURRENT_BINARY_DIR}/rumur-run.1.gz" MAIN_DEPENDENCY doc/rumur-run.1 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "GZIP-compressing rumur-run.1" +) install(TARGETS rumur RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) From b20036b8e4727c10bc4b93c69ac26f8c365d990e Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Tue, 1 Sep 2026 17:02:04 -0700 Subject: [PATCH 3/3] =?UTF-8?q?fix=20missing=20element-is-pure=20=E2=86=92?= =?UTF-8?q?=20check=20dependency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This should have gone into 5b04874b404c10ed64b8bd031f4c1c76a1719196. --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 016f9198..c43c010e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,6 +172,7 @@ add_dependencies(check murphi-format murphi2c murphi2murphi murphi2smv murphi2uclid murphi2xml rumur ) if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(check element-is-pure) add_dependencies(check murphi-comment-ls) add_dependencies(check union-array-width) endif()