diff --git a/CMakeFiles/Docs.cmake b/CMakeFiles/Docs.cmake index aac93564f..4ae5ddad2 100644 --- a/CMakeFiles/Docs.cmake +++ b/CMakeFiles/Docs.cmake @@ -18,20 +18,29 @@ SET(HDR_FILES_SRC doc_src/index.hdr.in doc_src/tutorial.hdr doc_src/design.hdr # These are the generated result files. STRING(REPLACE ".in" "" HDR_FILES "${HDR_FILES_SRC}") +# Header files except for index.hdr +SET(HDR_FILES_NO_INDEX ${HDR_FILES}) +LIST(REMOVE_ITEM HDR_FILES_NO_INDEX doc_src/index.hdr) + +# Copy doc_src files +FILE(COPY ${DOC_SRC_FILES} DESTINATION doc_src) + # Build lexicon_filter. ADD_CUSTOM_COMMAND(OUTPUT lexicon_filter COMMAND build_tools/build_lexicon_filter.sh - share/completions/ - share/functions/ - < lexicon_filter.in + ${CMAKE_CURRENT_SOURCE_DIR}/share/functions/ + ${CMAKE_CURRENT_SOURCE_DIR}/share/completions/ + < ${CMAKE_CURRENT_SOURCE_DIR}/lexicon_filter.in > ${CMAKE_CURRENT_BINARY_DIR}/lexicon_filter && chmod a+x ${CMAKE_CURRENT_BINARY_DIR}/lexicon_filter WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS ${COMPLETIONS_DIR_FILES} ${FUNCTIONS_DIR_FILES} - doc_src/commands.hdr lexicon_filter.in + DEPENDS ${FUNCTIONS_DIR_FILES} ${COMPLETIONS_DIR_FILES} + doc_src/commands.hdr ${CMAKE_CURRENT_SOURCE_DIR}/lexicon_filter.in share/functions/__fish_config_interactive.fish build_tools/build_lexicon_filter.sh) +ADD_CUSTOM_TARGET(build_lexicon_filter DEPENDS lexicon_filter) + # # commands.dr collects documentation on all commands, functions and # builtins @@ -51,27 +60,42 @@ ADD_CUSTOM_COMMAND(OUTPUT doc_src/commands.hdr # file that can be parsed by Doxygen to generate the user # documentation. ADD_CUSTOM_COMMAND(OUTPUT doc.h - COMMAND cat ${HDR_FILES} > ${CMAKE_CURRENT_BINARY_DIR}/doc.h - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND cat ${HDR_FILES} > ${CMAKE_CURRENT_BINARY_DIR}/doc.h DEPENDS ${HDR_FILES}) +# toc.txt: $(HDR_FILES:index.hdr=index.hdr.in) build_tools/build_toc_txt.sh | show-SED +# FISH_BUILD_VERSION=${FISH_BUILD_VERSION} build_tools/build_toc_txt.sh \ +# $(HDR_FILES:index.hdr=index.hdr.in) > toc.txt +# Note we would like to add doc_src/index.hdr.in as a dependency but CMake replaces this with +# doc_src/index.hdr; CMake bug? +ADD_CUSTOM_COMMAND(OUTPUT toc.txt + COMMAND env `cat ${FBVF}` ${CMAKE_CURRENT_SOURCE_DIR}/build_tools/build_toc_txt.sh + doc_src/index.hdr.in ${HDR_FILES_NO_INDEX} + > ${CMAKE_CURRENT_BINARY_DIR}/toc.txt + DEPENDS ${FBVF} ${HDR_FILES_NO_INDEX}) + # doc_src/index.hdr: toc.txt doc_src/index.hdr.in | show-AWK # @echo " AWK CAT $(em)$@$(sgr0)" # $v cat $@.in | $(AWK) '{if ($$0 ~ /@toc@/){ system("cat toc.txt");} else{ print $$0;}}' >$@ ADD_CUSTOM_COMMAND(OUTPUT doc_src/index.hdr - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND build_tools/build_index_hdr.sh toc.txt + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build_tools/build_index_hdr.sh toc.txt < doc_src/index.hdr.in > ${CMAKE_CURRENT_BINARY_DIR}/doc_src/index.hdr - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/toc.txt) - -ADD_CUSTOM_TARGET(doc - COMMAND env "$$(cat" "FISH-BUILD-VERSION-FILE)" - ${CMAKE_CURRENT_SOURCE_DIR}/build_tools/build_user_doc.sh - ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.user ./lexicon_filter - DEPENDS "FISH-BUILD-VERSION-FILE" Doxyfile.user ${DOC_SRC_FILES} doc.h $(HDR_FILES) lexicon_filter) + DEPENDS toc.txt) # doc: $(HDR_FILES_SRC) Doxyfile.user $(HTML_SRC) $(HELP_SRC) doc.h $(HDR_FILES) lexicon_filter # @echo " doxygen $(em)user_doc$(sgr0)" # $v (cat Doxyfile.user; echo INPUT_FILTER=./lexicon_filter; echo PROJECT_NUMBER=$(FISH_BUILD_VERSION) | $(SED) "s/-.*//") | doxygen - && touch user_doc -# $v rm -f $(wildcard $(addprefix ./user_doc/html/,arrow*.png bc_s.png bdwn.png closed.png doc.png folder*.png ftv2*.png nav*.png open.png splitbar.png sync_*.png tab*.* doxygen.* dynsections.js jquery.js pages.html)) \ No newline at end of file +# $v rm -f $(wildcard $(addprefix ./user_doc/html/,arrow*.png bc_s.png bdwn.png closed.png doc.png folder*.png ftv2*.png nav*.png open.png splitbar.png sync_*.png tab*.* doxygen.* dynsections.js jquery.js pages.html)) +ADD_CUSTOM_TARGET(doc + COMMAND env `cat ${FBVF}` + ${CMAKE_CURRENT_SOURCE_DIR}/build_tools/build_user_doc.sh + ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.user ./lexicon_filter + DEPENDS ${FBVF} Doxyfile.user ${DOC_SRC_FILES} doc.h ${HDR_FILES} lexicon_filter) + +ADD_CUSTOM_COMMAND(OUTPUT share/man/ + COMMAND env `cat ${FBVF}` + INPUT_FILTER=lexicon_filter ${CMAKE_CURRENT_SOURCE_DIR}/build_tools/build_documentation.sh ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.help doc_src ./share + DEPENDS ${FBVF} ${HELP_SRC} ${CMAKE_CURRENT_BINARY_DIR}/lexicon_filter) + +ADD_CUSTOM_TARGET(BUILD_MANUALS ALL DEPENDS share/man/) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5678450c5..9abc6b360 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,6 +38,9 @@ ADD_CUSTOM_COMMAND(OUTPUT "FISH-BUILD-VERSION-FILE" ADD_CUSTOM_TARGET("CHECK-FISH-BUILD-VERSION-FILE" COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build_tools/git_version_gen.sh) +SET(FBVF "FISH-BUILD-VERSION-FILE") + + # Set up config.h INCLUDE(CMakeFiles/ConfigureChecks.cmake) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config_cmake.h.in diff --git a/Makefile.in b/Makefile.in index 41aa362f6..a3c552636 100644 --- a/Makefile.in +++ b/Makefile.in @@ -538,8 +538,8 @@ share/man: $(HELP_SRC) lexicon_filter | show-FISH_BUILD_VERSION show-SED @echo " doxygen $(em)$@$(sgr0)" $v touch share/man -$v rm -Rf share/man/man1 - $v echo "$(dim)" && PROJECT_NUMBER=`echo $(FISH_BUILD_VERSION) \ - | $(SED) "s/-.*//"` INPUT_FILTER=./lexicon_filter build_tools/build_documentation.sh Doxyfile.help ./doc_src ./share; + $v echo "$(dim)" && FISH_BUILD_VERSION=${FISH_BUILD_VERSION} INPUT_FILTER=./lexicon_filter \ + build_tools/build_documentation.sh Doxyfile.help ./doc_src ./share; # # The build rules for installing/uninstalling fish diff --git a/build_tools/build_documentation.sh b/build_tools/build_documentation.sh index ebd3ed6ba..e65cc1b0d 100755 --- a/build_tools/build_documentation.sh +++ b/build_tools/build_documentation.sh @@ -97,8 +97,10 @@ done # Make some extra stuff to pass to doxygen # Input is kept as . because we cd to the input directory beforehand # This prevents doxygen from generating "documentation" for intermediate directories +PROJECT_NUMBER=$(echo "$FISH_BUILD_VERSION" | env sed "s/-.*//") +echo "PROJECT_NUMBER: $FISH_BUILD_VERSION" DOXYPARAMS=$(cat <