From 198e4448dc6e1f2374b783d62ac834fa26c49971 Mon Sep 17 00:00:00 2001
From: Ian Bell <ian.bell@nist.gov>
Date: Mon, 7 Nov 2022 10:46:29 -0500
Subject: [PATCH] Extract more things

Closes #25
---
 Doxyfile                 | 10 ++++++----
 doc/source/cpp/index.rst |  9 +++++++++
 doc/source/index.rst     |  1 +
 3 files changed, 16 insertions(+), 4 deletions(-)
 create mode 100644 doc/source/cpp/index.rst

diff --git a/Doxyfile b/Doxyfile
index da05018..1569ea4 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -499,7 +499,7 @@ NUM_PROC_THREADS       = 1
 # normally produced when WARNINGS is set to YES.
 # The default value is: NO.
 
-EXTRACT_ALL            = NO
+EXTRACT_ALL            = YES
 
 # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
 # be included in the documentation.
@@ -908,7 +908,8 @@ WARN_LOGFILE           =
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = include
+INPUT                  = include \
+                         interface/CPP
 
 # 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
@@ -993,7 +994,8 @@ FILE_PATTERNS          = *.c \
                          *.vhdl \
                          *.ucf \
                          *.qsf \
-                         *.ice
+                         *.ice \
+                         *.cxx
 
 # The RECURSIVE tag can be used to specify whether or not subdirectories should
 # be searched for input files as well.
@@ -2322,7 +2324,7 @@ ENABLE_PREPROCESSING   = YES
 # The default value is: NO.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-MACRO_EXPANSION        = NO
+MACRO_EXPANSION        = YES
 
 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
 # the macro expansion is limited to the macros specified with the PREDEFINED and
diff --git a/doc/source/cpp/index.rst b/doc/source/cpp/index.rst
new file mode 100644
index 0000000..1be428a
--- /dev/null
+++ b/doc/source/cpp/index.rst
@@ -0,0 +1,9 @@
+C++ interface
+===============
+
+Introduction
+------------
+
+The abstract base class defining the public C++ interface of teqp is documented in :teqp:`AbstractModel`.  This interface was developed because re-compilation of the core of ``teqp`` is VERY slow, due to the heavy use of templates, which makes the code very flexible, but difficult to work with when doing development. Especially users that would like to only use the library but not be forced to pay the price of recompilation benefit from this approach.
+
+The models that are allowed in this abstract interface are defined in :teqp:`AllowedModels`.  A new model instance can be created by passing properly formatted JSON data structure to the :teqp:`make_model` function.
\ No newline at end of file
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 24647d1..3331d72 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -6,6 +6,7 @@ Welcome to teqp's documentation!
    :caption: Contents:
 
    getting_started/index
+   cpp/index
    models/index
    derivs/index
    algorithms/index
-- 
GitLab