@@ -1713,8 +1713,9 @@ endfunction()
1713
1713
1714
1714
# Initialization --------------------------------------------------------------
1715
1715
1716
- function (env_project_default_options )
1716
+ function (env_project )
1717
1717
env_use_upper_project_name()
1718
+
1718
1719
env_log(---!!!--- Initializing project \"${PROJECT_NAME} \". ---!!!---)
1719
1720
1720
1721
if (CMAKE_BUILD_TYPE STREQUAL Debug)
@@ -2050,6 +2051,8 @@ function(env_project_doc)
2050
2051
env_use_upper_project_name()
2051
2052
env_use_lower_project_name()
2052
2053
2054
+ cmake_parse_arguments (PARSED "" "AUTHOR;COPYRIGHT" "" ${ARGN} )
2055
+
2053
2056
if (${UPPER_PROJECT_NAME} _BUILD_DOC)
2054
2057
env_log(-!- Adding doc for \"${PROJECT_NAME} \". -!-)
2055
2058
@@ -2060,26 +2063,40 @@ function(env_project_doc)
2060
2063
elseif (
2061
2064
DOXYGEN_FOUND
2062
2065
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 " )
2065
2068
env_log(Adding doc via Doxygen and Sphinx.)
2066
2069
2067
- file (GLOB_RECURSE _doc_sources "${PROJECT_SOURCE_DIR} /include/*.hpp" )
2068
2070
set (DOXYGEN_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR} /.doc/doxygen/" )
2069
2071
set (DOXYGEN_GENERATE_XML "YES" )
2070
2072
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)
2074
2082
add_custom_command (
2075
2083
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} "
2079
2092
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)
2083
2100
2084
2101
add_custom_target (${LOWER_PROJECT_NAME} _sphinx
2085
2102
DEPENDS "${PROJECT_SOURCE_DIR} /.doc/sphinx/index.html" )
@@ -2090,8 +2107,9 @@ function(env_project_doc)
2090
2107
${CMAKE_COMMAND} -E copy_directory
2091
2108
"${PROJECT_SOURCE_DIR} /.doc/sphinx/"
2092
2109
"${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 )
2095
2113
2096
2114
add_custom_target (${LOWER_PROJECT_NAME} _doc
2097
2115
DEPENDS "${PROJECT_SOURCE_DIR} /.doc/build/index.html" )
@@ -2109,10 +2127,10 @@ function(env_project_doc)
2109
2127
elseif (DOXYGEN_FOUND)
2110
2128
env_log(Adding doc via doxygen.)
2111
2129
2112
- file (GLOB_RECURSE _doc_sources "${PROJECT_SOURCE_DIR} /include/*.hpp" )
2113
2130
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." )
2116
2134
2117
2135
add_custom_command (
2118
2136
OUTPUT "${PROJECT_SOURCE_DIR} /.doc/build/index.html"
@@ -2121,7 +2139,8 @@ function(env_project_doc)
2121
2139
"${PROJECT_SOURCE_DIR} /.doc/doxygen/html/"
2122
2140
"${PROJECT_SOURCE_DIR} /.doc/build/"
2123
2141
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 )
2125
2144
2126
2145
add_custom_target (${LOWER_PROJECT_NAME} _doc
2127
2146
DEPENDS "${PROJECT_SOURCE_DIR} /.doc/build/index.html" )
@@ -2174,7 +2193,7 @@ endfunction()
2174
2193
2175
2194
function (env_project_targets)
2176
2195
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 "
2178
2197
"DEPS;TEST_DEPS;BENCH_DEPS" ${ARGN} )
2179
2198
2180
2199
env_log(
@@ -2230,7 +2249,8 @@ function(env_project_targets)
2230
2249
env_project_apps()
2231
2250
2232
2251
env_project_examples()
2233
- env_project_doc()
2252
+ env_project_doc(AUTHOR "${PARSED_DOC_AUTHOR} " COPYRIGHT
2253
+ "${PARSED_DOC_COPYRIGHT} " )
2234
2254
2235
2255
env_project_extras()
2236
2256
endfunction ()
0 commit comments