Salome HOME
Updated copyright comment
[tools/configuration.git] / cmake / UseSphinx.cmake
index 2b46a15aa58e6e12b82df2d6b47208819998b77b..c8c750ecc5342cc58dceb789789829d4bba0c8de 100644 (file)
@@ -1,8 +1,5 @@
 ###########################################################################
-# Copyright (C) 2007-2019  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-2024  CEA, EDF, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -27,6 +24,22 @@ IF(NOT Sphinx_FOUND)
    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
@@ -133,4 +146,4 @@ MACRO(ADD_MULTI_LANG_DOCUMENTATION)
   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)