Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,39 @@ endif ()

add_subdirectory(trinityal)
add_subdirectory(trinity)

if(CMAKE_PROJECT_NAME STREQUAL carbon-trinity AND NOT BUILD_FOR_PYTHON_2)
# Determine if/when to generate/build documentation. The rules are as follows:
# - If running locally - Build documentation is OFF by default
# - If running on a build agent (TeamCity) - Build documentation is ON by default
# - If -DBUILD_DOCUMENTATION=ON/OFF flag is explicitly set, use it.
set(BUILD_DOCUMENTATION_DEFAULT_FLAG OFF)
if(DEFINED ENV{TEAMCITY_VERSION})
set(BUILD_DOCUMENTATION_DEFAULT_FLAG ON)
endif()
message(STATUS "Document generation settings: default=${BUILD_DOCUMENTATION_DEFAULT_FLAG}, option BUILD_DOCUMENTATION=${BUILD_DOCUMENTATION}")
option(BUILD_DOCUMENTATION "Build Documentation" ${BUILD_DOCUMENTATION_DEFAULT_FLAG})

if(BUILD_DOCUMENTATION)
set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/doc/source)
set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/doc/build)

find_package(Python3 COMPONENTS Interpreter REQUIRED)

file(GLOB_RECURSE TRINITY_DOCS_SOURCE_FILES CONFIGURE_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/trinity/Eve/SpaceObject/*.h
${CMAKE_CURRENT_SOURCE_DIR}/trinity/Eve/SpaceObject/*.cpp)

create_carbon_docs_sphinx_target(
PYTHON_EXE ${Python3_EXECUTABLE}
VENV_NAME docs_generation_venv
PYTHONPATH_ENV $ENV{PYTHONPATH}
SPHINX_SOURCE ${SPHINX_SOURCE}
SPHINX_BUILD ${SPHINX_BUILD}
DOXYGEN_SRC_FILES ${TRINITY_DOCS_SOURCE_FILES}
SPHINX_TARGET_NAME Sphinx
DOXYGEN_TARGET_NAME Doxygen
INSTALL_DESTINATION documentation
)
endif()
endif()
10 changes: 6 additions & 4 deletions cmake/CcpDocsGenerator.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,10 @@ function(create_carbon_docs_sphinx_target)
)

# Evaluate config file for Doxygen to input project values
set(DOCUMENTATION_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen_generated)
set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in)
set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
set(DOXYGEN_INDEX_FILE ${CMAKE_CURRENT_BINARY_DIR}/xml/index.xml)
set(DOXYGEN_INDEX_FILE ${DOCUMENTATION_OUT_DIR}/xml/index.xml)
configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)

# Regenerate with source changes
Expand All @@ -60,13 +61,14 @@ function(create_carbon_docs_sphinx_target)
add_custom_target(${arg_DOXYGEN_TARGET_NAME} ALL DEPENDS ${DOXYGEN_INDEX_FILE})

if (WIN32)
set(SPHINX_COMMAND Scripts/sphinx-build -E -b html -D breathe_projects.doxygen=${CMAKE_CURRENT_BINARY_DIR}/docs/xml -c ${arg_SPHINX_SOURCE} ${arg_SPHINX_SOURCE} ${arg_SPHINX_BUILD})
set(SPHINX_COMMAND Scripts/sphinx-build -E -b html -D breathe_projects.doxygen=${DOCUMENTATION_OUT_DIR}/xml -c ${arg_SPHINX_SOURCE} ${arg_SPHINX_SOURCE} ${arg_SPHINX_BUILD})
elseif(APPLE)
set(SPHINX_COMMAND bin/sphinx-build -E -b html -D breathe_projects.doxygen=${CMAKE_CURRENT_BINARY_DIR}/docs/xml -c ${arg_SPHINX_SOURCE} ${arg_SPHINX_SOURCE} ${arg_SPHINX_BUILD})
set(SPHINX_COMMAND bin/sphinx-build -E -b html -D breathe_projects.doxygen=${DOCUMENTATION_OUT_DIR}/xml -c ${arg_SPHINX_SOURCE} ${arg_SPHINX_SOURCE} ${arg_SPHINX_BUILD})
endif()
Comment thread
Ikreb1 marked this conversation as resolved.

message(STATUS "Working directory is ${CMAKE_CURRENT_BINARY_DIR}")
message(STATUS "Command: ${SPHINX_COMMAND}")
message(STATUS "Python Path is: ${arg_PYTHONPATH_ENV}")

add_custom_target(${arg_SPHINX_TARGET_NAME} ALL
COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${arg_PYTHONPATH_ENV} ${SPHINX_COMMAND}
Expand All @@ -76,4 +78,4 @@ function(create_carbon_docs_sphinx_target)

# Install rule for documentation
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/build/ DESTINATION ${arg_INSTALL_DESTINATION})
endfunction()
endfunction()
Loading