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
+# )