From 7bd8d763e103b093f5cd1088e807d080073d1b1b Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Sat, 17 Jan 2026 17:30:50 +0100 Subject: [PATCH 1/6] Use PANDOC_EXECUTABLE variable set by find_program --- CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 98213013..b33bea1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -655,7 +655,7 @@ set(PANDOC_OPTS --toc --toc-depth=2 add_custom_command( OUTPUT ${OUTPUT_HTML_DE} - COMMAND pandoc ${PANDOC_OPTS} + COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_OPTS} --metadata-file=Documentation/de/metadata.yaml --output=${OUTPUT_HTML_DE} ${DOC_DE} DEPENDS ${DOC_DE} @@ -666,7 +666,7 @@ add_custom_command( add_custom_command( OUTPUT ${OUTPUT_HTML_EN} - COMMAND pandoc ${PANDOC_OPTS} + COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_OPTS} --metadata-file=Documentation/en/metadata.yaml --output=${OUTPUT_HTML_EN} ${DOC_EN} DEPENDS ${DOC_EN} @@ -677,7 +677,7 @@ add_custom_command( add_custom_command( OUTPUT ${OUTPUT_HTML_ES} - COMMAND pandoc ${PANDOC_OPTS} + COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_OPTS} --metadata-file=Documentation/es/metadata.yaml --output=${OUTPUT_HTML_ES} ${DOC_ES} DEPENDS ${DOC_ES} @@ -753,7 +753,7 @@ set(PANDOC_CHUNKEDOPTS --toc --toc-depth=2 --split-level=1) add_custom_command( OUTPUT ${OUTPUT_CHUNKEDHTML_DE}/index.html - COMMAND pandoc ${PANDOC_CHUNKEDOPTS} + COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_CHUNKEDOPTS} --resource-path=".:Documentation:Documentation/de:doc:doc/de" --metadata-file=Documentation/de/metadata.yaml --output=${OUTPUT_CHUNKEDHTML_DE} ${DOC_DE} @@ -765,7 +765,7 @@ add_custom_command( add_custom_command( OUTPUT ${OUTPUT_CHUNKEDHTML_EN}/index.html - COMMAND pandoc ${PANDOC_CHUNKEDOPTS} + COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_CHUNKEDOPTS} --resource-path=".:Documentation:Documentation/en:doc:doc/en" --metadata-file=Documentation/en/metadata.yaml --output=${OUTPUT_CHUNKEDHTML_EN} ${DOC_EN} @@ -777,7 +777,7 @@ add_custom_command( add_custom_command( OUTPUT ${OUTPUT_CHUNKEDHTML_ES}/index.html - COMMAND pandoc ${PANDOC_CHUNKEDOPTS} + COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_CHUNKEDOPTS} --resource-path="doc/en:Documentation/en:.:Documentation:Documentation/es:doc:doc/es" --metadata-file=Documentation/es/metadata.yaml --output=${OUTPUT_CHUNKEDHTML_ES} ${DOC_ES} From b10e3b5f2b760e2cdc595d8edc06a56959e934ce Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Sat, 17 Jan 2026 17:32:54 +0100 Subject: [PATCH 2/6] Add variables for documentation file locations This makes it clearer how items are related. --- CMakeLists.txt | 73 ++++++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b33bea1a..10c62b20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -435,6 +435,7 @@ set(DOC_DE Documentation/de/config-counter.md Documentation/de/automatic.md ) + set(DOCDATA_DE ${PROJECT_SOURCE_DIR}/Documentation/de/config_layers_de.png ${PROJECT_SOURCE_DIR}/Documentation/de/control_list_de.png @@ -640,13 +641,17 @@ set(DOCDATA ${PROJECT_SOURCE_DIR}/Documentation/style.css ) -set(OUTPUT_HTML_DE ${CMAKE_BINARY_DIR}/doc/de/index.html) -set(OUTPUT_HTML_EN ${CMAKE_BINARY_DIR}/doc/en/index.html) -set(OUTPUT_HTML_ES ${CMAKE_BINARY_DIR}/doc/es/index.html) +set(OUTPUT_HTML ${CMAKE_BINARY_DIR}/doc) +set(OUTPUT_HTML_DE ${OUTPUT_HTML}/de) +set(OUTPUT_HTML_DE_INDEX ${OUTPUT_HTML_DE}/index.html) +set(OUTPUT_HTML_EN ${OUTPUT_HTML}/en) +set(OUTPUT_HTML_EN_INDEX ${OUTPUT_HTML_EN}/index.html) +set(OUTPUT_HTML_ES ${OUTPUT_HTML}/es) +set(OUTPUT_HTML_ES_INDEX ${OUTPUT_HTML_ES}/index.html) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/doc/de) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/doc/en) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/doc/es) +file(MAKE_DIRECTORY ${OUTPUT_HTML_DE}) +file(MAKE_DIRECTORY ${OUTPUT_HTML_EN}) +file(MAKE_DIRECTORY ${OUTPUT_HTML_ES}) set(PANDOC_OPTS --toc --toc-depth=2 --standalone @@ -654,47 +659,47 @@ set(PANDOC_OPTS --toc --toc-depth=2 --template=Documentation/template.html) add_custom_command( - OUTPUT ${OUTPUT_HTML_DE} + OUTPUT ${OUTPUT_HTML_DE_INDEX} COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_OPTS} --metadata-file=Documentation/de/metadata.yaml - --output=${OUTPUT_HTML_DE} ${DOC_DE} - DEPENDS ${DOC_DE} + --output=${OUTPUT_HTML_DE_INDEX} ${DOC_DE} + DEPENDS ${DOC_DE} ${OUTPUT_HTML_DE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Generating German HTML documentation" VERBATIM ) add_custom_command( - OUTPUT ${OUTPUT_HTML_EN} + OUTPUT ${OUTPUT_HTML_EN_INDEX} COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_OPTS} --metadata-file=Documentation/en/metadata.yaml - --output=${OUTPUT_HTML_EN} ${DOC_EN} - DEPENDS ${DOC_EN} + --output=${OUTPUT_HTML_EN_INDEX} ${DOC_EN} + DEPENDS ${DOC_EN} ${OUTPUT_HTML_EN} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Generating English HTML documentation" VERBATIM ) add_custom_command( - OUTPUT ${OUTPUT_HTML_ES} + OUTPUT ${OUTPUT_HTML_ES_INDEX} COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_OPTS} --metadata-file=Documentation/es/metadata.yaml - --output=${OUTPUT_HTML_ES} ${DOC_ES} - DEPENDS ${DOC_ES} + --output=${OUTPUT_HTML_ES_INDEX} ${DOC_ES} + DEPENDS ${DOC_ES} ${OUTPUT_HTML_ES} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Generating Spanish HTML documentation" VERBATIM ) add_custom_target(doc - DEPENDS ${OUTPUT_HTML_DE} ${OUTPUT_HTML_EN} ${OUTPUT_HTML_ES} + DEPENDS ${OUTPUT_HTML_DE_INDEX} ${OUTPUT_HTML_EN_INDEX} ${OUTPUT_HTML_ES_INDEX} ) foreach(DOCDATA ${DOCDATA}) add_custom_command(TARGET doc POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${DOCDATA} - ${PROJECT_BINARY_DIR}/doc + ${OUTPUT_HTML} ) endforeach() @@ -702,7 +707,7 @@ foreach(DOCDATA_DE ${DOCDATA_DE}) add_custom_command(TARGET doc POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${DOCDATA_DE} - ${PROJECT_BINARY_DIR}/doc/de + ${OUTPUT_HTML_DE} ) endforeach() @@ -710,7 +715,7 @@ foreach(DOCDATA_EN ${DOCDATA_EN}) add_custom_command(TARGET doc POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${DOCDATA_EN} - ${PROJECT_BINARY_DIR}/doc/en + ${OUTPUT_HTML_EN} ) endforeach() @@ -718,7 +723,7 @@ foreach(DOCDATA_ES ${DOCDATA_ES}) add_custom_command(TARGET doc POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${DOCDATA_ES} - ${PROJECT_BINARY_DIR}/doc/es + ${OUTPUT_HTML_ES} ) endforeach() @@ -739,10 +744,14 @@ add_custom_command(TARGET doc-for-web POST_BUILD ) # Build documentation as small HTML files ("chunked html") -set(OUTPUT_CHUNKEDHTML_DE ${CMAKE_BINARY_DIR}/chunkedhtml/de) -set(OUTPUT_CHUNKEDHTML_EN ${CMAKE_BINARY_DIR}/chunkedhtml/en) -set(OUTPUT_CHUNKEDHTML_ES ${CMAKE_BINARY_DIR}/chunkedhtml/es) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/chunkedhtml) +set(OUTPUT_CHUNKEDHTML ${CMAKE_BINARY_DIR}/chunkedhtml) +set(OUTPUT_CHUNKEDHTML_DE ${OUTPUT_CHUNKEDHTML}/de) +set(OUTPUT_CHUNKEDHTML_DE_INDEX ${OUTPUT_CHUNKEDHTML_DE}/index.html) +set(OUTPUT_CHUNKEDHTML_EN ${OUTPUT_CHUNKEDHTML}/en) +set(OUTPUT_CHUNKEDHTML_EN_INDEX ${OUTPUT_CHUNKEDHTML_EN}/index.html) +set(OUTPUT_CHUNKEDHTML_ES ${OUTPUT_CHUNKEDHTML}/es) +set(OUTPUT_CHUNKEDHTML_ES_INDEX ${OUTPUT_CHUNKEDHTML_ES}/index.html) +file(MAKE_DIRECTORY ${OUTPUT_CHUNKEDHTML}) set(PANDOC_CHUNKEDOPTS --toc --toc-depth=2 --standalone @@ -752,11 +761,11 @@ set(PANDOC_CHUNKEDOPTS --toc --toc-depth=2 --embed-resources --split-level=1) add_custom_command( - OUTPUT ${OUTPUT_CHUNKEDHTML_DE}/index.html + OUTPUT ${OUTPUT_CHUNKEDHTML_DE_INDEX} COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_CHUNKEDOPTS} --resource-path=".:Documentation:Documentation/de:doc:doc/de" --metadata-file=Documentation/de/metadata.yaml - --output=${OUTPUT_CHUNKEDHTML_DE} ${DOC_DE} + --output=${OUTPUT_CHUNKEDHTML_DE_INDEX} ${DOC_DE} DEPENDS ${DOC_DE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Generating German Chunked HTML documentation" @@ -764,11 +773,11 @@ add_custom_command( ) add_custom_command( - OUTPUT ${OUTPUT_CHUNKEDHTML_EN}/index.html + OUTPUT ${OUTPUT_CHUNKEDHTML_EN_INDEX} COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_CHUNKEDOPTS} --resource-path=".:Documentation:Documentation/en:doc:doc/en" --metadata-file=Documentation/en/metadata.yaml - --output=${OUTPUT_CHUNKEDHTML_EN} ${DOC_EN} + --output=${OUTPUT_CHUNKEDHTML_EN_INDEX} ${DOC_EN} DEPENDS ${DOC_EN} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Generating English Chunked HTML documentation" @@ -776,11 +785,11 @@ add_custom_command( ) add_custom_command( - OUTPUT ${OUTPUT_CHUNKEDHTML_ES}/index.html + OUTPUT ${OUTPUT_CHUNKEDHTML_ES_INDEX} COMMAND ${PANDOC_EXECUTABLE} ${PANDOC_CHUNKEDOPTS} --resource-path="doc/en:Documentation/en:.:Documentation:Documentation/es:doc:doc/es" --metadata-file=Documentation/es/metadata.yaml - --output=${OUTPUT_CHUNKEDHTML_ES} ${DOC_ES} + --output=${OUTPUT_CHUNKEDHTML_ES_INDEX} ${DOC_ES} DEPENDS ${DOC_ES} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Generating Spanish Chunked HTML documentation" @@ -788,14 +797,14 @@ add_custom_command( ) add_custom_target(chunked-doc - DEPENDS ${OUTPUT_CHUNKEDHTML_DE}/index.html ${OUTPUT_CHUNKEDHTML_EN}/index.html ${OUTPUT_CHUNKEDHTML_ES}/index.html + DEPENDS ${OUTPUT_CHUNKEDHTML_DE_INDEX} ${OUTPUT_CHUNKEDHTML_EN_INDEX} ${OUTPUT_CHUNKEDHTML_ES_INDEX} ) foreach(DOCDATA ${DOCDATA}) add_custom_command(TARGET chunked-doc POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${DOCDATA} - ${PROJECT_BINARY_DIR}/chunkedhtml + ${OUTPUT_CHUNKEDHTML} ) endforeach() From a5cf00a418349dc8cb879654f36278920e4576a0 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Fri, 6 Feb 2026 17:59:43 +0100 Subject: [PATCH 3/6] Install doc files using file() Instead of using a custom command, this uses the built in functionality. --- CMakeLists.txt | 35 ++++------------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 10c62b20..3b0c8a58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -695,37 +695,10 @@ add_custom_target(doc DEPENDS ${OUTPUT_HTML_DE_INDEX} ${OUTPUT_HTML_EN_INDEX} ${OUTPUT_HTML_ES_INDEX} ) -foreach(DOCDATA ${DOCDATA}) - add_custom_command(TARGET doc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${DOCDATA} - ${OUTPUT_HTML} - ) -endforeach() - -foreach(DOCDATA_DE ${DOCDATA_DE}) - add_custom_command(TARGET doc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${DOCDATA_DE} - ${OUTPUT_HTML_DE} - ) -endforeach() - -foreach(DOCDATA_EN ${DOCDATA_EN}) - add_custom_command(TARGET doc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${DOCDATA_EN} - ${OUTPUT_HTML_EN} - ) -endforeach() - -foreach(DOCDATA_ES ${DOCDATA_ES}) - add_custom_command(TARGET doc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${DOCDATA_ES} - ${OUTPUT_HTML_ES} - ) -endforeach() +file(COPY ${DOCDATA} DESTINATION ${OUTPUT_HTML}) +file(COPY ${DOCDATA_DE} DESTINATION ${OUTPUT_HTML_DE}) +file(COPY ${DOCDATA_EN} DESTINATION ${OUTPUT_HTML_EN}) +file(COPY ${DOCDATA_ES} DESTINATION ${OUTPUT_HTML_ES}) add_custom_target(doc-for-web DEPENDS doc From fc1135a5e6cd53b0e184ab3cb448d7650ed26b65 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Fri, 6 Feb 2026 18:00:17 +0100 Subject: [PATCH 4/6] Collect DOCDATA* via globbing It's up for debate whether this is better or worse. It is fewer lines of code, but it's also easy to miss when a file is added/removed. It doesn't do the same for DOC_{DE,EN,ES} because I'm unsure if it affects the resulting build. --- CMakeLists.txt | 142 ++----------------------------------------------- 1 file changed, 4 insertions(+), 138 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b0c8a58..88709a7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -435,46 +435,7 @@ set(DOC_DE Documentation/de/config-counter.md Documentation/de/automatic.md ) - -set(DOCDATA_DE - ${PROJECT_SOURCE_DIR}/Documentation/de/config_layers_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/control_list_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/counter_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/counter_position_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/cs2_config_can_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/cs2_config_ip_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/cs2_tcp_config_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/cs2_udp_config_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/feedback_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/feedback_position_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/groups_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/groups_tracks_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/locomotives_automode_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/locomotives_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/locomotives_functions_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/multipleunits_automode_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/multipleunits_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/multipleunits_functions_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/multipleunits_multipleunits_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/routes_atlock_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/routes_atunlock_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/routes_automode_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/routes_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/routes_position_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/settings_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/signals_addresses_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/signals_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/signals_position_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/switches_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/switches_position_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/texts_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/texts_position_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/tracks_automode_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/tracks_basics_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/tracks_feedbacks_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/track_signals_de.png - ${PROJECT_SOURCE_DIR}/Documentation/de/tracks_position_de.png -) +file(GLOB DOCDATA_DE Documentation/de/*.png) set(DOC_EN Documentation/en/index.md @@ -508,43 +469,7 @@ set(DOC_EN Documentation/en/config-counter.md Documentation/en/automatic.md ) -set(DOCDATA_EN - ${PROJECT_SOURCE_DIR}/Documentation/en/config_layers_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/control_list_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/counter_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/counter_position_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/cs2_tcp_config_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/cs2_udp_config_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/feedback_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/feedback_position_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/groups_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/groups_tracks_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/locomotives_automode_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/locomotives_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/locomotives_functions_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/multipleunits_automode_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/multipleunits_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/multipleunits_functions_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/multipleunits_multipleunits_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/routes_atlock_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/routes_atunlock_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/routes_automode_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/routes_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/routes_position_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/settings_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/signals_addresses_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/signals_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/signals_position_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/switches_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/switches_position_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/texts_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/texts_position_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/tracks_automode_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/tracks_basics_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/tracks_feedbacks_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/track_signals_en.png - ${PROJECT_SOURCE_DIR}/Documentation/en/tracks_position_en.png -) +file(GLOB DOCDATA_EN Documentation/en/*.png) set(DOC_ES Documentation/es/index.md @@ -578,68 +503,9 @@ set(DOC_ES Documentation/es/config-counter.md Documentation/es/automatic.md ) -set(DOCDATA_ES - ${PROJECT_SOURCE_DIR}/Documentation/es/config_layers_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/control_list_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/cs2_tcp_config_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/cs2_udp_config_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/feedback_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/feedback_position_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/groups_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/groups_tracks_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/locomotives_automode_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/locomotives_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/locomotives_functions_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/multipleunits_automode_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/multipleunits_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/multipleunits_functions_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/multipleunits_multipleunits_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/routes_atlock_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/routes_atunlock_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/routes_automode_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/routes_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/routes_position_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/settings_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/signals_addresses_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/signals_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/signals_position_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/switches_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/switches_position_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/texts_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/texts_position_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/tracks_automode_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/tracks_basics_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/tracks_feedbacks_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/track_signals_es.png - ${PROJECT_SOURCE_DIR}/Documentation/es/tracks_position_es.png -) +file(GLOB DOCDATA_ES Documentation/es/*.png) -set(DOCDATA - ${PROJECT_SOURCE_DIR}/Documentation/menu_accessory.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_booster.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_control.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_counter.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_feedback.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_fullscreen.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_group.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_layer.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_loco.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_menu.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_multipleunit.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_program.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_quit.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_route.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_settings.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_signalgreen.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_signal.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_signalred.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_stop.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_street.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_switch.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_text.png - ${PROJECT_SOURCE_DIR}/Documentation/menu_track.png - ${PROJECT_SOURCE_DIR}/Documentation/style.css -) +file(GLOB DOCDATA Documentation/menu_*.png Documentation/style.css) set(OUTPUT_HTML ${CMAKE_BINARY_DIR}/doc) set(OUTPUT_HTML_DE ${OUTPUT_HTML}/de) From de3312b53860f915bce27319bd8c3b5f03912c3a Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Fri, 6 Feb 2026 18:32:32 +0100 Subject: [PATCH 5/6] Build documentation if pandoc is found --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 88709a7c..28333d66 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -557,9 +557,11 @@ add_custom_command( VERBATIM ) -add_custom_target(doc - DEPENDS ${OUTPUT_HTML_DE_INDEX} ${OUTPUT_HTML_EN_INDEX} ${OUTPUT_HTML_ES_INDEX} -) +if(PANDOC_EXECUTABLE) + add_custom_target(doc ALL + DEPENDS ${OUTPUT_HTML_DE_INDEX} ${OUTPUT_HTML_EN_INDEX} ${OUTPUT_HTML_ES_INDEX} + ) +endif() file(COPY ${DOCDATA} DESTINATION ${OUTPUT_HTML}) file(COPY ${DOCDATA_DE} DESTINATION ${OUTPUT_HTML_DE}) From 8f2578a13b4548103808393785be698f67102cbd Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Fri, 6 Feb 2026 18:32:50 +0100 Subject: [PATCH 6/6] Install documentation to destination dir --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 28333d66..f619593b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -389,6 +389,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}) configure_file(Version.cpp.in Version.cpp @ONLY) set(CMAKE_INSTALL_BINDIR ".") +set(CMAKE_INSTALL_DOCDIR "doc") set(DATADIR ".") install(TARGETS ${PROJECT_NAME}) @@ -558,6 +559,7 @@ add_custom_command( ) if(PANDOC_EXECUTABLE) + install(DIRECTORY ${OUTPUT_HTML}/ DESTINATION ${CMAKE_INSTALL_DOCDIR}) add_custom_target(doc ALL DEPENDS ${OUTPUT_HTML_DE_INDEX} ${OUTPUT_HTML_EN_INDEX} ${OUTPUT_HTML_ES_INDEX} )