Misc. Doxygen improvements.
authorTeemu Murtola <teemu.murtola@cbr.su.se>
Fri, 19 Aug 2011 17:08:48 +0000 (20:08 +0300)
committerTeemu Murtola <teemu.murtola@cbr.su.se>
Thu, 25 Aug 2011 18:02:42 +0000 (21:02 +0300)
- Excluded src/external/ from Doxygen documentation.
- Made inherited members appear in class documentation. Makes API
  documentation easier to read if there are many public members
  inherited from base classes.
- Added conditional sections for Doxygen that can be used in addition to
  \internal and \libinternal.
- Consolidated use of \internal and \libinternal in file comments:
  all installed (=public API) headers now produce some documentation for
  the public API, even if the file only contains declarations that are
  not directly in the public API.
- Added short file documentation for a few files where it was missing.

Gromacs wiki has also been updated with the changes.

Related to IssueIDs #638 and #662.

Change-Id: I9ffb9d68752697b5b58a3cc4ae45d802e32cf45c

23 files changed:
Doxyfile-lib.cmakein
Doxyfile-user.cmakein
Doxyfile.cmakein
src/gromacs/analysisdata/abstractdata.h
src/gromacs/analysisdata/arraydata.h
src/gromacs/analysisdata/datamodule.h
src/gromacs/analysisdata/modules/plot.h
src/gromacs/analysisdata/tests/mock_module.h
src/gromacs/fatalerror/exceptions.h
src/gromacs/legacyheaders/mainpage.h [deleted file]
src/gromacs/options/abstractoption.h
src/gromacs/options/optionflags.h
src/gromacs/trajectoryanalysis/modules/angle.cpp
src/gromacs/trajectoryanalysis/modules/angle.h
src/gromacs/trajectoryanalysis/modules/distance.cpp
src/gromacs/trajectoryanalysis/modules/distance.h
src/gromacs/trajectoryanalysis/modules/select.cpp
src/gromacs/trajectoryanalysis/modules/select.h
src/gromacs/utility/CMakeLists.txt
src/gromacs/utility/flags.h
src/testutils/datapath.cpp
src/testutils/datapath.h
src/testutils/refdata.h

index 278320d992da9f7620489270b57f535beb1bf3b0..dceb4e268001607a53c384ac4624189b24217c1f 100644 (file)
@@ -5,7 +5,8 @@ INPUT                  = @CMAKE_SOURCE_DIR@/src \
                          @CMAKE_SOURCE_DIR@/share/template
 EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@
 RECURSIVE              = YES
-EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
+EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib \
+                         @CMAKE_SOURCE_DIR@/src/external @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
 EXCLUDE_SYMBOLS        = YY* yy* _gmx_sel_yy*
 FULL_PATH_NAMES        = YES
 STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
@@ -15,6 +16,7 @@ INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/src \
 HAVE_DOT               = @DOXYGEN_DOT_FOUND@
 DOT_PATH               = @DOXYGEN_DOT_PATH@
 
+ENABLED_SECTIONS       = libapi
 INTERNAL_DOCS          = NO
 HIDE_UNDOC_CLASSES     = YES
 WARN_LOGFILE           = doxygen-doc/doxygen-lib.log
@@ -22,6 +24,7 @@ HTML_OUTPUT            = html-lib
 
 JAVADOC_AUTOBRIEF      = YES
 BUILTIN_STL_SUPPORT    = YES
+INLINE_INHERITED_MEMB  = YES
 SORT_BY_SCOPE_NAME     = YES
 ALPHABETICAL_INDEX     = YES
 SHOW_DIRECTORIES       = YES
@@ -33,3 +36,4 @@ ALIASES               += inlibraryapi="\ingroup group_libraryapi"
 ALIASES               += addtopublicapi="\addtogroup group_publicapi"
 ALIASES               += addtolibraryapi="\addtogroup group_libraryapi"
 ALIASES               += libinternal=
+ALIASES               += endlibinternal=
index 2a5139acd4f718cf8a0628194a77d6a129979aeb..c97198c0f3e012d451aef6104088705248a41151 100644 (file)
@@ -5,7 +5,8 @@ INPUT                  = @CMAKE_SOURCE_DIR@/src \
                          @CMAKE_SOURCE_DIR@/share/template
 EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@
 RECURSIVE              = YES
-EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
+EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib \
+                         @CMAKE_SOURCE_DIR@/src/external @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
 EXCLUDE_SYMBOLS        = YY* yy* _gmx_sel_yy*
 FULL_PATH_NAMES        = YES
 STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
@@ -15,13 +16,16 @@ INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/src \
 HAVE_DOT               = @DOXYGEN_DOT_FOUND@
 DOT_PATH               = @DOXYGEN_DOT_PATH@
 
+ENABLED_SECTIONS       =
 INTERNAL_DOCS          = NO
 HIDE_UNDOC_CLASSES     = YES
+HIDE_FRIEND_COMPOUNDS  = YES
 WARN_LOGFILE           = doxygen-doc/doxygen-user.log
 HTML_OUTPUT            = html-user
 
 JAVADOC_AUTOBRIEF      = YES
 BUILTIN_STL_SUPPORT    = YES
+INLINE_INHERITED_MEMB  = YES
 SORT_BY_SCOPE_NAME     = YES
 ALPHABETICAL_INDEX     = YES
 SHOW_DIRECTORIES       = YES
@@ -33,3 +37,4 @@ ALIASES               += inlibraryapi="\ingroup group_libraryapi"
 ALIASES               += addtopublicapi="\addtogroup group_publicapi"
 ALIASES               += addtolibraryapi="\addtogroup group_libraryapi"
 ALIASES               += libinternal="\internal"
+ALIASES               += endlibinternal="\endinternal"
index b1e6ef8e2359c91dd4a50e7f14c0834d2c151d97..a4f859dada87f3719cadd0969d4b66cc1ba0be9e 100644 (file)
@@ -5,7 +5,8 @@ INPUT                  = @CMAKE_SOURCE_DIR@/src \
                          @CMAKE_SOURCE_DIR@/share/template
 EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@
 RECURSIVE              = YES
-EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
+EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib \
+                         @CMAKE_SOURCE_DIR@/src/external @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
 EXCLUDE_SYMBOLS        = YY* yy* _gmx_sel_yy*
 FULL_PATH_NAMES        = YES
 STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
@@ -15,12 +16,14 @@ INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/src \
 HAVE_DOT               = @DOXYGEN_DOT_FOUND@
 DOT_PATH               = @DOXYGEN_DOT_PATH@
 
+ENABLED_SECTIONS       = libapi internal
 INTERNAL_DOCS          = YES
 HIDE_UNDOC_CLASSES     = YES
 WARN_LOGFILE           = doxygen-doc/doxygen.log
 
 JAVADOC_AUTOBRIEF      = YES
 BUILTIN_STL_SUPPORT    = YES
+INLINE_INHERITED_MEMB  = NO  # Makes it easier to go through all documentation
 SORT_BY_SCOPE_NAME     = YES
 ALPHABETICAL_INDEX     = YES
 SHOW_DIRECTORIES       = YES
@@ -32,3 +35,4 @@ ALIASES               += inlibraryapi="\ingroup group_libraryapi"
 ALIASES               += addtopublicapi="\addtogroup group_publicapi"
 ALIASES               += addtolibraryapi="\addtogroup group_libraryapi"
 ALIASES               += libinternal=
+ALIASES               += endlibinternal=
index ca1dec6eebdf9e7cefc6d6aadd7a79c05a776587..620b2f751ba94b05b03f3b1fef0a031221362e28 100644 (file)
@@ -28,7 +28,7 @@
  *
  * For more info, check our website at http://www.gromacs.org
  */
-/*! \libinternal \file
+/*! \file
  * \brief
  * Declares gmx::AbstractAnalysisData and gmx::AbstractAnalysisDataStored.
  *
@@ -46,7 +46,7 @@ namespace gmx
 
 class AnalysisDataModuleInterface;
 
-/*! \libinternal \brief
+/*! \brief
  * Abstract base class for all objects that provide data.
  *
  * The public interface includes functions for querying the data
@@ -309,7 +309,7 @@ class AbstractAnalysisData
 };
 
 
-/*! \libinternal \brief
+/*! \brief
  * Abstract class that implements storage of data.
  *
  * This class implements a standard way of storing data, to avoid implementing
index d283258af4caf45ac433053897efb25fe645f5d8..881e7302de8d9dd39c635f08ea16004b8a71a69f 100644 (file)
@@ -56,6 +56,7 @@ namespace gmx
  * should initialize the in-memory array through the provided protected member
  * functions.
  *
+ * \inlibraryapi
  * \ingroup module_analysisdata
  */
 class AbstractAnalysisArrayData : public AbstractAnalysisData
index 17f32663b0897071c2f93b919639d0a889a17f19..634ceca5a642dc6d451424d3056d2c0bb6235be1 100644 (file)
@@ -28,7 +28,7 @@
  *
  * For more info, check our website at http://www.gromacs.org
  */
-/*! \libinternal \file
+/*! \file
  * \brief
  * Declares gmx::AnalysisDataModuleInterface.
  *
index 9f7b396a3af20234f8de360bd71cfafea83b44c4..890214767790fb63d415c01edf594d998126e71d 100644 (file)
@@ -66,7 +66,6 @@ class Options;
  * data, setPlainOutput() should be called since the output does not make sense
  * as an xvgr file, but this is not enforced.
  *
- * \inpublicapi
  * \ingroup module_analysisdata
  */
 class AbstractPlotModule : public AnalysisDataModuleInterface
index 43734c92d3a63e8988c532237aa64ec59b792daf..7d5062e755503af73c43f1af0ed53c8ee6eb3c86 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
+/*! \internal \file
+ * \brief
+ * Declares mock implementation of gmx::AnalysisDataModuleInterface.
+ *
+ * Requires Google Mock.
+ *
+ * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_analysisdata
+ */
 #ifndef GMX_ANALYSISDATA_TESTS_MOCK_MODULE_H
 #define GMX_ANALYSISDATA_TESTS_MOCK_MODULE_H
 
index 0abdbd27a064f18116dbd51bcf3ce8626c50a9e4..3c324e7aabb43cc17e741492d19d82b1ace06d8b 100644 (file)
@@ -28,7 +28,7 @@
  *
  * For more info, check our website at http://www.gromacs.org
  */
-/*! \libinternal \file
+/*! \file
  * \brief
  * Declares common exception classes for fatal error handling.
  *
diff --git a/src/gromacs/legacyheaders/mainpage.h b/src/gromacs/legacyheaders/mainpage.h
deleted file mode 100644 (file)
index 4f48540..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*! \file
- * \brief Dummy header for Doxygen documentation.
- *
- * This file just holds the main page for doxygen. When, at some point in the
- * future, there is an obvious location for this documentation, we should
- * move it there.
- */
-
-/*! \mainpage Gromacs
-
-  GROMACS is a versatile package to perform molecular dynamics, i.e.  simulate 
-  the Newtonian equations of motion for systems with hundreds, to millions 
-  of particles.
-
-  Currently, there is documentation available (at least) on the following
-  parts of the source tree:
-   - \subpage thread_mpi
-   - \subpage libtrajana
-
-  */
-
-
index 348a01ef6909e11a69fe2351af8d9fd0a74626a0..5951aa9434ea6edea7e18c557e0b8aaeaec36f7b 100644 (file)
@@ -195,7 +195,7 @@ class ConcreteOption : public OptionTemplate<int, ConcreteOption>
  * For examples of how to use classes derived from this class, see the class
  * documentation for Options.
  *
- * \inpublicapi
+ * \inlibraryapi
  * \ingroup module_options
  */
 template <typename T, class U>
index bcb7fd79a3d18a147b2c182e41f475805722d037..c609ea07e4e6cf8abab18845a8f89fe204d598be 100644 (file)
@@ -28,7 +28,7 @@
  *
  * For more info, check our website at http://www.gromacs.org
  */
-/*! \internal \file
+/*! \file
  * \brief
  * Defines flags used in option implementation.
  *
index fc9859a5b6b8a5efc7df77a5b51e5ac68b87e9ed..e8ea63c10cc525fadc47c5fce0e869c07898f737 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
+/*! \internal \file
+ * \brief
+ * Implements gmx::analysismodules::Angle.
+ *
+ * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_trajectoryanalysis
+ */
 #include "angle.h"
 
 #ifdef HAVE_CONFIG_H
index 0e8573b02618b5bfdfd7933d31dedd4e43ba3156..583fdd9e309aa1a894d50deac4d9c00fe958a93b 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
+/*! \internal \file
+ * \brief
+ * Declares trajectory analysis module for angle calculations.
+ *
+ * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_trajectoryanalysis
+ */
 #ifndef GMX_TRAJECTORYANALYSIS_MODULES_ANGLE_H
 #define GMX_TRAJECTORYANALYSIS_MODULES_ANGLE_H
 
@@ -94,7 +101,7 @@ class Angle : public TrajectoryAnalysisModule
         // Copy and assign disallowed by base.
 };
 
-} // namespace modules
+} // namespace analysismodules
 
 } // namespace gmxana
 
index f676ac574e62c26b55183632c9f04bb24879695a..78cabf51657dac1ae2c6473d984ce7fbabae2cb8 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
+/*! \internal \file
+ * \brief
+ * Implements gmx::analysismodules::Distance.
+ *
+ * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_trajectoryanalysis
+ */
 #include "distance.h"
 
 #ifdef HAVE_CONFIG_H
index 6ca211eac2a417d98b39f97ef416dcaf43b9a9ca..c8e42c255d55f4fd5c9abf6858abe95e23635bd3 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
-#ifndef GMX_TRAJANA_MODULES_DISTANCE_HPP
-#define GMX_TRAJANA_MODULES_DISTANCE_HPP
+/*! \internal \file
+ * \brief
+ * Declares trajectory analysis module for distance calculations.
+ *
+ * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_trajectoryanalysis
+ */
+#ifndef GMX_TRAJECTORYANALYSIS_MODULES_DISTANCE_H
+#define GMX_TRAJECTORYANALYSIS_MODULES_DISTANCE_H
 
 #include <string>
 #include <vector>
index 7fad73e3f5d9443c33c7ffa241633cdb270ba81f..af738742283927d09b4440fdf61eaa3a805b6562 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
+/*! \internal \file
+ * \brief
+ * Implements gmx::analysismodules::Select.
+ *
+ * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_trajectoryanalysis
+ */
 #include "select.h"
 
 #ifdef HAVE_CONFIG_H
index 5e070820c7ed3616d5a96753ada137968e82f87a..cf2777f8944964574196a4cfc011ff2f71a1ae66 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
+/*! \internal \file
+ * \brief
+ * Declares trajectory analysis module for basic selection information.
+ *
+ * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_trajectoryanalysis
+ */
 #ifndef GMX_TRAJECTORYANALYSIS_MODULES_SELECT_H
 #define GMX_TRAJECTORYANALYSIS_MODULES_SELECT_H
 
index 820e102347dda8b877e3a5e957e7ddf6083b0d34..2a96037b057b929c65b8f0a92e58ccbe80eb891e 100644 (file)
@@ -2,7 +2,7 @@ file(GLOB UTILITY_SOURCES *.cpp)
 set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${UTILITY_SOURCES} PARENT_SCOPE)
 
 set(UTILITY_PUBLIC_HEADERS
-    flags.h)
+    flags.h format.h)
 install(FILES ${UTILITY_PUBLIC_HEADERS}
         DESTINATION ${INCL_INSTALL_DIR}/gromacs/utility
         COMPONENT development)
index 33c6b4b7f2802ce13b4be0cef7b53e132d40a3bf..e73528f272ceee94e2869f339650655d4f5e577b 100644 (file)
  *
  * For more info, check our website at http://www.gromacs.org
  */
-/*! \libinternal \file
+/*! \file
  * \brief
  * Declares gmx::FlagsTemplate.
  *
  * \author Teemu Murtola <teemu.murtola@cbr.su.se>
  * \inlibraryapi
+ * \ingroup module_utility
  */
 #ifndef GMX_UTILITY_FLAGS_H
 #define GMX_UTILITY_FLAGS_H
 namespace gmx
 {
 
-/*! \libinternal \brief
+/*! \brief
  * Template class for typesafe handling of combination of flags.
  *
  * \tparam T An enumerated type that holds the possible single flags.
  *
+ * This class is not used publicly, but is present in an installed header
+ * because it is used internally in public template classes.
+ *
  * \inlibraryapi
+ * \ingroup module_utility
  */
 template <typename T>
 class FlagsTemplate
index 0e345bdea66cf3a7abab46b385ea8174519c344c..8e4cd312c60368057616a526624519d32b6aaca6 100644 (file)
@@ -33,6 +33,7 @@
  * Implements functions in datapath.h.
  *
  * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \ingroup module_testutils
  */
 #include "datapath.h"
 
index fbcad7dfbcb5e82bc037ddf9bc49a5de84c1592e..4e546989205d8013dfd0e581ef908944d47d7b68 100644 (file)
@@ -33,6 +33,7 @@
  * Functions for accessing test input files.
  *
  * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \inlibraryapi
  * \ingroup module_testutils
  */
 #ifndef GMX_TESTUTILS_DATAPATH_H
@@ -50,19 +51,27 @@ namespace gmx
 namespace test
 {
 
-/*! \brief
+/*! \libinternal \brief
  * Returns the path to a test input file.
+ *
+ * \inlibraryapi
  */
 std::string getTestFilePath(const char *filename);
-/*! \brief
+/*! \libinternal \brief
  * Returns the path to the test input directory.
+ *
+ * \inlibraryapi
  */
 const char *getTestDataPath();
-/*! \brief
+/*! \libinternal \brief
  * Sets the test input directory.
+ *
+ * \inlibraryapi
  */
 void setTestDataPath(const char *path);
 
+/*!\}*/
+
 } // namespace test
 } // namespace gmx
 
index 9948b0b8963031945506aa29f12940b72b70f453..8d07af1f533fd47c747c1b9b98c816d4ae857a59 100644 (file)
@@ -33,6 +33,7 @@
  * Functionality for writing tests that can produce their own reference data.
  *
  * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \inlibraryapi
  * \ingroup module_testutils
  */
 #ifndef GMX_TESTUTILS_REFDATA_H