]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
1) Build documentation using sphinx.
authorrnv <rnv@opencascade.com>
Wed, 1 Feb 2012 12:19:44 +0000 (12:19 +0000)
committerrnv <rnv@opencascade.com>
Wed, 1 Feb 2012 12:19:44 +0000 (12:19 +0000)
2) win32 compilation of the Geometry module.

salome_adm/cmake_files/FindSPHINX.cmake [new file with mode: 0755]
salome_adm/cmake_files/Makefile.am
salome_adm/cmake_files/am2cmake.py

diff --git a/salome_adm/cmake_files/FindSPHINX.cmake b/salome_adm/cmake_files/FindSPHINX.cmake
new file mode 100755 (executable)
index 0000000..b116631
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright (C) 2007-2011  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
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# ------
+MESSAGE(STATUS "Check for sphinx ...")
+# ------
+
+IF(SPHINX_IS_MANDATORY STREQUAL 0)
+  SET(SPHINX_IS_MANDATORY 0)
+  SET(SPHINX_IS_OPTIONAL 1)
+ENDIF(SPHINX_IS_MANDATORY STREQUAL 0)
+IF(SPHINX_IS_OPTIONAL STREQUAL 0)
+  SET(SPHINX_IS_MANDATORY 1)
+  SET(SPHINX_IS_OPTIONAL 0)
+ENDIF(SPHINX_IS_OPTIONAL STREQUAL 0)
+IF(NOT SPHINX_IS_MANDATORY AND NOT SPHINX_IS_OPTIONAL)
+  SET(SPHINX_IS_MANDATORY 0)
+  SET(SPHINX_IS_OPTIONAL 1)
+ENDIF(NOT SPHINX_IS_MANDATORY AND NOT SPHINX_IS_OPTIONAL)
+
+# ------
+
+SET(SPHINX_STATUS 1)
+IF(WITHOUT_SPHINX OR WITH_SPHINX STREQUAL 0)
+  SET(SPHINX_STATUS 0)
+  MESSAGE(STATUS "sphinx disabled from command line.")
+ENDIF(WITHOUT_SPHINX OR WITH_SPHINX STREQUAL 0)
+
+# ------
+
+IF(SPHINX_STATUS)
+  IF(WITH_SPHINX)
+    SET(SPHINX_ROOT_USER ${WITH_SPHINX})
+  ENDIF(WITH_SPHINX)
+  IF(NOT SPHINX_ROOT_USER)
+    SET(SPHINX_ROOT_USER $ENV{SPHINX_ROOT})
+  ENDIF(NOT SPHINX_ROOT_USER)
+  IF(NOT SPHINX_ROOT_USER)
+    SET(SPHINX_ROOT_USER $ENV{SPHINXHOME})
+  ENDIF(NOT SPHINX_ROOT_USER)
+ENDIF(SPHINX_STATUS)
+
+# ------
+
+IF(SPHINX_STATUS)
+  SET(SPHINX_EXECUTABLE_TO_FIND sphinx-build)
+  IF(SPHINX_ROOT_USER)
+    SET(BINDIR)
+    IF(WINDOWS)
+  SET(BINDIR ${SPHINX_ROOT_USER}/Scripts)
+    ELSE(WINDOWS)
+  SET(BINDIR ${SPHINX_ROOT_USER}/bin)
+    ENDIF(WINDOWS)
+    FIND_PROGRAM(SPHINX_EXECUTABLE ${SPHINX_EXECUTABLE_TO_FIND} PATHS ${BINDIR} NO_DEFAULT_PATH)
+  ELSE(SPHINX_ROOT_USER)
+    FIND_PROGRAM(SPHINX_EXECUTABLE ${SPHINX_EXECUTABLE_TO_FIND})
+  ENDIF(SPHINX_ROOT_USER)
+  IF(SPHINX_EXECUTABLE)
+    MESSAGE(STATUS "${SPHINX_EXECUTABLE_TO_FIND} found: ${SPHINX_EXECUTABLE}")
+  ELSE(SPHINX_EXECUTABLE)
+    MESSAGE(STATUS "${SPHINX_EXECUTABLE_TO_FIND} not found, try to use WITH_SPHINX option or SPHINX_ROOT (or SPHINXHOME) environment variable")
+    SET(SPHINX_STATUS 0)
+  ENDIF(SPHINX_EXECUTABLE)
+ENDIF(SPHINX_STATUS)
+
+# ----
+
+IF(SPHINX_STATUS)
+  SET(SPHINX_IS_OK 1)
+ELSE(SPHINX_STATUS)
+  SET(SPHINX_IS_OK 0)
+  IF(SPHINX_IS_MANDATORY)
+    MESSAGE(FATAL_ERROR "sphinx not found ... mandatory ... abort")
+  ELSE(SPHINX_IS_MANDATORY)
+    MESSAGE(STATUS "sphinx not found ... optional ... disabled")
+  ENDIF(SPHINX_IS_MANDATORY)
+ENDIF(SPHINX_STATUS)
+
+# ----
index 4d2ef90bbace075870ca3c58cdd3d79cb1c28d87..b66106db849f9bd8174535d1289cdf9b2b643ddd 100644 (file)
@@ -38,5 +38,6 @@ FindPLATFORM.cmake \
 FindPTHREADS.cmake \
 FindPYTHON.cmake \
 FindSWIG.cmake \
+FindSPHINX.cmake \
 install_python_from_idl.cmake \
 install_and_compile_python_file.cmake
index 03a650dab9391924230bbb0d31d0db72774d72fc..8c1da811480540d5414eb7c550d5ccbc3b2c936d 100644 (file)
@@ -318,6 +318,7 @@ class CMakeFile(object):
             "IGESExport",
             "IGESImport",
             "MeasureGUI",
+           "Material",
             "NMTDS",
             "NMTTools",
             "OCC2VTK",
@@ -496,6 +497,7 @@ class CMakeFile(object):
                     INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
                     INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindMPI.cmake)
                     INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
+                    INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindSPHINX.cmake)
                     """)
                     pass
                 else:
@@ -576,8 +578,15 @@ class CMakeFile(object):
                             INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
                             INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
                             INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
+                            INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSPHINX.cmake)
                             """)
                             pass
+                        if self.module == "geom":
+                            newlines.append("""
+                            INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSPHINX.cmake)
+                            """)
+                            pass
+
                         if self.module == "netgenplugin":
                             newlines.append("""
                             SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
@@ -631,7 +640,7 @@ class CMakeFile(object):
                             newlines.append("""
                             INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindEXPAT.cmake)
                             INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindGRAPHVIZ.cmake)
-                            INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindSPHINX.cmake)
+                            INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSPHINX.cmake)
                             """)
                             pass
                         if self.module == "hxx2salome":
@@ -1226,7 +1235,33 @@ class CMakeFile(object):
             newlines.append(r"""
             ADD_CUSTOM_TARGET(html_docs ${SPHINX_EXECUTABLE} %s -c ${CMAKE_BINARY_DIR}/doc -b html ${ALLSPHINXOPTS} html
             COMMAND ${PYTHON_EXECUTABLE} -c \"import shutil\;shutil.rmtree('''%s''', True)\;shutil.copytree('''${CMAKE_CURRENT_BINARY_DIR}/html''', '''%s''')\"
-            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})"""%(params, doc_gui_destination, doc_gui_destination))
+            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})"""%(params, doc_gui_destination, doc_gui_destination))              
+       elif mod in ['kernel', 'smesh', 'geom'] and operator.contains(self.root, upmod + '_SRC'+path.sep+'doc'+path.sep+'docutils'):
+            from sys import platform
+            params = ""
+            ext = ""
+            prf = ""
+            if platform == "win32":
+                params = '-Q';
+                ext = "bat"
+                prf = "call"
+            else:
+                ext = "sh"
+                prf = ". "
+            doc_gui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/tui/%s/docutils"%(upmod)
+            scr = self.writeEnvScript(upmod)                   
+            newlines.append(r"""
+            IF(WINDOWS)
+               STRING(REPLACE "/" "\\" SCR "%s")
+            ELSE(WINDOWS)
+               SET(SCR "%s")
+            ENDIF(WINDOWS)
+            FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/env_s.%s "${SCR}")
+            ADD_CUSTOM_TARGET(html_docs %s ${CMAKE_CURRENT_BINARY_DIR}/env_s.%s && ${SPHINX_EXECUTABLE} %s -c ${CMAKE_BINARY_DIR}/doc/docutils -W -b html ${ALLSPHINXOPTS} html
+            COMMAND ${PYTHON_EXECUTABLE} -c \"import shutil\;shutil.rmtree('''%s''', True)\;shutil.copytree('''${CMAKE_CURRENT_BINARY_DIR}/html''', '''%s''')\"
+            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})"""%(scr,scr,ext,prf,ext,params, doc_gui_destination, doc_gui_destination))
+
+
 
 
   # --
@@ -2385,7 +2420,72 @@ class CMakeFile(object):
         f.write(self.content)
         f.close()
         return
-    
+
+    def writeEnvScript(self, upmod):
+        from sys import platform, version_info
+        p_version = """%s.%s"""%(version_info[0],version_info[1])
+        python_path ="PYTHONPATH"
+        path = ""
+        begin = ""
+        end = ""
+        delim = ""
+        cmd = ""
+        pdir = ""
+        omni = ""
+       omni_py = ""
+        if platform == "win32" :               
+            path = "PATH"
+            begin = "%"
+            end = "%"
+            delim = ";"
+            cmd = "@SET "
+            omni = "/x86_win32"
+            omni_py = "/python"
+            pdir = "PDIR"
+        else:
+            path = "LD_LIBRARY_PATH"
+            begin = "\${"
+            end = "}"
+            delim = ":"
+            cmd = "export "
+            omni_py = "/python" + p_version + "/" + "site-packages"
+            pdir = "INST_ROOT"
+
+            
+        path_ = begin + path + end
+        root_dir_ = begin + upmod + "_ROOT_DIR" + end  
+        python_path_ = begin + python_path + end
+        _python_path_ = delim + python_path_+ "\n"
+        _path_ = delim + path_+ "\n" 
+        _pdir = begin + pdir + end 
+           
+        
+        script = cmd + " " + python_path + "=" + root_dir_+"/lib/python" + p_version \
+        + "/site-packages/salome" + _python_path_ 
+        
+        script = script + cmd + " " + python_path + "=" + root_dir_+"/bin/salome" + \
+        _python_path_
+
+        script = script + cmd + " "+ path + "=" + root_dir_+"/lib/salome"+ _path_
+
+       if upmod == "KERNEL" :
+            script = script + cmd + " " +  python_path + "=" + _pdir + \
+            "/omniORB-4.1.5/lib" + omni + _python_path_
+        
+            script = script + cmd + " " + python_path + "=" + _pdir + \
+            "/omniORB-4.1.5/lib" + omni_py + _python_path_
+        
+            script = script + cmd + " "+ path + "=" + _pdir+ "/omniORB-4.1.5/lib" + \
+            omni + _path_
+
+        if upmod == "GEOM" :
+            script = self.writeEnvScript("KERNEL") + script
+            script = self.writeEnvScript("GUI") + script
+
+        if upmod == "SMESH" :
+            script = self.writeEnvScript("GEOM") + script
+
+        return script    
     pass
 
 def convertAmFile(the_root, root, dirs, files, f, module):