Salome HOME
fixed a typo
[modules/shaper.git] / CMakeCommon / FindSphinx.cmake
1 # - Sphinx detection
2 #
3 # Output variables:
4 #   SPHINX_EXECUTABLE - path to the Sphinx executable
5 #   SPHINX_PYTHONPATH - path to the Sphinx Python modules
6 #
7 ###########################################################################
8 # Copyright (C) 2013-2023  CEA, EDF, OPEN CASCADE
9 #
10 # This library is free software; you can redistribute it and/or
11 # modify it under the terms of the GNU Lesser General Public
12 # License as published by the Free Software Foundation; either
13 # version 2.1 of the License, or (at your option) any later version.
14 #
15 # This library is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 # Lesser General Public License for more details.
19 #
20 # You should have received a copy of the GNU Lesser General Public
21 # License along with this library; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
23 #
24 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
25 #
26
27 FIND_PROGRAM(SPHINX_EXECUTABLE
28              NAMES sphinx-build sphinx-build-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}
29              PATH_SUFFIXES Scripts)
30 FIND_PROGRAM(SPHINX_APIDOC_EXECUTABLE
31              NAMES sphinx-apidoc sphinx-apidoc-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}
32              PATH_SUFFIXES Scripts)
33
34 # Get root dir locally, going up two levels from the exec:
35 GET_FILENAME_COMPONENT(_tmp_ROOT_DIR "${SPHINX_EXECUTABLE}" PATH)
36 GET_FILENAME_COMPONENT(_tmp_ROOT_DIR "${_tmp_ROOT_DIR}" PATH)
37 IF(WIN32)
38   SET(SPHINX_PYTHONPATH "${_tmp_ROOT_DIR}/lib/site-packages")
39 ELSE()
40   SET(SPHINX_PYTHONPATH "${_tmp_ROOT_DIR}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages")
41 ENDIF()
42
43 # Handle the standard arguments of the find_package() command:
44 INCLUDE(FindPackageHandleStandardArgs)
45 FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sphinx REQUIRED_VARS SPHINX_EXECUTABLE SPHINX_APIDOC_EXECUTABLE)
46
47 IF(SPHINX_EXECUTABLE)
48   IF(WIN32)
49     # Call Sphinx through the Python executable to eliminate the problem related to starting the Sphinx's process.
50     GET_FILENAME_COMPONENT(_tmp_ROOT_DIR "${SPHINX_EXECUTABLE}" PATH)
51     GET_FILENAME_COMPONENT(_tmp_FILENAME "${SPHINX_EXECUTABLE}" NAME_WE)
52     SET(SPHINX_EXECUTABLE "${PYTHON_EXECUTABLE}" "${_tmp_ROOT_DIR}/${_tmp_FILENAME}-script.py")
53   ENDIF()
54
55   EXECUTE_PROCESS(COMMAND ${SPHINX_EXECUTABLE} "--version" OUTPUT_VARIABLE SPHINX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
56   STRING(REGEX REPLACE ".* ([0-9.]+)$" "\\1" SPHINX_VERSION "${SPHINX_VERSION}" )
57   MESSAGE(STATUS "Sphinx version is ${SPHINX_VERSION}")
58   IF(SPHINX_VERSION VERSION_LESS "1.3")
59     SET(SPHINX_THEME "default")
60   ELSE()
61     SET(SPHINX_THEME "classic")
62   ENDIF()
63 ENDIF(SPHINX_EXECUTABLE)