diff --git a/.ci/doxygen.groovy b/.ci/doxygen.groovy index c41bab3..efab023 100644 --- a/.ci/doxygen.groovy +++ b/.ci/doxygen.groovy @@ -1,22 +1,9 @@ #!groovy def call(config) { config.pr.setBuildStatus(config, 'PENDING', 'Toll gate (Documentation)', 'Generating...', '${BUILD_URL}flowGraphTable/') - // Generate doxygen file for Raspberry Pi configure command - sh """#!/bin/bash +x + sh """#!/bin/bash cd ${config.repository_root} - echo -e "/**\n * @defgroup RaspberryPiGateway Raspberry Pi Gateway\n * @ingroup MyConfigGrp\n * @brief Configuration options for the Raspberry Pi Gateway\n@{\n@verbatim" > configure.h - grep -A999 '<> configure.h - echo -e "@endverbatim\n@}*/\n" >> configure.h""" - sh """#!/bin/bash +x - cd ${config.repository_root} - export PROJECTNUMBER=\$( - if [[ \$(git rev-parse --abbrev-ref HEAD) == "master" ]]; then - git describe --tags ; - else - git rev-parse --short HEAD ; - fi - ) - echo 'WARN_LOGFILE=doxygen.log' >> Doxyfile && doxygen""" + Documentation/doxygen.sh""" warnings canComputeNew: false, canResolveRelativePaths: false, defaultEncoding: '', excludePattern: '''.*/sha204_library\\.h,.*/drivers/Linux/.*,.*/cores/esp8266/.*,hardware/.*''', diff --git a/.gitattributes b/.gitattributes index b2bd0aa..8deb27c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,7 +10,6 @@ *.xml text *.lua text - # Denote all files that are truly binary and should not be modified. *.png binary *.jpg binary @@ -20,3 +19,4 @@ *.svg binary *.woff binary *.epg binary +*.jar binary diff --git a/.gitignore b/.gitignore index 193724e..0a9ce4d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ build bin *.sublime-workspace .idea +doxygen.log diff --git a/Documentation/doxygen.sh b/Documentation/doxygen.sh new file mode 100755 index 0000000..a724bd1 --- /dev/null +++ b/Documentation/doxygen.sh @@ -0,0 +1,29 @@ +#!/bin/bash +## Invoke from project root, e.g Documentation/doxygen.sh + +# Generate doxygen file for Raspberry Pi configure command +echo -e "/**\n * @defgroup RaspberryPiGateway Raspberry Pi Gateway\n * @ingroup MyConfigGrp\n * @brief Configuration options for the Raspberry Pi Gateway\n@{\n@verbatim" > configure.h + grep -A999 '<> configure.h + echo -e "@endverbatim\n@}*/\n" >> configure.h + +# Generate version information +export PROJECTNUMBER=$( + if [[ $(git rev-parse --abbrev-ref HEAD) == "master" ]]; then + git describe --tags ; + else + git rev-parse --short HEAD ; + fi +) + +# Generate any UML diagrams in the code tree that has the proper tags +export PLANTUML_JAR_PATH=Documentation/plantuml.jar +java -Djava.awt.headless=true -jar $PLANTUML_JAR_PATH -failfast2 -nbthread auto -o "$PWD/Documentation/img" "./**.(c|cpp|dox|h|hpp|ino)" + +# Launch Doxygen (assumed to be in the PATH) +doxygen + +# Show any warnings created +cat doxygen.log + +# Clean up autogenerated (temporary) artifacts +rm configure.h diff --git a/Documentation/plantuml.jar b/Documentation/plantuml.jar new file mode 100644 index 0000000..9528a42 Binary files /dev/null and b/Documentation/plantuml.jar differ diff --git a/Doxyfile b/Doxyfile index 6fa4894..513899d 100644 --- a/Doxyfile +++ b/Doxyfile @@ -220,7 +220,8 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = +ALIASES = "startuml{1}=\image html \1\n\image latex \1\n\if DontIgnorePlantUMLCode" +ALIASES += "enduml=\endif" # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" @@ -731,7 +732,7 @@ WARN_FORMAT = "$file:$line: $text" # messages should be written. If left blank the output is written to standard # error (stderr). -WARN_LOGFILE = +WARN_LOGFILE = doxygen.log #--------------------------------------------------------------------------- # Configuration options related to the input files @@ -2289,3 +2290,6 @@ GENERATE_LEGEND = YES # This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES + +# PlantUML executable +PLANTUML_JAR_PATH = $(PLANTUML_JAR_PATH)