From: Teemu Murtola Date: Sun, 21 Sep 2014 03:59:08 +0000 (+0300) Subject: Skip man/html/completion generation if not needed X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?p=alexxy%2Fgromacs.git;a=commitdiff_plain;h=80c60b9374efdb883ac53877746348a0531f0ea5 Skip man/html/completion generation if not needed Make the man/html/completion targets use a stamp file to mark when they were done, and do no rerun them if dependencies have not changed (most notably, do not rerun them if nothing has changed, or if only test code has changed). Change-Id: I510e55cb4b4c798dfce2cc7d95d66d30e3e802c4 --- diff --git a/docs/man/CMakeLists.txt b/docs/man/CMakeLists.txt index 372c797a4c..cf193662e4 100644 --- a/docs/man/CMakeLists.txt +++ b/docs/man/CMakeLists.txt @@ -32,14 +32,16 @@ # To help us fund GROMACS development, we humbly ask that you cite # the research papers on the package. Check out http://www.gromacs.org. -add_custom_target(man - ${CMAKE_COMMAND} -E make_directory man1 +include(gmxCustomCommandUtilities) + +gmx_add_custom_output_target(man OUTPUT STAMP + COMMAND ${CMAKE_COMMAND} -E make_directory man1 COMMAND ${CMAKE_COMMAND} -E make_directory man7 COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/man7/gromacs.7.in" man7/ COMMAND gmx -quiet help -export man WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating man pages" - VERBATIM) + DEPENDS gmx ${CMAKE_CURRENT_SOURCE_DIR}/man7/gromacs.7.in + COMMENT "Generating man pages") set(MAN_PAGE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) if (GMX_BUILD_HELP) diff --git a/docs/old-html/CMakeLists.txt b/docs/old-html/CMakeLists.txt index 176901b7ed..c407467e7c 100644 --- a/docs/old-html/CMakeLists.txt +++ b/docs/old-html/CMakeLists.txt @@ -32,24 +32,38 @@ # To help us fund GROMACS development, we humbly ask that you cite # the research papers on the package. Check out http://www.gromacs.org. +include(gmxCustomCommandUtilities) + set(OUTPUT_DIR final) -set(HTML_PAGE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${OUTPUT_DIR}) -add_custom_target(html - ${CMAKE_COMMAND} - -D SOURCE_HTML_DIR=${CMAKE_CURRENT_SOURCE_DIR} - -D OUTPUT_DIR=${OUTPUT_DIR} - -D STEP=PRE - -P ${CMAKE_CURRENT_SOURCE_DIR}/BuildHtmlHelp.cmake +file(GLOB_RECURSE deps + ${CMAKE_CURRENT_SOURCE_DIR}/images/* + ${CMAKE_CURRENT_SOURCE_DIR}/*.html + ${CMAKE_CURRENT_SOURCE_DIR}/*.css + ) +list(APPEND deps + ${CMAKE_CURRENT_SOURCE_DIR}/BuildHtmlHelp.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/header.html.in + ${CMAKE_CURRENT_SOURCE_DIR}/links.dat + ) + +gmx_add_custom_output_target(html OUTPUT STAMP + COMMAND ${CMAKE_COMMAND} + -D SOURCE_HTML_DIR=${CMAKE_CURRENT_SOURCE_DIR} + -D OUTPUT_DIR=${OUTPUT_DIR} + -D STEP=PRE + -P ${CMAKE_CURRENT_SOURCE_DIR}/BuildHtmlHelp.cmake COMMAND gmx -quiet help -export html COMMAND ${CMAKE_COMMAND} - -D SOURCE_HTML_DIR=${CMAKE_CURRENT_SOURCE_DIR} - -D OUTPUT_DIR=${OUTPUT_DIR} - -D STEP=POST - -P ${CMAKE_CURRENT_SOURCE_DIR}/BuildHtmlHelp.cmake - COMMENT "Generating HTML help" - VERBATIM) + -D SOURCE_HTML_DIR=${CMAKE_CURRENT_SOURCE_DIR} + -D OUTPUT_DIR=${OUTPUT_DIR} + -D STEP=POST + -P ${CMAKE_CURRENT_SOURCE_DIR}/BuildHtmlHelp.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS gmx ${deps} + COMMENT "Generating HTML help") +set(HTML_PAGE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${OUTPUT_DIR}) if (GMX_BUILD_HELP) set_target_properties(html PROPERTIES EXCLUDE_FROM_ALL OFF) set_directory_properties(PROPERTIES diff --git a/src/programs/CMakeLists.txt b/src/programs/CMakeLists.txt index 8bc5eb7b06..50573b2977 100644 --- a/src/programs/CMakeLists.txt +++ b/src/programs/CMakeLists.txt @@ -79,16 +79,19 @@ else() ######################## # Completion generation - set(COMPLETION_DIR ${CMAKE_CURRENT_SOURCE_DIR}/completion) - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/completion) - add_custom_target(completion - gmx -quiet help -export completion - COMMENT "Generating command-line completions for programs" - WORKING_DIRECTORY completion - VERBATIM) + include(gmxCustomCommandUtilities) + + gmx_add_custom_output_target(completion OUTPUT STAMP + COMMAND ${CMAKE_COMMAND} -E make_directory completion + COMMAND ${CMAKE_COMMAND} -E chdir completion + $ -quiet help -export completion + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS gmx + COMMENT "Generating command-line completions for programs") # Using GMX_BUILD_HELP here is somewhat confusing, but the conditions when # this can be done are exactly the same (ability to run the compiled # binaries). + set(COMPLETION_DIR ${CMAKE_CURRENT_SOURCE_DIR}/completion) if (GMX_BUILD_HELP) set_target_properties(completion PROPERTIES EXCLUDE_FROM_ALL OFF) set_directory_properties(PROPERTIES