Salome HOME
Correction of path to temporary script to remove it successfully.
[modules/kernel.git] / salome_adm / cmake_files / FindSPHINX.cmake
1 # Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 #
6 # This library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Lesser General Public
8 # License as published by the Free Software Foundation; either
9 # version 2.1 of the License.
10 #
11 # This library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 # Lesser General Public License for more details.
15 #
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this library; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 #
20 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 #
22
23 # ------
24 MESSAGE(STATUS "Check for sphinx ...")
25 # ------
26
27 IF(SPHINX_IS_MANDATORY STREQUAL 0)
28   SET(SPHINX_IS_MANDATORY 0)
29   SET(SPHINX_IS_OPTIONAL 1)
30 ENDIF(SPHINX_IS_MANDATORY STREQUAL 0)
31 IF(SPHINX_IS_OPTIONAL STREQUAL 0)
32   SET(SPHINX_IS_MANDATORY 1)
33   SET(SPHINX_IS_OPTIONAL 0)
34 ENDIF(SPHINX_IS_OPTIONAL STREQUAL 0)
35 IF(NOT SPHINX_IS_MANDATORY AND NOT SPHINX_IS_OPTIONAL)
36   SET(SPHINX_IS_MANDATORY 0)
37   SET(SPHINX_IS_OPTIONAL 1)
38 ENDIF(NOT SPHINX_IS_MANDATORY AND NOT SPHINX_IS_OPTIONAL)
39
40 # ------
41
42 SET(SPHINX_STATUS 1)
43 IF(WITHOUT_SPHINX OR WITH_SPHINX STREQUAL 0)
44   SET(SPHINX_STATUS 0)
45   MESSAGE(STATUS "sphinx disabled from command line.")
46 ENDIF(WITHOUT_SPHINX OR WITH_SPHINX STREQUAL 0)
47
48 # ------
49
50 IF(SPHINX_STATUS)
51   IF(WITH_SPHINX)
52     SET(SPHINX_ROOT_USER ${WITH_SPHINX})
53   ENDIF(WITH_SPHINX)
54   IF(NOT SPHINX_ROOT_USER)
55     SET(SPHINX_ROOT_USER $ENV{SPHINX_ROOT})
56   ENDIF(NOT SPHINX_ROOT_USER)
57   IF(NOT SPHINX_ROOT_USER)
58     SET(SPHINX_ROOT_USER $ENV{SPHINXHOME})
59   ENDIF(NOT SPHINX_ROOT_USER)
60 ENDIF(SPHINX_STATUS)
61
62 # ------
63
64 IF(SPHINX_STATUS)
65   SET(SPHINX_EXECUTABLE_TO_FIND sphinx-build)
66   IF(SPHINX_ROOT_USER)
67     SET(BINDIR)
68     IF(WINDOWS)
69   SET(BINDIR ${SPHINX_ROOT_USER}/Scripts)
70     ELSE(WINDOWS)
71   SET(BINDIR ${SPHINX_ROOT_USER}/bin)
72     ENDIF(WINDOWS)
73     FIND_PROGRAM(SPHINX_EXECUTABLE ${SPHINX_EXECUTABLE_TO_FIND} PATHS ${BINDIR} NO_DEFAULT_PATH)
74   ELSE(SPHINX_ROOT_USER)
75     FIND_PROGRAM(SPHINX_EXECUTABLE ${SPHINX_EXECUTABLE_TO_FIND})
76   ENDIF(SPHINX_ROOT_USER)
77   IF(SPHINX_EXECUTABLE)
78     EXECUTE_PROCESS(COMMAND ${SPHINX_EXECUTABLE} -v ERROR_VARIABLE STATUS_CHECK_SPHINX)
79     STRING(REGEX MATCH "^Sphinx v[0-9]+\\.[0-9]+\\.[0-9]+" IS_SPHINX_USABLE ${STATUS_CHECK_SPHINX})
80     IF(IS_SPHINX_USABLE)
81       MESSAGE(STATUS "${SPHINX_EXECUTABLE_TO_FIND} found: ${SPHINX_EXECUTABLE}")
82     ELSE(IS_SPHINX_USABLE)
83       MESSAGE(STATUS "${SPHINX_EXECUTABLE_TO_FIND} found but NOT usable ! Check coherency between your python and Sphinx ! Sphinx DISABLED !")
84       SET(SPHINX_STATUS 0)
85     ENDIF(IS_SPHINX_USABLE)
86   ELSE(SPHINX_EXECUTABLE)
87     MESSAGE(STATUS "${SPHINX_EXECUTABLE_TO_FIND} not found, try to use WITH_SPHINX option or SPHINX_ROOT (or SPHINXHOME) environment variable")
88     SET(SPHINX_STATUS 0)
89   ENDIF(SPHINX_EXECUTABLE)
90 ENDIF(SPHINX_STATUS)
91
92 # ----
93
94 IF(SPHINX_STATUS)
95   SET(SPHINX_IS_OK 1)
96 ELSE(SPHINX_STATUS)
97   SET(SPHINX_IS_OK 0)
98   IF(SPHINX_IS_MANDATORY)
99     MESSAGE(FATAL_ERROR "sphinx not found ... mandatory ... abort")
100   ELSE(SPHINX_IS_MANDATORY)
101     MESSAGE(STATUS "sphinx not found ... optional ... disabled")
102   ENDIF(SPHINX_IS_MANDATORY)
103 ENDIF(SPHINX_STATUS)
104
105 # ----