diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt index 1ece5a71b7e9663a379200262371e80948de8e4e..b5a2fa472988a77b8f13c0833b1c00c4fd9a4489 100644 --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -2,6 +2,7 @@ set(modules AddInputFileLinks.cmake CheckConstexpr.cmake CopyOfDuneSymlinkOrCopy.cmake + DumuxDoxygen.cmake DumuxMacros.cmake DumuxTestMacros.cmake) include(GNUInstallDirs) diff --git a/cmake/modules/DumuxDoxygen.cmake b/cmake/modules/DumuxDoxygen.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ae4a0fa9c8dcdf40a3fc0b2fbaa6979d273cf44f --- /dev/null +++ b/cmake/modules/DumuxDoxygen.cmake @@ -0,0 +1,9 @@ +# add_dumux_doxgen_target +# +# make sure, that the doxygen links to todo list, bibliography, etc. are correct +MACRO (add_dumux_doxygen_target) + add_doxygen_target() + add_custom_command(TARGET doxygen_${ProjectName} + POST_BUILD + COMMAND ${CMAKE_SOURCE_DIR}/doc/doxygen/sanitizelinks.sh) +ENDMACRO (add_dumux_doxygen_target) diff --git a/cmake/modules/DumuxMacros.cmake b/cmake/modules/DumuxMacros.cmake index 2a3dc11f91ec7c370f3aedb3f3dba2747b9147d0..c8157f814613cf18477d7d76c4e5df9d8d21659c 100644 --- a/cmake/modules/DumuxMacros.cmake +++ b/cmake/modules/DumuxMacros.cmake @@ -2,6 +2,7 @@ include(CheckConstexpr) # additional macros include(AddInputFileLinks) +include(DumuxDoxygen) include(DumuxTestMacros) find_package(Gnuplot) diff --git a/doc/doxygen/CMakeLists.txt b/doc/doxygen/CMakeLists.txt index f7b8ea5c993424d9524394428ec8f2ca9160b66a..9f66c1ba47a600577308610f1d7ce17840c7fbdd 100644 --- a/doc/doxygen/CMakeLists.txt +++ b/doc/doxygen/CMakeLists.txt @@ -1,2 +1,2 @@ # shortcut for creating the Doxyfile.in and Doxyfile -add_doxygen_target() +add_dumux_doxygen_target() diff --git a/doc/doxygen/Doxylocal b/doc/doxygen/Doxylocal index 6d851cb60f19ec790c37d81b6963e08e9ba04f89..4b9abcb5d36ad013f52ab082769aafedf059e392 100644 --- a/doc/doxygen/Doxylocal +++ b/doc/doxygen/Doxylocal @@ -24,8 +24,11 @@ EXTRA_PACKAGES += amsmath,amssymb,units SEARCHENGINE = YES SERVER_BASED_SEARCH = NO -# disable macro expansion (Otherwise, certain properties will not appear -# in the documentation properly. This should be fixed at some time.) -MACRO_EXPANSION = NO - -CITE_BIB_FILES = @top_srcdir@/doc/handbook/dumux-handbook +# the bibliography file used for the doxygen documentation +CITE_BIB_FILES = @top_srcdir@/doc/handbook/dumux-handbook.bib + +# enable macro expansion only for specified macros +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +PREDEFINED = "DUNE_DEPRECATED:=/** \deprecated */" \ + "DUNE_DEPRECATED_MSG(A):=/** \deprecated A */" diff --git a/doc/doxygen/sanitizelinks.sh b/doc/doxygen/sanitizelinks.sh new file mode 100755 index 0000000000000000000000000000000000000000..afdd216f66c9310921d7ee747ea7213826857972 --- /dev/null +++ b/doc/doxygen/sanitizelinks.sh @@ -0,0 +1,12 @@ +# sanitizes the links to the given lists, because doxygen somehow links +# to a page with a wrong index +function sanitizelinks { + NEW_FILE=`grep -l "\"title\">$1" html/*html | egrep -o [0-9]+` + OLD_FILE=`awk -v a=$NEW_FILE 'BEGIN {printf("%05d", a-1)}'` + sed -i "s/$OLD_FILE/$NEW_FILE/g" html/*html +} + +sanitizelinks "Todo List" +sanitizelinks "Bug List" +sanitizelinks "Deprecated List" +sanitizelinks "Bibliography"