From 7ef4321a3d4bcfeafa0796816108ada12820239f Mon Sep 17 00:00:00 2001 From: peri4 Date: Mon, 14 Mar 2022 21:53:30 +0300 Subject: [PATCH] supports for doc language select with cmake --- CMakeLists.txt | 13 ++++++++++--- cmake/PIPDocumentation.cmake | 2 +- doc/Doxyfile.in | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1df09d3c..e55205be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -553,9 +553,16 @@ if ((NOT PIP_FREERTOS) AND (NOT CROSSTOOLS)) set(DOXY_PROJECT_NUMBER "${pip_VERSION}") set(DOXY_QHP_CUST_FILTER_ATTRS "\"PIP ${pip_VERSION}\"") set(DOXY_QHP_SECT_FILTER_ATTRS "\"PIP ${pip_VERSION}\"") - set(DOXY_EXAMPLE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/examples\"") - set(DOXY_IMAGE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/images\"") - set(DOXY_EXCLUDE "\"${CMAKE_CURRENT_SOURCE_DIR}/libs/lua/3rd\"") + set(DOXY_EXAMPLE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/examples\"") + set(DOXY_IMAGE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/images\"") + set(DOXY_EXCLUDE "\"${CMAKE_CURRENT_SOURCE_DIR}/libs/lua/3rd\"") + if ("x${DOC_LANG}" STREQUAL "x") + set(DOXY_OUTPUT_LANGUAGE English) + set(DOXY_OUTPUT_DIR en) + else() + set(DOXY_OUTPUT_LANGUAGE ${DOC_LANG}) + set(DOXY_OUTPUT_DIR ${DOC_DIR}) + endif() if(DOXYGEN_DOT_EXECUTABLE) string(REPLACE "\\" "" _DOT_PATH "${DOXYGEN_DOT_PATH}") set(DOXY_DOT_PATH "\"${_DOT_PATH}\"") diff --git a/cmake/PIPDocumentation.cmake b/cmake/PIPDocumentation.cmake index 9e9a099a..66fbc39b 100644 --- a/cmake/PIPDocumentation.cmake +++ b/cmake/PIPDocumentation.cmake @@ -1,7 +1,7 @@ macro(ADD_DOCUMENTATION TARGET DOXYGEN_CONFIG_FILE) if(DOXYGEN_FOUND) configure_file("${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/doxyfile-${TARGET}") - add_custom_target("genereate.${TARGET}" COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxyfile-${TARGET}) + add_custom_target("genereate.${TARGET}" COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/doc/html" COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxyfile-${TARGET}) add_custom_target("${TARGET}" COMMAND ${CMAKE_COMMAND} -D COMPONENT=doc -P cmake_install.cmake) add_dependencies("${TARGET}" "genereate.${TARGET}") else(DOXYGEN_FOUND) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 93fb4162..556f3204 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -91,7 +91,7 @@ ALLOW_UNICODE_NAMES = NO # Ukrainian and Vietnamese. # The default value is: English. -OUTPUT_LANGUAGE = English +OUTPUT_LANGUAGE = ${DOXY_OUTPUT_LANGUAGE} # The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all # documentation generated by doxygen is written. Doxygen will use this @@ -1156,7 +1156,7 @@ GENERATE_HTML = YES # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_OUTPUT = html +HTML_OUTPUT = html/${DOXY_OUTPUT_DIR} # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). @@ -1420,7 +1420,7 @@ GENERATE_QHP = YES # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. -QCH_FILE = pip.qch +QCH_FILE = pip_${DOXY_OUTPUT_DIR}.qch # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace @@ -2209,7 +2209,7 @@ TAGFILES = # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. -GENERATE_TAGFILE = html/pip.cfg +GENERATE_TAGFILE = doc/html/${DOXY_OUTPUT_DIR}/pip_${DOXY_OUTPUT_DIR}.cfg # If the ALLEXTERNALS tag is set to YES, all external class will be listed in # the class index. If set to NO, only the inherited external classes will be