From 3654fd719eb97bdfd2142ecabce9464b3e1e9b9c Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Sat, 17 Aug 2019 06:22:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D0=BE=20=D0=B0?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D0=BA=D0=BE=D0=B5=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=BE=D0=B1=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=B0=20Breathe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMLibBreathe.cmake | 95 ++++++++++------------------------------------ 1 file changed, 21 insertions(+), 74 deletions(-) diff --git a/CMLibBreathe.cmake b/CMLibBreathe.cmake index af60256..d72f4d8 100644 --- a/CMLibBreathe.cmake +++ b/CMLibBreathe.cmake @@ -1,85 +1,32 @@ -set(BUILD_BREATHE_DOC AUTO CACHE STRING "Enable documntation in Breathe format") -set_property(CACHE BUILD_BREATHE_DOC PROPERTY STRINGS AUTO ON OFF) +set(BUILD_BREATHE_DOC OFF CACHE STRING "Enable documntation in Breathe format") +set_property(CACHE BUILD_BREATHE_DOC PROPERTY STRINGS ON OFF) -if(BUILD_BREATHE_DOC STREQUAL AUTO) - find_package(Doxygen) - find_package(Perl) - set(Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.4 3.3 3.2) - find_package(PythonInterp) - if (PYTHONINTERP_FOUND) - find_package(Sphinx) +function(add_breathe_target) + if(BUILD_BREATHE_DOC) + find_package(Doxygen REQUIRED) + find_package(Perl REQUIRED) + set(Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.4 3.3 3.2) + find_package(PythonInterp REQUIRED) + find_package(Sphinx REQUIRED) include(FindPythonModule) - find_python_module(breathe) - find_python_module(recommonmark) - if(DOXYGEN_FOUND AND PERL_FOUND AND PYTHONINTERP_FOUND AND SPHINX_FOUND AND breathe_FOUND AND recommonmark_FOUND) - set(BUILD_BREATHE_DOC ON CACHE STRING "Enable documntation in Breathe format" FORCE) - else() - set(BUILD_BREATHE_DOC OFF CACHE STRING "Disable documentation in Breathe format" FORCE) - endif() - else() - set(BUILD_BREATHE_DOC OFF CACHE STRING "Disable documentation in Breathe format" FORCE) - endif() -elseif(BUILD_BREATHE_DOC) - find_package(Doxygen REQUIRED) - find_package(Perl REQUIRED) - set(Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.4 3.3 3.2) - find_package(PythonInterp REQUIRED) - find_package(Sphinx REQUIRED) - include(FindPythonModule) - find_python_module(breathe REQUIRED) - find_python_module(recommonmark REQUIRED) - set(BUILD_BREATHE_DOC ON CACHE STRING "Enable documentation in Breathe format" FORCE) -else() - set(BUILD_BREATHE_DOC OFF CACHE STRING "Disable documentation in Breathe format" FORCE) -endif() + find_python_module(breathe REQUIRED) + find_python_module(recommonmark REQUIRED) -function(add_breathe_doc) - if(BUILD_BREATHE_DOC AND CMAKE_BUILD_TYPE STREQUAL Release) set(options) - set(oneValueArgs - SOURCE_DIR - BUILD_DIR - CACHE_DIR - HTML_DIR - DOXY_FILE - CONF_FILE - TARGET_NAME - COMMENT - ) + set(oneValueArgs SOURCE_DIR BUILD_DIR CACHE_DIR HTML_DIR DOXY_FILE CONF_FILE TARGET_NAME COMMENT) set(multiValueArgs) - cmake_parse_arguments(BREATHE_DOC - "${options}" - "${oneValueArgs}" - "${multiValueArgs}" - ${ARGN} - ) + cmake_parse_arguments(_BREATHE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - configure_file( - ${BREATHE_DOC_CONF_FILE} - ${BREATHE_DOC_BUILD_DIR}/conf.py - @ONLY - ) + configure_file(${_BREATHE_CONF_FILE} ${_BREATHE_BUILD_DIR}/conf.py @ONLY) + configure_file(${_BREATHE_DOXY_FILE} ${_BREATHE_BUILD_DIR}/Doxyfile @ONLY) - configure_file( - ${BREATHE_DOC_DOXY_FILE} - ${BREATHE_DOC_BUILD_DIR}/Doxyfile - @ONLY - ) - - add_custom_target(${BREATHE_DOC_TARGET_NAME} - ALL - COMMAND - ${SPHINX_EXECUTABLE} - -q - -b html - -c ${BREATHE_DOC_BUILD_DIR} - -d ${BREATHE_DOC_CACHE_DIR} - ${BREATHE_DOC_SOURCE_DIR} - ${BREATHE_DOC_HTML_DIR} - COMMENT - "Building ${BREATHE_DOC_TARGET_NAME} documentation with Breathe, Sphinx and Doxygen" - VERBATIM + add_custom_target(${_BREATHE_TARGET_NAME} ALL VERBATIM + COMMAND ${SPHINX_EXECUTABLE} -q -b html -c ${_BREATHE_BUILD_DIR} + -d ${_BREATHE_CACHE_DIR} + ${_BREATHE_SOURCE_DIR} + ${_BREATHE_HTML_DIR} + COMMENT "Building ${_BREATHE_TARGET_NAME} documentation with Breathe" ) endif() endfunction()