CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
105 lines
3.3 KiB
CMake
Executable File
105 lines
3.3 KiB
CMake
Executable File
# ######################################################################################################################
|
|
# Copyright (C) 2023 Advanced Micro Devices, Inc.
|
|
# ######################################################################################################################
|
|
|
|
include_guard(GLOBAL)
|
|
|
|
include(CMakeParseArguments)
|
|
include(ROCMDocs)
|
|
|
|
find_program(
|
|
SPHINX_EXECUTABLE
|
|
NAMES sphinx-build
|
|
HINTS "$ENV{SPHINX_DIR}"
|
|
PATH_SUFFIXES bin
|
|
DOC "Sphinx documentation generator")
|
|
|
|
find_program(
|
|
DOXYGEN_EXECUTABLE
|
|
NAMES doxygen
|
|
HINTS "$ENV{DOXYGEN_DIR}"
|
|
PATH_SUFFIXES bin
|
|
DOC "Doxygen documentation generator")
|
|
|
|
mark_as_advanced(SPHINX_EXECUTABLE)
|
|
mark_as_advanced(DOXYGEN_EXECUTABLE)
|
|
|
|
function(rocm_add_sphinx_doc SRC_DIR)
|
|
set(options USE_DOXYGEN)
|
|
set(oneValueArgs BUILDER CONFIG_DIR OUTPUT_DIR)
|
|
set(multiValueArgs DEPENDS VARS TEMPLATE_VARS)
|
|
|
|
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
get_filename_component(SRC_DIR "${SRC_DIR}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
if(NOT PARSE_CONFIG_DIR AND NOT EXISTS "${SRC_DIR}/conf.py")
|
|
message(FATAL_ERROR "rocm_add_sphinx_doc cannot find ${SRC_DIR}/conf.py")
|
|
endif()
|
|
|
|
if(PARSE_BUILDER)
|
|
string(TOUPPER ${PARSE_BUILDER} BUILDER)
|
|
else()
|
|
message(FATAL_ERROR "rocm_add_sphinx_doc requires providing a BUILDER to use.")
|
|
endif()
|
|
|
|
if(PARSE_OUTPUT_DIR)
|
|
get_filename_component(OUTPUT_DIR "${PARSE_OUTPUT_DIR}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
|
else()
|
|
if(DEFINED ROCM_CMAKE_DOCS_DIR)
|
|
set(OUTPUT_DIR "${ROCM_CMAKE_DOCS_DIR}")
|
|
else()
|
|
set(OUTPUT_DIR "sphinx/${PARSE_BUILDER}")
|
|
endif()
|
|
endif()
|
|
|
|
if(PARSE_CONFIG_DIR)
|
|
if(NOT EXISTS "${PARSE_CONFIG_DIR}/conf.py")
|
|
message(FATAL_ERROR "rocm_add_sphinx_doc cannot find ${PARSE_CONFIG_DIR}/conf.py")
|
|
endif()
|
|
get_filename_component(CONFIG_DIR "${PARSE_CONFIG_DIR}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
set(CONFIG_DIR_ARG -c "${CONFIG_DIR}")
|
|
else()
|
|
set(CONFIG_DIR_ARG)
|
|
endif()
|
|
|
|
set(VARS)
|
|
foreach(VAR IN LISTS PARSE_VARS)
|
|
list(APPEND VARS -D "${VAR}")
|
|
endforeach()
|
|
foreach(VAR IN LISTS PARSE_TEMPLATE_VARS)
|
|
list(APPEND VARS -A "${VAR}")
|
|
endforeach()
|
|
|
|
if(PARSE_USE_DOXYGEN)
|
|
set(USE_DOXYGEN -D "doxygen_executable=${DOXYGEN_EXECUTABLE}")
|
|
else()
|
|
set(USE_DOXYGEN)
|
|
endif()
|
|
|
|
if(NOT TARGET sphinx-${BUILDER})
|
|
add_custom_target(sphinx-${BUILDER})
|
|
endif()
|
|
|
|
add_custom_target(
|
|
${PROJECT_NAME}-sphinx-${BUILDER}
|
|
COMMAND
|
|
"${SPHINX_EXECUTABLE}"
|
|
${CONFIG_DIR_ARG}
|
|
-b ${PARSE_BUILDER}
|
|
-d "${CMAKE_CURRENT_BINARY_DIR}/doctrees"
|
|
${USE_DOXYGEN}
|
|
${VARS}
|
|
"${SRC_DIR}"
|
|
"${OUTPUT_DIR}"
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
|
COMMENT "Building ${PARSE_BUILDER} documentation with Sphinx")
|
|
add_dependencies(sphinx-${BUILDER} ${PROJECT_NAME}-sphinx-${BUILDER})
|
|
rocm_clean_doc_output("${OUTPUT_DIR}/html")
|
|
rocm_clean_doc_output("${OUTPUT_DIR}/doctrees")
|
|
rocm_mark_as_doc(sphinx-${BUILDER})
|
|
if(PARSE_DEPENDS)
|
|
add_dependencies(sphinx-${BUILDER} ${PARSE_DEPENDS})
|
|
endif()
|
|
|
|
endfunction()
|