From e9d1b1ef28f3c47df88b7423febb083ae16bec35 Mon Sep 17 00:00:00 2001 From: Nicolas Oliver Date: Mon, 2 Oct 2017 15:39:12 -0700 Subject: [PATCH] docs: add additional validation for doc tools version Signed-off-by: Nicolas Oliver Signed-off-by: Brendan Le Foll --- CMakeLists.txt | 8 +++++--- cmake/modules/FindSphinx.cmake | 10 ++++++++++ src/javascript/CMakeLists.txt | 6 +++--- src/python/python2/docs/CMakeLists.txt | 8 +++++--- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f7f28e..b145acd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,8 +180,8 @@ endif () if (BUILDDOC) # add a target to generate API documentation with Doxygen - find_package (Doxygen 1.8.11 REQUIRED) - if (DOXYGEN_FOUND) + find_package (Doxygen 1.8 REQUIRED) + if (DOXYGEN_FOUND AND DOXYGEN_VERSION VERSION_GREATER "1.8") configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) if (BUILDSWIGJAVA) configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.java.in ${CMAKE_CURRENT_BINARY_DIR}/src/java/Doxyfile @ONLY) @@ -191,7 +191,9 @@ if (BUILDDOC) WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM ) - endif (DOXYGEN_FOUND) + else () + message (SEND_ERROR "ERROR - Failed to find a compatible version of Doxygen. API doc will not be generated") + endif (DOXYGEN_FOUND AND DOXYGEN_VERSION VERSION_GREATER "1.8") endif () if (IPK) diff --git a/cmake/modules/FindSphinx.cmake b/cmake/modules/FindSphinx.cmake index 4a3fb13..f111ea2 100644 --- a/cmake/modules/FindSphinx.cmake +++ b/cmake/modules/FindSphinx.cmake @@ -11,4 +11,14 @@ find_package_handle_standard_args (Sphinx DEFAULT_MSG SPHINX_EXECUTABLE ) +# Get Sphinx Version +if (SPHINX_EXECUTABLE) + execute_process(COMMAND ${SPHINX_EXECUTABLE} --version + OUTPUT_VARIABLE SPHINX_VERSION_STRING) + if (SPHINX_VERSION_STRING) + string(REPLACE "Sphinx (sphinx-build) " "" SPHINX_VERSION ${SPHINX_VERSION_STRING}) + message (STATUS "Sphinx version is ${SPHINX_VERSION}") + endif () +endif () + mark_as_advanced (SPHINX_EXECUTABLE) diff --git a/src/javascript/CMakeLists.txt b/src/javascript/CMakeLists.txt index 118cf45..25fd362 100644 --- a/src/javascript/CMakeLists.txt +++ b/src/javascript/CMakeLists.txt @@ -109,8 +109,8 @@ add_custom_command (TARGET npmpkg POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy add_dependencies (npmpkg mraajs) if (BUILDDOC) - find_package (Yuidoc 0.10.2 REQUIRED) - if (YUIDOC_FOUND) + find_package (Yuidoc 0.10 REQUIRED) + if (YUIDOC_FOUND AND YUIDOC_VERSION VERSION_GREATER "0.10") add_custom_target (jsdoc ALL COMMAND ${CMAKE_SOURCE_DIR}/doxygen2jsdoc/docgen.js -m mraa -i xml/ -o jsdoc -c ${CMAKE_CURRENT_SOURCE_DIR}/doxygen2jsdoc_custom.json --strict COMMAND ${YUIDOC_EXECUTABLE} -C --no-sort --helpers ${CMAKE_SOURCE_DIR}/doxygen2jsdoc/generators/yuidoc/tmpl/mraa/helper.js --themedir ${CMAKE_SOURCE_DIR}/doxygen2jsdoc/generators/yuidoc/tmpl/mraa -o html/node jsdoc/yuidoc/mraa @@ -120,7 +120,7 @@ if (BUILDDOC) COMMENT "Generating API documentation with Yuidoc" VERBATIM ) else () - message (STATUS "INFO - Failed to find Yuidoc. node.js API doc will not be generated") + message (SEND_ERROR "ERROR - Failed to find a compatible version of Yuidoc. Node.js API doc will not be generated") endif () endif () diff --git a/src/python/python2/docs/CMakeLists.txt b/src/python/python2/docs/CMakeLists.txt index cd9d659..3dab7b8 100644 --- a/src/python/python2/docs/CMakeLists.txt +++ b/src/python/python2/docs/CMakeLists.txt @@ -1,6 +1,6 @@ if (DOXYGEN_FOUND) - find_package (Sphinx 1.3.6 REQUIRED) - if (SPHINX_FOUND) + find_package (Sphinx 1.3 REQUIRED) + if (SPHINX_FOUND AND SPHINX_VERSION VERSION_GREATER "1.3") if (NOT DEFINED SPHINX_THEME) set (SPHINX_THEME default) endif () @@ -37,5 +37,7 @@ if (DOXYGEN_FOUND) ) add_dependencies (sphinx ${SWIG_MODULE_python2-mraa_REAL_NAME}) - endif () + else () + message (SEND_ERROR "ERROR - Failed to find a compatible version of Sphinx. Python API doc will not be generated") + endif (SPHINX_FOUND AND SPHINX_VERSION VERSION_GREATER "1.3") endif ()