Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
260 changes: 56 additions & 204 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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})
Expand Down Expand Up @@ -435,45 +436,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
Expand Down Expand Up @@ -507,43 +470,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
Expand Down Expand Up @@ -577,150 +504,71 @@ 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_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
--css=../style.css
--template=Documentation/template.html)

add_custom_command(
OUTPUT ${OUTPUT_HTML_DE}
COMMAND pandoc ${PANDOC_OPTS}
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}
COMMAND pandoc ${PANDOC_OPTS}
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}
COMMAND pandoc ${PANDOC_OPTS}
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}
)

foreach(DOCDATA ${DOCDATA})
add_custom_command(TARGET doc POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${DOCDATA}
${PROJECT_BINARY_DIR}/doc
)
endforeach()

foreach(DOCDATA_DE ${DOCDATA_DE})
add_custom_command(TARGET doc POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${DOCDATA_DE}
${PROJECT_BINARY_DIR}/doc/de
)
endforeach()

foreach(DOCDATA_EN ${DOCDATA_EN})
add_custom_command(TARGET doc POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${DOCDATA_EN}
${PROJECT_BINARY_DIR}/doc/en
)
endforeach()
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}
)
endif()

foreach(DOCDATA_ES ${DOCDATA_ES})
add_custom_command(TARGET doc POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${DOCDATA_ES}
${PROJECT_BINARY_DIR}/doc/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
Expand All @@ -739,10 +587,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
Expand All @@ -752,50 +604,50 @@ set(PANDOC_CHUNKEDOPTS --toc --toc-depth=2
--embed-resources
--split-level=1)
add_custom_command(
OUTPUT ${OUTPUT_CHUNKEDHTML_DE}/index.html
COMMAND pandoc ${PANDOC_CHUNKEDOPTS}
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"
VERBATIM
)

add_custom_command(
OUTPUT ${OUTPUT_CHUNKEDHTML_EN}/index.html
COMMAND pandoc ${PANDOC_CHUNKEDOPTS}
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"
VERBATIM
)

add_custom_command(
OUTPUT ${OUTPUT_CHUNKEDHTML_ES}/index.html
COMMAND pandoc ${PANDOC_CHUNKEDOPTS}
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"
VERBATIM
)

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

Expand Down