diff --git a/share/rocm/cmake/ROCMSphinxDoc.cmake b/share/rocm/cmake/ROCMSphinxDoc.cmake index a4f0f618..62604011 100755 --- a/share/rocm/cmake/ROCMSphinxDoc.cmake +++ b/share/rocm/cmake/ROCMSphinxDoc.cmake @@ -66,8 +66,24 @@ function(rocm_add_sphinx_doc SRC_DIR) set(USE_DOXYGEN) endif() + set(ERROR_MSG) + if (NOT SPHINX_EXECUTABLE) + set(ERROR_MSG "Sphinx executable not found.") + elseif(USE_DOXYGEN AND NOT DOXYGEN_EXECUTABLE) + set(ERROR_MSG "Doxygen executable not found.") + endif() + if(NOT TARGET sphinx-${BUILDER}) - add_custom_target(sphinx-${BUILDER}) + if(ERROR_MSG) + rocm_error_target(sphinx-${BUILDER} ${ERROR_MSG}) + else() + add_custom_target(sphinx-${BUILDER}) + endif() + rocm_mark_as_doc(sphinx-${BUILDER}) + endif() + + if(ERROR_MSG) + return() endif() add_custom_target( @@ -85,7 +101,6 @@ function(rocm_add_sphinx_doc SRC_DIR) 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() diff --git a/share/rocm/cmake/ROCMUtilities.cmake b/share/rocm/cmake/ROCMUtilities.cmake index 498c1512..b6d8adff 100644 --- a/share/rocm/cmake/ROCMUtilities.cmake +++ b/share/rocm/cmake/ROCMUtilities.cmake @@ -117,3 +117,9 @@ function(rocm_read_os_release OUTPUT KEYVALUE) ${_output} PARENT_SCOPE) endfunction() + +function(rocm_error_target TARGET MESSAGE) + add_custom_target(${TARGET} + COMMAND ${CMAKE_COMMAND} -E echo "ERROR: ${MESSAGE}" + COMMAND ${CMAKE_COMMAND} -E false) +endfunction()