aboutsummaryrefslogtreecommitdiffstats
path: root/support/doxygen
diff options
context:
space:
mode:
Diffstat (limited to 'support/doxygen')
-rw-r--r--support/doxygen/Doxyfile18
-rwxr-xr-xsupport/doxygen/evil_mangler.awk38
2 files changed, 50 insertions, 6 deletions
diff --git a/support/doxygen/Doxyfile b/support/doxygen/Doxyfile
index 67b7692..daeaf38 100644
--- a/support/doxygen/Doxyfile
+++ b/support/doxygen/Doxyfile
@@ -263,7 +263,7 @@ IDL_PROPERTY_SUPPORT = YES
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
-DISTRIBUTE_GROUP_DOC = NO
+DISTRIBUTE_GROUP_DOC = YES
# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
# the same type (for instance a group of public functions) to be put as a
@@ -281,7 +281,7 @@ SUBGROUPING = YES
# be useful for C code in case the coding convention dictates that all compound
# types are typedef'ed and only the typedef is referenced, never the tag name.
-TYPEDEF_HIDES_STRUCT = YES
+TYPEDEF_HIDES_STRUCT = NO
# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
# determine which symbols to keep in memory and which to flush to disk.
@@ -537,7 +537,7 @@ LAYOUT_FILE =
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
-QUIET = NO
+QUIET = YES
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
@@ -549,7 +549,7 @@ WARNINGS = YES
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
-WARN_IF_UNDOCUMENTED = YES
+WARN_IF_UNDOCUMENTED = NO
# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some
@@ -690,7 +690,9 @@ INPUT_FILTER =
# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
# is applied to all files.
-FILTER_PATTERNS =
+# Trick Doxygen into thinking series headers are in separate
+# namespaces; see the Evil Mangler source for more information.
+FILTER_PATTERNS = */libmaple/stm32*/include/series/*.h=./support/doxygen/evil_mangler.awk
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
@@ -1373,11 +1375,15 @@ INCLUDE_FILE_PATTERNS =
# instead of the = operator.
PREDEFINED = __attribute__()= \
+ __deprecated= \
+ __always_inline= \
+ __packed = \
+ __weak = \
__cplusplus \
STM32_MEDIUM_DENSITY \
STM32_HIGH_DENSITY \
STM32_XL_DENSITY \
- __DOXYGEN_PREDEFINED_HACK
+ __DOXYGEN__
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
diff --git a/support/doxygen/evil_mangler.awk b/support/doxygen/evil_mangler.awk
new file mode 100755
index 0000000..b07da72
--- /dev/null
+++ b/support/doxygen/evil_mangler.awk
@@ -0,0 +1,38 @@
+#!/usr/bin/awk -f
+
+# libmaple's own Evil Mangler
+#
+# Input filter hack to trick Doxygen into thinking that a series
+# header is in a separate namespace. This is necessary because Doxygen
+# doesn't know how to cope with two data structures with the same name
+# in different places in the project. (We do that all the time,
+# e.g. for foo_reg_map structs.)
+#
+# E.g., an STM32F1 header gets transformed into:
+#
+# namespace stm32f1 {
+# <contents of header>
+# }
+
+BEGIN {
+ # For extracting series component from header FILENAME.
+ series_regex = "/stm32[flw][0-9]*/";
+ # Holds header FILENAME. Cargo-culted; not sure why it's necessary.
+ f = "";
+ # Holds series component.
+ series = "";
+}
+{
+ if (f != FILENAME) {
+ f = FILENAME;
+ match(f, series_regex);
+ series = substr(f, RSTART + 1, RLENGTH - 2);
+ printf("namespace %s {\n", series);
+ }
+ print;
+}
+END {
+ if (series != "") {
+ print "}"
+ }
+}