###########################################################################
-# Copyright (C) 2007-2018 CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+# Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
MESSAGE(FATAL_ERROR "Developer error -> UseSphinx file should be included after detection of the sphinx!")
ENDIF()
+FUNCTION(SPHINX_CHECK_EXTENSIONS)
+ CMAKE_PARSE_ARGUMENTS(CHECK_EXTENSIONS "REQUIRED" "" "" ${ARGN})
+ FOREACH(_ext ${CHECK_EXTENSIONS_UNPARSED_ARGUMENTS})
+ EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import ${_ext}; print('ok')" OUTPUT_VARIABLE _has_ext ERROR_QUIET)
+ IF(_has_ext)
+ MESSAGE(STATUS "Required Sphinx extension '${_ext}' has been found!")
+ ELSE()
+ IF(CHECK_EXTENSIONS_REQUIRED)
+ MESSAGE(FATAL_ERROR "Required Sphinx extension '${_ext}' is not found!")
+ ELSE()
+ MESSAGE(WARNING "Required Sphinx extension '${_ext}' is not found!")
+ ENDIF()
+ ENDIF()
+ ENDFOREACH()
+ENDFUNCTION()
+
function(JOIN OUTPUT GLUE)
set(_TMP_RESULT "")
set(_GLUE "") # effective glue is empty at the beginning
# TARGET_NAME : IN : target name for the documentation
# MODULE : IN : SALOME module name
# LANGUAGES : IN : list of the languages
+# ADDITIONAL_ENVIRONMENT: IN : list of additional enviromnent variable used
+# for generation of the documentation
#----------------------------------------------------------------------------
MACRO(ADD_MULTI_LANG_DOCUMENTATION)
# Common options
SET(PAPEROPT_a4 "-D latex_paper_size=a4")
# Parse input argument
- PARSE_ARGUMENTS(MULTI_LANG "TARGET_NAME;MODULE;LANGUAGES" "" ${ARGN})
+ PARSE_ARGUMENTS(MULTI_LANG "TARGET_NAME;MODULE;LANGUAGES;ADDITIONAL_ENVIRONMENT" "" ${ARGN})
# Content of the executable file to generate documentation
SET(CMDS)
ENDFOREACH()
# 6. Create command file
+ SET(_script_wo "build_doc")
IF(WIN32)
SET(_ext "bat")
- SET(_call_cmd "call")
ELSE()
SET(_ext "sh")
- SET(_call_cmd ".")
ENDIF()
-
- SET(_env)
- FOREACH(_item ${_${PROJECT_NAME}_EXTRA_ENV})
- FOREACH(_val ${_${PROJECT_NAME}_EXTRA_ENV_${_item}})
- IF(WIN32)
- IF(${_item} STREQUAL "LD_LIBRARY_PATH")
- SET(_item PATH)
- ENDIF()
- STRING(REPLACE "/" "\\" _env "${_env} @SET ${_item}=${_val};%${_item}%\n")
- ELSEIF(APPLE)
- IF(${_item} STREQUAL "LD_LIBRARY_PATH")
- SET(_env "${_env} export DYLD_LIBRARY_PATH=${_val}:\${DYLD_LIBRARY_PATH}\n")
- ELSE()
- SET(_env "${_env} export ${_item}=${_val}:\${${_item}}\n")
- ENDIF()
- ELSE()
- SET(_env "${_env} export ${_item}=${_val}:\${${_item}}\n")
- ENDIF()
- ENDFOREACH()
- ENDFOREACH()
-
- SET(_script ${CMAKE_CURRENT_BINARY_DIR}/build_doc.${_ext})
- FILE(WRITE ${_script} ${_env}${CMDS})
+ SET(_script "${_script_wo}.${_ext}")
+
+ SALOME_GENERATE_ENVIRONMENT_SCRIPT(_not_used_output ${_script_wo} "" "" CONTEXT "${MULTI_LANG_TARGET_NAME}" CONTEXT_NAME "DO_GENERATION" ADDITIONAL_VARIABLES ${MULTI_LANG_ADDITIONAL_ENVIRONMENT})
+
+ FILE(APPEND ${_script} "${CMDS}")
# 7. Create custom target
ADD_CUSTOM_TARGET(${MULTI_LANG_TARGET_NAME}
ENDFOREACH()
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}")
-ENDMACRO(ADD_MULTI_LANG_DOCUMENTATION)
\ No newline at end of file
+ENDMACRO(ADD_MULTI_LANG_DOCUMENTATION)