Skip to content

Commit eceb030

Browse files
author
Hrvoje Juric
committed
docs testing done
1 parent 7737135 commit eceb030

File tree

7 files changed

+77
-111
lines changed

7 files changed

+77
-111
lines changed

CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ project(
88
env
99
DESCRIPTION "Environment for all of my C++ projects."
1010
VERSION 0.2.0
11+
HOMEPAGE_URL "https://github.com/Hrle97/cpp_env17"
1112
LANGUAGES C CXX)
1213

1314
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
1415

1516
include(EnvFunc)
1617

17-
env_project_default_options()
18+
env_project(COPYRIGHT "2021, Hrle97" AUTHOR "Hrle97")
1819

1920
# Fetch -----------------------------------------------------------------------
2021

@@ -72,4 +73,8 @@ env_project_targets(
7273
TEST_DEPS
7374
env::test
7475
BENCH_DEPS
75-
env::bench)
76+
env::bench
77+
DOC_AUTHOR
78+
"Hrle97"
79+
DOC_COPYRIGHT
80+
"2021, Hrle97")

cmake/EnvFunc.cmake

Lines changed: 41 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,8 +1713,9 @@ endfunction()
17131713

17141714
# Initialization --------------------------------------------------------------
17151715

1716-
function(env_project_default_options)
1716+
function(env_project)
17171717
env_use_upper_project_name()
1718+
17181719
env_log(---!!!--- Initializing project \"${PROJECT_NAME}\". ---!!!---)
17191720

17201721
if(CMAKE_BUILD_TYPE STREQUAL Debug)
@@ -2050,6 +2051,8 @@ function(env_project_doc)
20502051
env_use_upper_project_name()
20512052
env_use_lower_project_name()
20522053

2054+
cmake_parse_arguments(PARSED "" "AUTHOR;COPYRIGHT" "" ${ARGN})
2055+
20532056
if(${UPPER_PROJECT_NAME}_BUILD_DOC)
20542057
env_log(-!- Adding doc for \"${PROJECT_NAME}\". -!-)
20552058

@@ -2060,26 +2063,40 @@ function(env_project_doc)
20602063
elseif(
20612064
DOXYGEN_FOUND
20622065
AND SPHINX_FOUND
2063-
AND EXISTS "${PROJECT_SOURCE_DIR}/doc/conf.py"
2064-
AND EXISTS "${PROJECT_SOURCE_DIR}/doc/index.rst")
2066+
AND EXISTS "${PROJECT_SOURCE_DIR}/doc/conf.py.in"
2067+
AND EXISTS "${PROJECT_SOURCE_DIR}/doc/index.rst.in")
20652068
env_log(Adding doc via Doxygen and Sphinx.)
20662069

2067-
file(GLOB_RECURSE _doc_sources "${PROJECT_SOURCE_DIR}/include/*.hpp")
20682070
set(DOXYGEN_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/.doc/doxygen/")
20692071
set(DOXYGEN_GENERATE_XML "YES")
20702072
doxygen_add_docs(
2071-
${LOWER_PROJECT_NAME}_doxygen ${_doc_sources} USE_STAMP_FILE
2072-
COMMENT "Generate Breathe sources for Sphinx with Doxygen.")
2073-
2073+
${LOWER_PROJECT_NAME}_doxygen "${PROJECT_SOURCE_DIR}/include/"
2074+
COMMENT "Generate Breathe xml sources for Sphinx with Doxygen.")
2075+
2076+
set(PROJECT_AUTHOR "${PARSED_AUTHOR}")
2077+
set(PROJECT_COPYRIGHT "${PARSED_COPYRIGHT}")
2078+
configure_file("${PROJECT_SOURCE_DIR}/doc/conf.py.in"
2079+
"${PROJECT_SOURCE_DIR}/.doc/conf/conf.py" @ONLY)
2080+
configure_file("${PROJECT_SOURCE_DIR}/doc/index.rst.in"
2081+
"${PROJECT_SOURCE_DIR}/.doc/conf/index.rst" @ONLY)
20742082
add_custom_command(
20752083
OUTPUT "${PROJECT_SOURCE_DIR}/.doc/sphinx/index.html"
2076-
COMMAND ${SPHINX_EXECUTABLE} "${PROJECT_SOURCE_DIR}/doc/"
2077-
"${PROJECT_SOURCE_DIR}/.doc/sphinx/"
2078-
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/doc/"
2084+
COMMAND
2085+
${SPHINX_EXECUTABLE} "${PROJECT_SOURCE_DIR}/.doc/conf/"
2086+
"${PROJECT_SOURCE_DIR}/.doc/sphinx/" "-Dproject=${PROJECT_NAME}"
2087+
"-Dauthor=${PROJECT_AUTHOR}" "-Dcopyright=${PROJECT_COPYRIGHT}"
2088+
"-Drelease=${PROJECT_VERSION}" "-Dextensions=breathe"
2089+
"-Dbreathe_projects.${PROJECT_NAME}=${PROJECT_SOURCE_DIR}/.doc/doxygen/xml/"
2090+
"-Dbreathe_default_project=${PROJECT_NAME}"
2091+
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
20792092
DEPENDS ${LOWER_PROJECT_NAME}_doxygen
2080-
"${PROJECT_SOURCE_DIR}/doc/index.rst"
2081-
MAIN_DEPENDENCY "${PROJECT_SOURCE_DIR}/doc/conf.py"
2082-
COMMENT "Generate doc with Sphinx.")
2093+
"${PROJECT_SOURCE_DIR}/.doc/doxygen/xml/index.xml"
2094+
"${PROJECT_SOURCE_DIR}/.doc/conf/index.rst"
2095+
"${PROJECT_SOURCE_DIR}/.doc/conf/conf.py"
2096+
COMMENT "Generate doc with Sphinx."
2097+
VERBATIM)
2098+
unset(PROJECT_AUTHOR)
2099+
unset(PROJECT_COPYRIGHT)
20832100

20842101
add_custom_target(${LOWER_PROJECT_NAME}_sphinx
20852102
DEPENDS "${PROJECT_SOURCE_DIR}/.doc/sphinx/index.html")
@@ -2090,8 +2107,9 @@ function(env_project_doc)
20902107
${CMAKE_COMMAND} -E copy_directory
20912108
"${PROJECT_SOURCE_DIR}/.doc/sphinx/"
20922109
"${PROJECT_SOURCE_DIR}/.doc/build/"
2093-
MAIN_DEPENDENCY "${PROJECT_SOURCE_DIR}/.doc/sphinx/index.xml"
2094-
COMMENT "Copying Sphinx build into the doc build directory.")
2110+
MAIN_DEPENDENCY "${PROJECT_SOURCE_DIR}/.doc/sphinx/index.html"
2111+
COMMENT "Copying Sphinx build into the doc build directory."
2112+
VERBATIM)
20952113

20962114
add_custom_target(${LOWER_PROJECT_NAME}_doc
20972115
DEPENDS "${PROJECT_SOURCE_DIR}/.doc/build/index.html")
@@ -2109,10 +2127,10 @@ function(env_project_doc)
21092127
elseif(DOXYGEN_FOUND)
21102128
env_log(Adding doc via doxygen.)
21112129

2112-
file(GLOB_RECURSE _doc_sources "${PROJECT_SOURCE_DIR}/include/*.hpp")
21132130
set(DOXYGEN_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/.doc/doxygen/")
2114-
doxygen_add_docs(${LOWER_PROJECT_NAME}_doxygen ${_doc_sources}
2115-
USE_STAMP_FILE COMMENT "Generate doc with doxygen.")
2131+
doxygen_add_docs(
2132+
${LOWER_PROJECT_NAME}_doxygen "${PROJECT_SOURCE_DIR}/include/"
2133+
COMMENT "Generate doc with doxygen.")
21162134

21172135
add_custom_command(
21182136
OUTPUT "${PROJECT_SOURCE_DIR}/.doc/build/index.html"
@@ -2121,7 +2139,8 @@ function(env_project_doc)
21212139
"${PROJECT_SOURCE_DIR}/.doc/doxygen/html/"
21222140
"${PROJECT_SOURCE_DIR}/.doc/build/"
21232141
DEPENDS ${LOWER_PROJECT_NAME}_doxygen
2124-
COMMENT "Copying Doxygen build into the doc build directory.")
2142+
COMMENT "Copying Doxygen build into the doc build directory."
2143+
VERBATIM)
21252144

21262145
add_custom_target(${LOWER_PROJECT_NAME}_doc
21272146
DEPENDS "${PROJECT_SOURCE_DIR}/.doc/build/index.html")
@@ -2174,7 +2193,7 @@ endfunction()
21742193

21752194
function(env_project_targets)
21762195
env_use_lower_project_name()
2177-
cmake_parse_arguments(PARSED "SHARE_PCH" "SOURCES"
2196+
cmake_parse_arguments(PARSED "SHARE_PCH" "SOURCES;DOC_AUTHOR;DOC_COPYRIGHT"
21782197
"DEPS;TEST_DEPS;BENCH_DEPS" ${ARGN})
21792198

21802199
env_log(
@@ -2230,7 +2249,8 @@ function(env_project_targets)
22302249
env_project_apps()
22312250

22322251
env_project_examples()
2233-
env_project_doc()
2252+
env_project_doc(AUTHOR "${PARSED_DOC_AUTHOR}" COPYRIGHT
2253+
"${PARSED_DOC_COPYRIGHT}")
22342254

22352255
env_project_extras()
22362256
endfunction()

doc/conf.py

Lines changed: 0 additions & 64 deletions
This file was deleted.

doc/conf.py.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import os
2+
3+
html_theme = "sphinx_rtd_theme"
4+
5+
breathe_show_define_initializer = True

doc/index.rst

Lines changed: 0 additions & 23 deletions
This file was deleted.

doc/index.rst.in

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Welcome to @PROJECT_NAME@ documentation!
2+
========================================
3+
4+
.. toctree::
5+
:maxdepth: 2
6+
:caption: Contents:
7+
8+
.. doxygenindex::
9+
:project: @PROJECT_NAME@
10+
11+
12+
13+
Indices and tables
14+
==================
15+
16+
* :ref:`genindex`
17+
* :ref:`modindex`
18+
* :ref:`search`

include/env/env.hpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,14 @@
1818
#define ENV_HIDDEN
1919
#endif
2020

21-
21+
/**
22+
* @brief Main namespace with a bit of sugar.
23+
*/
2224
namespace env
2325
{
26+
/**
27+
* @brief Check whether env is linking properly.
28+
*/
2429
ENV_VISIBLE bool check() noexcept;
2530

2631

0 commit comments

Comments
 (0)