Skip to content

Commit 6249c47

Browse files
committed
Added Doxygen, Sphinx and Woboq targets
1 parent d74f979 commit 6249c47

8 files changed

+204
-16
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,4 @@ before_script:
4444
- cd build
4545
- cmake .. ${CMAKE_OPTIONS} -DGLTFPP_BUILD_TESTS=1
4646

47-
script: make gltfpp_test && test/gltfpp_test
47+
script: make -j2 gltfpp_test && test/gltfpp_test

CMakeLists.txt

+47-15
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,53 @@ if(EMSCRIPTEN)
2020
option(GLTFPP_WEBASSEMBLY "Generate WebAssembly instead of asm.js" ON)
2121
endif()
2222

23-
# find_package(Doxygen)
24-
# if(Doxygen_FOUND)
25-
# file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc)
26-
# if(DOXYGEN_DOT_FOUND)
27-
# set(USE_DOT "YES")
28-
# else()
29-
# set(USE_DOT "NO")
30-
# endif()
31-
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY)
32-
# add_custom_target(gltfpp_doc
33-
# ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
34-
# SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in"
35-
# DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
36-
# WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc")
37-
# endif()
23+
find_package(Sphinx)
24+
find_package(Doxygen)
25+
if(Doxygen_FOUND AND Sphinx_FOUND)
26+
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/docs")
27+
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doxy")
28+
if(DOXYGEN_DOT_FOUND)
29+
set(USE_DOT "YES")
30+
else()
31+
set(USE_DOT "NO")
32+
endif()
33+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY)
34+
add_custom_target(gltfpp_doxygen
35+
${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
36+
SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in"
37+
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
38+
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doxy")
39+
40+
set(SPHINX_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/docs/_build")
41+
set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/docs/_doctrees")
42+
set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/docs/html")
43+
44+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/docs/conf.py.in" "${SPHINX_BUILD_DIR}/conf.py" @ONLY)
45+
46+
add_custom_target(gltfpp_docs
47+
${SPHINX_EXECUTABLE}
48+
-q -b html
49+
-c "${SPHINX_BUILD_DIR}"
50+
-d "${SPHINX_CACHE_DIR}"
51+
"${CMAKE_CURRENT_SOURCE_DIR}/docs"
52+
"${SPHINX_HTML_DIR}"
53+
DEPENDS gltfpp_doxygen
54+
)
55+
endif()
56+
57+
find_package(WoboqCodebrowser)
58+
if(WoboqCodebrowser_FOUND)
59+
add_custom_target(gltfpp_codebrowser
60+
COMMAND ${WOBOQ_GENERATOR_EXECUTABLE}
61+
-b "${CMAKE_CURRENT_BINARY_DIR}"
62+
-a -o "${CMAKE_CURRENT_BINARY_DIR}/codebrowser/browser"
63+
-p "${PROJECT_NAME}:${CMAKE_CURRENT_SOURCE_DIR}"
64+
COMMAND ${WOBOQ_INDEX_GENERATOR_EXECUTABLE}
65+
"${CMAKE_CURRENT_BINARY_DIR}/codebrowser/browser"
66+
COMMAND ${CMAKE_COMMAND}
67+
-E copy_directory ${WOBOQ_DATA_DIR} "${CMAKE_CURRENT_BINARY_DIR}/codebrowser/data"
68+
)
69+
endif()
3870

3971
add_subdirectory(3rdparty)
4072
add_subdirectory(gltfpp)

Doxyfile.in

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
PROJECT_NAME = @PROJECT_NAME@
2+
PROJECT_NUMBER = "@PROJECT_VERSION@"
3+
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/gltfpp
4+
INPUT += @CMAKE_CURRENT_SOURCE_DIR@/README.md
5+
USE_MDFILE_AS_MAINPAGE = README.md
6+
RECURSIVE = YES
7+
8+
FULL_PATH_NAMES = YES
9+
STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@/gltfpp
10+
11+
CLANG_ASSISTED_PARSING = YES
12+
#CLANG_COMPILATION_DATABASE_PATH = @PROJECT_BINARY_DIR@
13+
HAVE_DOT = @USE_DOT@
14+
DOT_IMAGE_FORMAT=svg
15+
EXTRACT_ALL = YES
16+
EXTRACT_PRIVATE = YES
17+
EXTRACT_PACKAGE = YES
18+
EXTRACT_STATIC = YES
19+
CLASS_GRAPH = YES
20+
COLLABORATION_GRAPH = YES
21+
TEMPLATE_RELATIONS = YES
22+
23+
ENABLE_PREPROCESSING = YES
24+
MACRO_EXPANSION = YES
25+
EXPAND_ONLY_PREDEF = NO
26+
JAVADOC_AUTOBRIEF = YES
27+
28+
USE_MATHJAX = YES
29+
30+
GENERATE_LATEX = NO
31+
GENERATE_HTML = YES
32+
GENERATE_XML = YES

cmake/FindSphinx.cmake

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
find_program(SPHINX_EXECUTABLE sphinx-build
2+
HINTS $ENV{SPHINX_DIR}
3+
PATH_SUFFIXES bin
4+
)
5+
6+
include(FindPackageHandleStandardArgs)
7+
8+
find_package_handle_standard_args(Sphinx DEFAULT_MSG SPHINX_EXECUTABLE)
9+
mark_as_advanced(SPHINX_EXECUTABLE)

cmake/FindWoboqCodebrowser.cmake

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
find_program(WOBOQ_GENERATOR_EXECUTABLE codebrowser_generator
2+
HINTS $ENV{WOBOQ_GENERATOR_DIR} $ENV{WOBOQ_DIR}
3+
PATH_SUFFIXES bin
4+
)
5+
6+
find_program(WOBOQ_INDEX_GENERATOR_EXECUTABLE codebrowser_indexgenerator
7+
HINTS $ENV{WOBOQ_GENERATOR_DIR} $ENV{WOBOQ_DIR}
8+
PATH_SUFFIXES bin
9+
)
10+
11+
find_path(WOBOQ_DATA_DIR codebrowser.js
12+
HINTS $ENV{WOBOQ_DATA_DIR} "$ENV{WOBOQ_DIR}/data"
13+
)
14+
15+
include(FindPackageHandleStandardArgs)
16+
17+
find_package_handle_standard_args(WoboqCodebrowser DEFAULT_MSG WOBOQ_GENERATOR_EXECUTABLE WOBOQ_INDEX_GENERATOR_EXECUTABLE WOBOQ_DATA_DIR)
18+
mark_as_advanced(WOBOQ_GENERATOR_EXECUTABLE WOBOQ_INDEX_GENERATOR_EXECUTABLE WOBOQ_DATA_DIR)

docs/conf.py.in

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
import sphinx_rtd_theme
4+
5+
# -- General configuration ------------------------------------------------
6+
7+
# If your documentation needs a minimal Sphinx version, state it here.
8+
#
9+
# needs_sphinx = '1.0'
10+
11+
# Add any Sphinx extension module names here, as strings. They can be
12+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
13+
# ones.
14+
extensions = ['sphinx.ext.mathjax'] # 'breathe'
15+
16+
# Add any paths that contain templates here, relative to this directory.
17+
templates_path = ['@PROJECT_SOURCE_DIR@/docs/_templates']
18+
19+
# The suffix(es) of source filenames.
20+
# You can specify multiple suffix as a list of string:
21+
#
22+
# source_suffix = ['.rst', '.md']
23+
source_suffix = '.rst'
24+
25+
# The master toctree document.
26+
master_doc = 'index'
27+
28+
# General information about the project.
29+
project = '@PROJECT_NAME@'
30+
copyright = '2017, Morris Hafner'
31+
author = 'Morris Hafner'
32+
33+
breathe_projects = { "@PROJECT_NAME@": "@PROJECT_BINARY_DIR@/doxy/xml" }
34+
breathe_default_project = "@PROJECT_NAME@"
35+
36+
# The version info for the project you're documenting, acts as replacement for
37+
# |version| and |release|, also used in various other places throughout the
38+
# built documents.
39+
#
40+
# The short X.Y version.
41+
version = '@PROJECT_VERSION@'
42+
# The full version, including alpha/beta/rc tags.
43+
release = '@PROJECT_VERSION@'
44+
45+
# The language for content autogenerated by Sphinx. Refer to documentation
46+
# for a list of supported languages.
47+
#
48+
# This is also used if you do content translation via gettext catalogs.
49+
# Usually you set "language" from the command line for these cases.
50+
language = None
51+
52+
# List of patterns, relative to source directory, that match files and
53+
# directories to ignore when looking for source files.
54+
# This patterns also effect to html_static_path and html_extra_path
55+
exclude_patterns = []
56+
57+
# The name of the Pygments (syntax highlighting) style to use.
58+
pygments_style = 'sphinx'
59+
60+
# If true, `todo` and `todoList` produce output, else they produce nothing.
61+
todo_include_todos = False
62+
63+
64+
# -- Options for HTML output ----------------------------------------------
65+
66+
# The theme to use for HTML and HTML Help pages. See the documentation for
67+
# a list of builtin themes.
68+
#
69+
html_theme = 'sphinx_rtd_theme'
70+
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
71+
72+
# Theme options are theme-specific and customize the look and feel of a theme
73+
# further. For a list of options available for each theme, see the
74+
# documentation.
75+
#
76+
# html_theme_options = {}
77+
78+
# Add any paths that contain custom static files (such as style sheets) here,
79+
# relative to this directory. They are copied after the builtin static files,
80+
# so a file named "default.css" will overwrite the builtin "default.css".
81+
html_static_path = ['@PROJECT_SOURCE_DIR@/docs/_static']
82+
83+
84+
# -- Options for HTMLHelp output ------------------------------------------
85+
86+
# Output file base name for HTML help builder.
87+
htmlhelp_basename = '@PROJECT_NAME@doc'

docs/index.rst

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Welcome to gltfpp's documentation!
2+
==================================
3+
4+
.. toctree::
5+
:maxdepth: 2
6+
7+
test

docs/test.rst

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
=============
2+
Test Document
3+
=============

0 commit comments

Comments
 (0)