diff --git a/cmake/docs.cmake b/cmake/docs.cmake index f66cf2127..dcf37e040 100644 --- a/cmake/docs.cmake +++ b/cmake/docs.cmake @@ -4,34 +4,77 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc) +set(node_binary ${PROJECT_BINARY_DIR}/default/node) +set(doctool tools/doctool/doctool.js) +set(changelog_html ${PROJECT_BINARY_DIR}/doc/changelog.html) + +file(GLOB_RECURSE doc_sources RELATIVE ${PROJECT_SOURCE_DIR} doc/*) + +foreach(FILE ${doc_sources}) + string(REGEX REPLACE "(.*)api_assets(.*)" "\\1api/assets\\2" OUT_FILE ${FILE}) + add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${OUT_FILE} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/${FILE} ${PROJECT_BINARY_DIR}/${OUT_FILE} + DEPENDS ${PROJECT_SOURCE_DIR}/${FILE} + ) + list(APPEND doc_sources_copy ${PROJECT_BINARY_DIR}/${OUT_FILE}) +endforeach() + +file(GLOB_RECURSE api_markdown RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/doc/api/*) + +foreach(file ${api_markdown}) + string(REGEX REPLACE "(.*)\\.markdown" "\\1" tmp ${file}) + set(api_basenames ${api_basenames} ${tmp}) +endforeach() + +foreach(api ${api_basenames}) + set(api_html ${api_html} ${PROJECT_BINARY_DIR}/${api}.html) + add_custom_command( + OUTPUT "${PROJECT_BINARY_DIR}/${api}.html" + COMMAND ${node_binary} ${doctool} ${PROJECT_BINARY_DIR}/doc/template.html "${PROJECT_BINARY_DIR}/${api}.markdown" > "${PROJECT_BINARY_DIR}/${api}.html" + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + DEPENDS node ${doctool} ${doc_sources_copy} + VERBATIM + ) +endforeach() + add_custom_target( doc - DEPENDS doc/node.1 doc/api.html ${PROJECT_SOURCE_DIR}/doc/index.html doc/changelog.html + DEPENDS node ${doc_sources_copy} ${api_html} ${changelog_html} WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) +#add_custom_command( +# OUTPUT ${PROJECT_BINARY_DIR}/doc/api.html +# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --fragment doc/api.markdown +# | sed "s/

\\\(.*\\\)<\\/h2>/

\\1<\\/h2>/g" +# | cat doc/api_header.html - doc/api_footer.html > ${PROJECT_BINARY_DIR}/doc/api.html +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# DEPENDS node doc/api.markdown doc/api_header.html doc/api_footer.html +# VERBATIM +# ) + add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/doc/api.html - COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --fragment doc/api.markdown - | sed "s/

\\\(.*\\\)<\\/h2>/

\\1<\\/h2>/g" - | cat doc/api_header.html - doc/api_footer.html > ${PROJECT_BINARY_DIR}/doc/api.html + OUTPUT ${changelog_html} + COMMAND ${node_binary} ${doctool} doc/template.html ChangeLog + | sed "s|assets/|api/assets/|g" + | sed "s|||g" > ${changelog_html} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS node doc/api.markdown doc/api_header.html doc/api_footer.html + DEPENDS ChangeLog node ${doctool} ${doc_sources_copy} VERBATIM ) -add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/doc/changelog.html - COMMAND cat doc/changelog_header.html ChangeLog doc/changelog_footer.html > ${PROJECT_BINARY_DIR}/doc/changelog.html - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS ChangeLog doc/changelog_header.html doc/changelog_footer.html - VERBATIM - ) +#add_custom_command( +# OUTPUT ${PROJECT_BINARY_DIR}/doc/changelog.html +# COMMAND cat doc/changelog_header.html ChangeLog doc/changelog_footer.html > ${PROJECT_BINARY_DIR}/doc/changelog.html +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# DEPENDS ChangeLog doc/changelog_header.html doc/changelog_footer.html +# VERBATIM +# ) -add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/doc/node.1 - COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --roff doc/api.markdown > ${PROJECT_BINARY_DIR}/doc/node.1 - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS node doc/api.markdown tools/ronnjs/bin/ronn.js - VERBATIM - ) +#add_custom_command( +# OUTPUT ${PROJECT_BINARY_DIR}/doc/node.1 +# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --roff doc/api.markdown > ${PROJECT_BINARY_DIR}/doc/node.1 +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# DEPENDS node doc/api.markdown tools/ronnjs/bin/ronn.js +# VERBATIM +# )