From 43b56f3a89cf62c6b094e093f0fcbec890f96c67 Mon Sep 17 00:00:00 2001 From: LeMoustachu Date: Sat, 5 Feb 2022 19:01:47 +0100 Subject: [PATCH] Update doc titlebar to match upsilon color. (#145) --- build/doc/Doxyfile | 211 +++++++++++++++++++++++++++--------- build/doc/customdoxygen.css | 4 +- build/doc/logo.png | Bin 11463 -> 17280 bytes 3 files changed, 161 insertions(+), 54 deletions(-) diff --git a/build/doc/Doxyfile b/build/doc/Doxyfile index f903ba0f1..421deb463 100644 --- a/build/doc/Doxyfile +++ b/build/doc/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.18 +# Doxyfile 1.9.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -227,6 +227,14 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. @@ -315,7 +323,10 @@ OPTIMIZE_OUTPUT_SLICE = NO # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = @@ -449,6 +460,19 @@ TYPEDEF_HIDES_STRUCT = NO LOOKUP_CACHE_SIZE = 0 +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which efficively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -512,6 +536,13 @@ EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation @@ -549,11 +580,18 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) ands Mac users are advised to set this option to NO. +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. # The default value is: system dependent. CASE_SENSE_NAMES = NO @@ -792,7 +830,10 @@ WARN_IF_DOC_ERROR = NO WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. # The default value is: NO. WARN_AS_ERROR = NO @@ -836,8 +877,8 @@ INPUT = apps \ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 @@ -850,13 +891,15 @@ INPUT_ENCODING = UTF-8 # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. +# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, +# *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ *.cc \ @@ -1114,6 +1157,44 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to +# YES then doxygen will add the directory of each input to the include path. +# The default value is: YES. + +CLANG_ADD_INC_PATHS = YES + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -1125,13 +1206,6 @@ VERBATIM_HEADERS = YES ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1302,10 +1376,11 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. @@ -1347,8 +1422,8 @@ DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. +# (see: +# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML @@ -1378,7 +1453,7 @@ CHM_FILE = HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). +# (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1423,7 +1498,8 @@ QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1431,8 +1507,8 @@ QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1440,16 +1516,16 @@ QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = @@ -1461,9 +1537,9 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @@ -1544,8 +1620,8 @@ EXT_LINKS_IN_WINDOW = NO # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png The default and svg Looks nicer but requires the -# pdf2svg tool. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). # The default value is: png. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1590,7 +1666,7 @@ USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. @@ -1620,7 +1696,8 @@ MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1667,7 +1744,8 @@ SERVER_BASED_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). +# Xapian (see: +# https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1680,8 +1758,9 @@ EXTERNAL_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). See the section "External Indexing and -# Searching" for details. +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = @@ -1845,9 +1924,11 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES, to get a -# higher quality PDF documentation. +# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX +# files. Set this option to YES, to get a higher quality PDF documentation. +# +# See also section LATEX_CMD_NAME for selecting the engine. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2279,7 +2360,7 @@ HIDE_UNDOC_RELATIONS = YES # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO -# The default value is: NO. +# The default value is: YES. HAVE_DOT = NO @@ -2358,10 +2439,32 @@ UML_LOOK = NO # but if the number exceeds 15, the total amount of fields shown is limited to # 10. # Minimum value: 0, maximum value: 100, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. +# This tag requires that the tag UML_LOOK is set to YES. UML_LIMIT_NUM_FIELDS = 10 +# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS +# tag is set to YES, doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# will not generate fields with class member information in the UML graphs. The +# class diagrams will look similar to the default class diagrams but using UML +# notation for the relationships. +# Possible values are: NO, YES and NONE. +# The default value is: NO. +# This tag requires that the tag UML_LOOK is set to YES. + +DOT_UML_DETAILS = NO + +# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters +# to display on a single line. If the actual line length exceeds this threshold +# significantly it will wrapped across multiple lines. Some heuristics are apply +# to avoid ugly line breaks. +# Minimum value: 0, maximum value: 1000, default value: 17. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_WRAP_THRESHOLD = 17 + # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. @@ -2435,7 +2538,9 @@ DIRECTORY_GRAPH = YES # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). -# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo, +# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, +# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, +# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, # png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and # png:gdiplus:gdiplus. # The default value is: png. @@ -2551,9 +2656,11 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate # files that are used to generate the various graphs. +# +# Note: This setting is not only used for dot files but also for msc and +# plantuml temporary files. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES diff --git a/build/doc/customdoxygen.css b/build/doc/customdoxygen.css index 40f9b1253..a11967f96 100644 --- a/build/doc/customdoxygen.css +++ b/build/doc/customdoxygen.css @@ -1869,7 +1869,7 @@ u { } #titlearea { - background: #c53431; + background: #5E81AC; border: none; } @@ -2140,4 +2140,4 @@ div.line { padding-right: 12px; } -/* Custom ends HERE */ \ No newline at end of file +/* Custom ends HERE */ diff --git a/build/doc/logo.png b/build/doc/logo.png index 8a7615d61716a468a992b7191bb034ca0182c719..e178106cfbd9868d88a2d820636da598af6f3051 100644 GIT binary patch literal 17280 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