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 446d29cd..c43c010e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,37 +126,53 @@ 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 element-is-pure) 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}) 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})