Skip to content

Commit e09938f

Browse files
committed
Add Doxygen
1 parent 5dc624d commit e09938f

4 files changed

Lines changed: 376 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,4 @@ endif()
4646

4747
add_subdirectory(src/lib)
4848
add_subdirectory(src/test)
49+
add_subdirectory(doc)

doc/CMakeLists.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
cmake_minimum_required(VERSION 3.18)
2+
3+
find_package(Doxygen)
4+
5+
if(DOXYGEN_FOUND)
6+
configure_file(
7+
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
8+
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
9+
@ONLY
10+
)
11+
12+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen-awesome-css)
13+
14+
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/doxygen-awesome-css/
15+
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/doxygen-awesome-css/
16+
FILES_MATCHING PATTERN "*.css" PATTERN "*.js"
17+
)
18+
19+
add_custom_target(docs
20+
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
21+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
22+
COMMENT "Generating API documentation with Doxygen"
23+
VERBATIM
24+
)
25+
26+
add_dependencies(docs fb-cpp)
27+
28+
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs/
29+
DESTINATION share/doc/fb-cpp
30+
OPTIONAL
31+
)
32+
else()
33+
message(STATUS "Doxygen not found - documentation target will not be available")
34+
endif()

doc/Doxyfile

Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
# Doxyfile configuration for fb-cpp project
2+
3+
#---------------------------------------------------------------------------
4+
# Project related configuration options
5+
#---------------------------------------------------------------------------
6+
DOXYFILE_ENCODING = UTF-8
7+
PROJECT_NAME = "fb-cpp"
8+
PROJECT_NUMBER = "0.0.1"
9+
PROJECT_BRIEF = "C++ wrapper for Firebird database API"
10+
PROJECT_LOGO =
11+
OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/docs
12+
CREATE_SUBDIRS = NO
13+
ALLOW_UNICODE_NAMES = NO
14+
OUTPUT_LANGUAGE = English
15+
BRIEF_MEMBER_DESC = YES
16+
REPEAT_BRIEF = YES
17+
ABBREVIATE_BRIEF = "The $name class" \
18+
"The $name widget" \
19+
"The $name file" \
20+
is \
21+
provides \
22+
specifies \
23+
contains \
24+
represents \
25+
a \
26+
an \
27+
the
28+
ALWAYS_DETAILED_SEC = NO
29+
INLINE_INHERITED_MEMB = NO
30+
FULL_PATH_NAMES = YES
31+
STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@
32+
STRIP_FROM_INC_PATH =
33+
SHORT_NAMES = NO
34+
JAVADOC_AUTOBRIEF = YES
35+
QT_AUTOBRIEF = NO
36+
MULTILINE_CPP_IS_BRIEF = NO
37+
INHERIT_DOCS = YES
38+
SEPARATE_MEMBER_PAGES = NO
39+
TAB_SIZE = 4
40+
ALIASES =
41+
OPTIMIZE_OUTPUT_FOR_C = NO
42+
OPTIMIZE_OUTPUT_JAVA = NO
43+
OPTIMIZE_FOR_FORTRAN = NO
44+
OPTIMIZE_OUTPUT_VHDL = NO
45+
EXTENSION_MAPPING =
46+
MARKDOWN_SUPPORT = YES
47+
TOC_INCLUDE_HEADINGS = 0
48+
AUTOLINK_SUPPORT = YES
49+
BUILTIN_STL_SUPPORT = YES
50+
CPP_CLI_SUPPORT = NO
51+
SIP_SUPPORT = NO
52+
IDL_PROPERTY_SUPPORT = YES
53+
DISTRIBUTE_GROUP_DOC = NO
54+
GROUP_GRAPHS = YES
55+
DISABLE_INDEX = NO
56+
ENUM_VALUES_PER_LINE = 4
57+
TREEVIEW_WIDTH = 250
58+
EXT_LINKS_IN_WINDOW = NO
59+
FORMULA_FONTSIZE = 10
60+
USE_MDFILE_AS_MAINPAGE = README.md
61+
VERBATIM_HEADERS = YES
62+
63+
#---------------------------------------------------------------------------
64+
# Build related configuration options
65+
#---------------------------------------------------------------------------
66+
EXTRACT_ALL = NO
67+
EXTRACT_PRIVATE = NO
68+
EXTRACT_PRIV_VIRTUAL = NO
69+
EXTRACT_PACKAGE = NO
70+
EXTRACT_STATIC = NO
71+
EXTRACT_LOCAL_CLASSES = YES
72+
EXTRACT_LOCAL_METHODS = NO
73+
EXTRACT_ANON_NSPACES = NO
74+
HIDE_UNDOC_MEMBERS = NO
75+
HIDE_UNDOC_CLASSES = NO
76+
HIDE_FRIEND_COMPOUNDS = NO
77+
HIDE_IN_BODY_DOCS = NO
78+
INTERNAL_DOCS = NO
79+
CASE_SENSE_NAMES = YES
80+
HIDE_SCOPE_NAMES = NO
81+
HIDE_COMPOUND_REFERENCE= NO
82+
SHOW_HEADERFILE = YES
83+
SHOW_INCLUDE_FILES = YES
84+
SHOW_GROUPED_MEMB_INC = NO
85+
FORCE_LOCAL_INCLUDES = NO
86+
INLINE_INFO = YES
87+
SORT_MEMBER_DOCS = YES
88+
SORT_BRIEF_DOCS = NO
89+
SORT_MEMBERS_CTORS_1ST = NO
90+
SORT_GROUP_NAMES = NO
91+
SORT_BY_SCOPE_NAME = NO
92+
STRICT_PROTO_MATCHING = NO
93+
GENERATE_TODOLIST = YES
94+
GENERATE_TESTLIST = YES
95+
GENERATE_BUGLIST = YES
96+
GENERATE_DEPRECATEDLIST= YES
97+
ENABLED_SECTIONS =
98+
MAX_INITIALIZER_LINES = 30
99+
SHOW_USED_FILES = YES
100+
SHOW_FILES = YES
101+
SHOW_NAMESPACES = YES
102+
FILE_VERSION_FILTER =
103+
LAYOUT_FILE =
104+
CITE_BIB_FILES =
105+
106+
#---------------------------------------------------------------------------
107+
# Input related configuration options
108+
#---------------------------------------------------------------------------
109+
INPUT = @PROJECT_SOURCE_DIR@/src/lib \
110+
@PROJECT_SOURCE_DIR@/README.md
111+
INPUT_ENCODING = UTF-8
112+
FILE_PATTERNS = *.c \
113+
*.cc \
114+
*.cxx \
115+
*.cpp \
116+
*.c++ \
117+
*.java \
118+
*.ii \
119+
*.ixx \
120+
*.ipp \
121+
*.i++ \
122+
*.inl \
123+
*.idl \
124+
*.odl \
125+
*.h \
126+
*.hh \
127+
*.hxx \
128+
*.hpp \
129+
*.h++ \
130+
*.cs \
131+
*.d \
132+
*.php \
133+
*.php4 \
134+
*.php5 \
135+
*.phtml \
136+
*.inc \
137+
*.m \
138+
*.markdown \
139+
*.md \
140+
*.mm \
141+
*.dox \
142+
*.py \
143+
*.pyw \
144+
*.f90 \
145+
*.f95 \
146+
*.f03 \
147+
*.f08 \
148+
*.f \
149+
*.for \
150+
*.tcl \
151+
*.vhd \
152+
*.vhdl \
153+
*.ucf \
154+
*.qsf
155+
RECURSIVE = YES
156+
EXCLUDE =
157+
EXCLUDE_SYMLINKS = NO
158+
EXCLUDE_PATTERNS = */src/lib/fb-api/firebird/*
159+
EXCLUDE_SYMBOLS = fbcpp::impl \
160+
fbcpp::impl::*
161+
EXAMPLE_PATH =
162+
EXAMPLE_PATTERNS = *
163+
EXAMPLE_RECURSIVE = NO
164+
IMAGE_PATH =
165+
INPUT_FILTER =
166+
FILTER_PATTERNS =
167+
FILTER_SOURCE_FILES = NO
168+
FILTER_SOURCE_PATTERNS =
169+
USE_MDFILE_AS_MAINPAGE = README.md
170+
171+
#---------------------------------------------------------------------------
172+
# Source browsing related configuration options
173+
#---------------------------------------------------------------------------
174+
SOURCE_BROWSER = YES
175+
INLINE_SOURCES = NO
176+
STRIP_CODE_COMMENTS = YES
177+
REFERENCED_BY_RELATION = NO
178+
REFERENCES_RELATION = NO
179+
REFERENCES_LINK_SOURCE = YES
180+
SOURCE_TOOLTIPS = YES
181+
USE_HTAGS = NO
182+
VERBATIM_HEADERS = YES
183+
CLANG_ASSISTED_PARSING = NO
184+
CLANG_ADD_INC_PATHS = YES
185+
CLANG_OPTIONS =
186+
CLANG_DATABASE_PATH =
187+
188+
#---------------------------------------------------------------------------
189+
# Preprocessor related configuration options
190+
#---------------------------------------------------------------------------
191+
ENABLE_PREPROCESSING = YES
192+
MACRO_EXPANSION = NO
193+
EXPAND_ONLY_PREDEF = NO
194+
SEARCH_INCLUDES = YES
195+
INCLUDE_PATH =
196+
INCLUDE_FILE_PATTERNS =
197+
PREDEFINED = FB_CPP_USE_BOOST_MULTIPRECISION=1 \
198+
FB_CPP_USE_BOOST_DLL=1
199+
EXPAND_AS_DEFINED =
200+
SKIP_FUNCTION_MACROS = YES
201+
202+
#---------------------------------------------------------------------------
203+
# External references related configuration options
204+
#---------------------------------------------------------------------------
205+
TAGFILES =
206+
GENERATE_TAGFILE =
207+
ALLEXTERNALS = NO
208+
EXTERNAL_GROUPS = YES
209+
EXTERNAL_PAGES = YES
210+
211+
#---------------------------------------------------------------------------
212+
# Dot tool related configuration options
213+
#---------------------------------------------------------------------------
214+
DIA_PATH =
215+
HIDE_UNDOC_RELATIONS = YES
216+
HAVE_DOT = YES
217+
DOT_NUM_THREADS = 0
218+
DOT_FONTPATH =
219+
CLASS_GRAPH = YES
220+
COLLABORATION_GRAPH = YES
221+
GROUP_GRAPHS = YES
222+
UML_LOOK = NO
223+
UML_LIMIT_NUM_FIELDS = 10
224+
TEMPLATE_RELATIONS = NO
225+
INCLUDE_GRAPH = YES
226+
INCLUDED_BY_GRAPH = YES
227+
CALL_GRAPH = NO
228+
CALLER_GRAPH = NO
229+
GRAPHICAL_HIERARCHY = YES
230+
DIRECTORY_GRAPH = YES
231+
DOT_IMAGE_FORMAT = png
232+
INTERACTIVE_SVG = NO
233+
DOT_PATH =
234+
DOTFILE_DIRS =
235+
MSCFILE_DIRS =
236+
DIAFILE_DIRS =
237+
PLANTUML_JAR_PATH =
238+
PLANTUML_CFG_FILE =
239+
PLANTUML_INCLUDE_PATH =
240+
DOT_GRAPH_MAX_NODES = 50
241+
MAX_DOT_GRAPH_DEPTH = 0
242+
DOT_MULTI_TARGETS = NO
243+
GENERATE_LEGEND = YES
244+
DOT_CLEANUP = YES
245+
246+
247+
248+
GENERATE_TREEVIEW = YES
249+
FULL_SIDEBAR = NO
250+
HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_BINARY_DIR@/doxygen-awesome-css/doxygen-awesome.css \
251+
@CMAKE_CURRENT_BINARY_DIR@/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css
252+
HTML_EXTRA_FILES = @CMAKE_CURRENT_BINARY_DIR@/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js \
253+
@CMAKE_CURRENT_BINARY_DIR@/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js \
254+
@CMAKE_CURRENT_BINARY_DIR@/doxygen-awesome-css/doxygen-awesome-interactive-toc.js \
255+
@CMAKE_CURRENT_BINARY_DIR@/doxygen-awesome-css/doxygen-awesome-paragraph-link.js \
256+
@CMAKE_CURRENT_BINARY_DIR@/doxygen-awesome-css/doxygen-awesome-tabs.js
257+
HTML_COLORSTYLE = LIGHT
258+
HTML_HEADER = header.html
259+
HTML_COPY_CLIPBOARD = NO

doc/header.html

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<!-- HTML header for doxygen 1.9.8-->
2+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3+
<html xmlns="http://www.w3.org/1999/xhtml" lang="$langISO">
4+
<head>
5+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6+
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
7+
<meta name="generator" content="Doxygen $doxygenversion"/>
8+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
9+
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
10+
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
11+
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
12+
<!--BEGIN DISABLE_INDEX-->
13+
<!--BEGIN FULL_SIDEBAR-->
14+
<script type="text/javascript">var page_layout=1;</script>
15+
<!--END FULL_SIDEBAR-->
16+
<!--END DISABLE_INDEX-->
17+
<script type="text/javascript" src="$relpath^jquery.js"></script>
18+
<script type="text/javascript" src="$relpath^dynsections.js"></script>
19+
$treeview
20+
$search
21+
$mathjax
22+
$darkmode
23+
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
24+
$extrastylesheet
25+
26+
<!-- Doxygen Awesome CSS -->
27+
<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
28+
<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
29+
<script type="text/javascript">
30+
DoxygenAwesomeDarkModeToggle.init()
31+
DoxygenAwesomeFragmentCopyButton.init()
32+
</script>
33+
</head>
34+
<body>
35+
<!--BEGIN DISABLE_INDEX-->
36+
<!--BEGIN FULL_SIDEBAR-->
37+
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
38+
<!--END FULL_SIDEBAR-->
39+
<!--END DISABLE_INDEX-->
40+
41+
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
42+
43+
<!--BEGIN TITLEAREA-->
44+
<div id="titlearea">
45+
<table cellspacing="0" cellpadding="0">
46+
<tbody>
47+
<tr id="projectrow">
48+
<!--BEGIN PROJECT_LOGO-->
49+
<td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
50+
<!--END PROJECT_LOGO-->
51+
<!--BEGIN PROJECT_NAME-->
52+
<td id="projectalign">
53+
<div id="projectname">$projectname<!--BEGIN PROJECT_NUMBER--><span id="projectnumber">&#160;$projectnumber</span><!--END PROJECT_NUMBER-->
54+
</div>
55+
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
56+
</td>
57+
<!--END PROJECT_NAME-->
58+
<!--BEGIN !PROJECT_NAME-->
59+
<!--BEGIN PROJECT_BRIEF-->
60+
<td>
61+
<div id="projectbrief">$projectbrief</div>
62+
</td>
63+
<!--END PROJECT_BRIEF-->
64+
<!--END !PROJECT_NAME-->
65+
<!--BEGIN DISABLE_INDEX-->
66+
<!--BEGIN SEARCHENGINE-->
67+
<!--BEGIN !FULL_SIDEBAR-->
68+
<td>$searchbox</td>
69+
<!--END !FULL_SIDEBAR-->
70+
<!--END SEARCHENGINE-->
71+
<!--END DISABLE_INDEX-->
72+
</tr>
73+
<!--BEGIN SEARCHENGINE-->
74+
<!--BEGIN FULL_SIDEBAR-->
75+
<tr><td colspan="2">$searchbox</td></tr>
76+
<!--END FULL_SIDEBAR-->
77+
<!--END SEARCHENGINE-->
78+
</tbody>
79+
</table>
80+
</div>
81+
<!--END TITLEAREA-->
82+
<!-- end header part -->

0 commit comments

Comments
 (0)