From 784fa91294fb4849ab761fe558af7c3cfa2a9174 Mon Sep 17 00:00:00 2001
From: Russ Butler <russ.butler@arm.com>
Date: Sat, 13 Oct 2018 11:20:25 -0500
Subject: [PATCH] Update doxygens to be in sync

Make the following changes to doxyfile_options:
-Change CASE_SENSE_NAMES so names of files generated match mbed-os docs
-Change DISABLE_INDEX so navigation bar shows
-Change CLASS_DIAGRAMS so inheritance diagram gets generated
-Change USE_MDFILE_AS_MAINPAGE and add DOXYGEN_FRONTPAGE.md to
    FILE_PATTERNS so the correct main page is found and used
-Remove DEVICE_ETH from PREDEFINED since this is no longer relevent
-Change GENERATE_XML and XML_OUTPUT so no xml is generated
-Change SEARCHENGINE to match the docs

Make the following changes in doxygen_options.json:
-Add all non-default values in doxyfile_options to the json
-Break json into 3 groups
    1. Values that are the same as doxyfile_options
    2. Values that must be different from doxyfile_options
    3. Values the are overriden by the docs builder
-Make the doxyegn search directory "INPUT" start in mbed-os rather
    than one level above mbed-os.

Finally, rename the BLE doxygen front page so it is not confused with
the mbed-os front page.
---
 doxyfile_options                              | 17 ++++-----
 doxygen_options.json                          | 37 ++++++++++++++++++-
 ..._FRONTPAGE.md => DOXYGEN_FRONTPAGE_BLE.md} |  0
 3 files changed, 43 insertions(+), 11 deletions(-)
 rename features/FEATURE_BLE/{DOXYGEN_FRONTPAGE.md => DOXYGEN_FRONTPAGE_BLE.md} (100%)

diff --git a/doxyfile_options b/doxyfile_options
index fb869454fa..e2ee325811 100644
--- a/doxyfile_options
+++ b/doxyfile_options
@@ -514,7 +514,7 @@ INTERNAL_DOCS          = NO
 # and Mac users are advised to set this option to NO.
 # The default value is: system dependent.
 
-CASE_SENSE_NAMES       = YES
+CASE_SENSE_NAMES       = NO
 
 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
 # their full class and namespace scopes in the documentation. If set to YES, the
@@ -805,7 +805,7 @@ INPUT_ENCODING         = UTF-8
 # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
 # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
 
-FILE_PATTERNS          = *.h
+FILE_PATTERNS          = *.h DOXYGEN_FRONTPAGE.md
 
 # The RECURSIVE tag can be used to specify whether or not subdirectories should
 # be searched for input files as well.
@@ -951,7 +951,7 @@ FILTER_SOURCE_PATTERNS =
 # (index.html). This can be useful if you have a project on for instance GitHub
 # and want to reuse the introduction page also for the doxygen output.
 
-USE_MDFILE_AS_MAINPAGE = 
+USE_MDFILE_AS_MAINPAGE = DOXYGEN_FRONTPAGE.md
 
 #---------------------------------------------------------------------------
 # Configuration options related to source browsing
@@ -1430,7 +1430,7 @@ ECLIPSE_DOC_ID         = org.doxygen.Project
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-DISABLE_INDEX          = YES
+DISABLE_INDEX          = NO
 
 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
 # structure should be generated to display hierarchical information. If the tag
@@ -1561,7 +1561,7 @@ MATHJAX_CODEFILE       =
 # The default value is: YES.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-SEARCHENGINE           = NO
+SEARCHENGINE           = YES
 
 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
 # implemented using a web server instead of a web client using Javascript. There
@@ -1915,7 +1915,7 @@ MAN_LINKS              = NO
 # captures the structure of the code including all documentation.
 # The default value is: NO.
 
-GENERATE_XML           = YES
+GENERATE_XML           = NO
 
 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
@@ -1923,7 +1923,7 @@ GENERATE_XML           = YES
 # The default directory is: xml.
 # This tag requires that the tag GENERATE_XML is set to YES.
 
-XML_OUTPUT             = BUILD/xml
+XML_OUTPUT             = xml
 
 # If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
 # listings (including syntax highlighting and cross-referencing information) to
@@ -2075,7 +2075,6 @@ PREDEFINED             = DOXYGEN_ONLY            \
                          DEVICE_CRC              \
                          DEVICE_ETHERNET         \
                          DEVICE_EMAC             \
-                         DEVICE_ETH              \
                          DEVICE_FLASH            \
                          DEVICE_I2C              \
                          DEVICE_I2CSLAVE         \
@@ -2184,7 +2183,7 @@ PERL_PATH              = /usr/bin/perl
 # powerful graphs.
 # The default value is: YES.
 
-CLASS_DIAGRAMS         = NO
+CLASS_DIAGRAMS         = YES
 
 # You can define message sequence charts within doxygen comments using the \msc
 # command. Doxygen will then run the mscgen tool (see:
diff --git a/doxygen_options.json b/doxygen_options.json
index 1362e6b4c3..1895c35972 100644
--- a/doxygen_options.json
+++ b/doxygen_options.json
@@ -1,5 +1,5 @@
 {
-    "PROJECT_NAME": "Mbed OS Reference",
+    "PROJECT_NAME": "\"Mbed OS Reference\"",
     "ENABLE_PREPROCESSING": "YES",
     "MACRO_EXPANSION": "YES",
     "EXPAND_ONLY_PREDEF": "NO",
@@ -10,5 +10,38 @@
     "EXPAND_AS_DEFINED": "",
     "SKIP_FUNCTION_MACROS": "NO",
     "STRIP_CODE_COMMENTS": "NO",
-    "EXCLUDE_PATTERNS": "*/tools/* */targets/* */features/mbedtls/* */features/storage/cfstore/* */features/storage/FEATURE_STORAGE/* */features/unsupported/* */BUILD/* */rtos/TARGET_CORTEX/rtx*/* */cmsis/* */features/lwipstack/* */nanostack/sal-stack-nanostack/* */nanostack/coap-service/* */ble/generic/* */ble/pal/* */mbed-trace/* */mbed-coap/* */nanostack-libservice/* */mbed-client-randlib/* */nanostack/sal-stack-nanostack-eventloop/* */components/802.15.4_RF/* */components/wifi/* */features/nfc/stack/* */UNITTESTS/*"
+    "EXCLUDE_PATTERNS": "*/tools/* */targets/* */features/mbedtls/* */features/storage/cfstore/* */features/storage/FEATURE_STORAGE/* */features/unsupported/* */BUILD/* */rtos/TARGET_CORTEX/rtx*/* */cmsis/* */features/lwipstack/* */nanostack/sal-stack-nanostack/* */nanostack/coap-service/* */ble/generic/* */ble/pal/* */mbed-trace/* */mbed-coap/* */nanostack-libservice/* */mbed-client-randlib/* */nanostack/sal-stack-nanostack-eventloop/* */components/802.15.4_RF/* */components/wifi/* */features/nfc/stack/* */UNITTESTS/* */features/cryptocell/*",
+    "ALPHABETICAL_INDEX": "NO",
+    "CASE_SENSE_NAMES": "NO",
+    "DOT_MULTI_TARGETS": "YES",
+    "EXCLUDE_SYMLINKS": "YES",
+    "EXTRACT_ANON_NSPACES": "YES",
+    "EXTRACT_LOCAL_CLASSES": "NO",
+    "EXTRACT_STATIC": "YES",
+    "FILE_PATTERNS": "*.h DOXYGEN_FRONTPAGE.md",
+    "FULL_PATH_NAMES": "NO",
+    "GENERATE_BUGLIST": "NO",
+    "GENERATE_LATEX": "NO",
+    "GENERATE_TESTLIST": "NO",
+    "GENERATE_TODOLIST": "NO",
+    "HIDE_SCOPE_NAMES": "YES",
+    "HIDE_UNDOC_CLASSES": "YES",
+    "HIDE_UNDOC_MEMBERS": "YES",
+    "INLINE_INFO": "NO",
+    "INLINE_INHERITED_MEMB": "YES",
+    "JAVADOC_AUTOBRIEF": "YES",
+    "PAPER_TYPE": "a4wide",
+    "QUIET": "YES",
+    "REFERENCES_LINK_SOURCE": "NO",
+    "SHOW_USED_FILES": "NO",
+    "SOURCE_BROWSER": "YES",
+    "ALWAYS_DETAILED_SEC": "YES",
+
+    "INPUT": "mbed-os",
+    "HTML_OUTPUT": "html",
+
+    "RECURSIVE": "YES",
+    "OPTIMIZE_OUTPUT_FOR_C": "YES",
+    "USE_MDFILE_AS_MAINPAGE": "DOXYGEN_FRONTPAGE.md",
+    "SEARCHENGINE": "YES"
 }
diff --git a/features/FEATURE_BLE/DOXYGEN_FRONTPAGE.md b/features/FEATURE_BLE/DOXYGEN_FRONTPAGE_BLE.md
similarity index 100%
rename from features/FEATURE_BLE/DOXYGEN_FRONTPAGE.md
rename to features/FEATURE_BLE/DOXYGEN_FRONTPAGE_BLE.md