# To help us fund GROMACS development, we humbly ask that you cite
# the research papers on the package. Check out http://www.gromacs.org.
-if (NOT DEFINED OUTPUT_DIR OR NOT DEFINED SOURCE_HTML_DIR)
+if (NOT DEFINED GMX_EXECUTABLE OR NOT DEFINED OUTPUT_DIR OR NOT DEFINED SOURCE_HTML_DIR)
message(FATAL_ERROR "Required input parameter not set")
endif()
-function(PRE_EXPORT_ACTIONS)
- file(MAKE_DIRECTORY ${OUTPUT_DIR})
- file(MAKE_DIRECTORY ${OUTPUT_DIR}/programs)
- file(COPY ${SOURCE_HTML_DIR}/header.html.in DESTINATION .)
- file(COPY ${SOURCE_HTML_DIR}/footer.html DESTINATION .)
- file(COPY ${SOURCE_HTML_DIR}/links.dat DESTINATION .)
-endfunction()
+file(MAKE_DIRECTORY ${OUTPUT_DIR})
+file(MAKE_DIRECTORY ${OUTPUT_DIR}/programs)
+file(COPY ${SOURCE_HTML_DIR}/header.html.in DESTINATION .)
+file(COPY ${SOURCE_HTML_DIR}/footer.html DESTINATION .)
+file(COPY ${SOURCE_HTML_DIR}/links.dat DESTINATION .)
+
+# This is generated by gmx help -export html
+set(HEADER_FILE header.html)
-function(POST_EXPORT_ACTIONS)
- # This is generated by gmx help -export html
- set(HEADER_FILE header.html)
- set(FOOTER_FILE ${SOURCE_HTML_DIR}/footer.html)
- file(READ ${HEADER_FILE} HEADER_TEXT)
- file(READ ${FOOTER_FILE} FOOTER_TEXT)
- set(_title_re "[Tt][Ii][Tt][Ll][Ee]")
+execute_process(
+ COMMAND ${GMX_EXECUTABLE} -quiet help -export html
+ RESULT_VARIABLE exitcode)
+if (exitcode)
+ # Ensure that no partial output is left behind.
+ file(REMOVE_RECURSE ${OUTPUT_DIR})
+ file(REMOVE ${HEADER_FILE})
+ message(FATAL_ERROR
+ "Failed to generate HTML help. "
+ "Set GMX_BUILD_HELP=OFF or GMX_BUILD_HELP=AUTO if you want to skip them.\n"
+ "Error/exit code: ${exitcode}")
+endif()
- function(CREATE_HTML_FILE SOURCE_FILE ROOTPATH)
- file(RELATIVE_PATH _rel_path ${SOURCE_HTML_DIR} ${SOURCE_FILE})
- file(READ ${SOURCE_FILE} _content)
- string(REGEX REPLACE "^ *<${_title_re}>(.*)</${_title_re}>\n" "" _content "${_content}")
- set(TITLE "${CMAKE_MATCH_1}")
- string(CONFIGURE "${HEADER_TEXT}" _header @ONLY)
- set(_content "${_header}${_content}${FOOTER_TEXT}")
- file(WRITE ${OUTPUT_DIR}/${_rel_path} "${_content}")
- endfunction()
+set(FOOTER_FILE ${SOURCE_HTML_DIR}/footer.html)
+file(READ ${HEADER_FILE} HEADER_TEXT)
+file(READ ${FOOTER_FILE} FOOTER_TEXT)
+set(_title_re "[Tt][Ii][Tt][Ll][Ee]")
- create_html_file(${SOURCE_HTML_DIR}/online.html "")
- file(COPY ${SOURCE_HTML_DIR}/images DESTINATION ${OUTPUT_DIR})
- file(MAKE_DIRECTORY ${OUTPUT_DIR}/online)
- file(COPY ${SOURCE_HTML_DIR}/online/style.css DESTINATION ${OUTPUT_DIR}/online)
- file(GLOB _source_files ${SOURCE_HTML_DIR}/online/*.html)
- foreach(_file ${_source_files})
- create_html_file(${_file} "../")
- endforeach()
+function(CREATE_HTML_FILE SOURCE_FILE ROOTPATH)
+ file(RELATIVE_PATH _rel_path ${SOURCE_HTML_DIR} ${SOURCE_FILE})
+ file(READ ${SOURCE_FILE} _content)
+ string(REGEX REPLACE "^ *<${_title_re}>(.*)</${_title_re}>\n" "" _content "${_content}")
+ set(TITLE "${CMAKE_MATCH_1}")
+ string(CONFIGURE "${HEADER_TEXT}" _header @ONLY)
+ set(_content "${_header}${_content}${FOOTER_TEXT}")
+ file(WRITE ${OUTPUT_DIR}/${_rel_path} "${_content}")
endfunction()
-if (STEP STREQUAL "PRE")
- pre_export_actions()
-elseif (STEP STREQUAL "POST")
- post_export_actions()
-else()
- message(FATAL_ERROR "Unknown parameter STEP=${STEP}")
-endif()
+create_html_file(${SOURCE_HTML_DIR}/online.html "")
+file(COPY ${SOURCE_HTML_DIR}/images DESTINATION ${OUTPUT_DIR})
+file(MAKE_DIRECTORY ${OUTPUT_DIR}/online)
+file(COPY ${SOURCE_HTML_DIR}/online/style.css DESTINATION ${OUTPUT_DIR}/online)
+file(GLOB _source_files ${SOURCE_HTML_DIR}/online/*.html)
+foreach(_file ${_source_files})
+ create_html_file(${_file} "../")
+endforeach()