Salome HOME
Fix compilation with NumPy/SciPy.
authorrnv <rnv@opencascade.com>
Mon, 15 Feb 2016 17:05:11 +0000 (20:05 +0300)
committerrnv <rnv@opencascade.com>
Mon, 15 Feb 2016 17:05:11 +0000 (20:05 +0300)
CMakeLists.txt
CMakeModules/FindSalomePythonInterp.cmake [new file with mode: 0644]
CMakeModules/FindSalomePythonLibs.cmake [new file with mode: 0644]

index e6c09ae6613ec0b91ae9d115754d28fb27a35185..4de6cbd8a6871a3c4cbbb4e40319a0a2bb673f7a 100644 (file)
@@ -41,7 +41,8 @@ INCLUDE(SalomeMacros)
 
 # Find prerequisites needed to documentation generation
 # ==================================================
-FIND_PACKAGE(SalomePython)
+FIND_PACKAGE(SalomePythonInterp)
+FIND_PACKAGE(SalomePythonLibs)
 FIND_PACKAGE(SalomeDoxygen)
 FIND_PACKAGE(SalomeGraphviz)
 FIND_PACKAGE(SalomeSphinx)
diff --git a/CMakeModules/FindSalomePythonInterp.cmake b/CMakeModules/FindSalomePythonInterp.cmake
new file mode 100644 (file)
index 0000000..8b20e14
--- /dev/null
@@ -0,0 +1,46 @@
+# Copyright (C) 2013-2015  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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# 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
+#
+# Author: Adrien Bruneton
+#
+
+# Python interpreter detection for SALOME
+#
+#  !! Please read the generic detection procedure in SalomeMacros.cmake !!
+#
+
+# Make sure the detection of both libs and interpreter (if both needed) occur in the correct order:
+IF(SALOMEPYTHONLIBS_FOUND AND NOT SALOMEPYTHONINTERP_FOUND)
+   MESSAGE(FATAL_ERROR "Developer error -> Python interpreter should be detected/required before Python libs!")
+ENDIF()
+
+# Use the PYTHON_ROOT_DIR if PYTHONINTERP_ROOT_DIR is not defined:
+SET(PYTHON_ROOT_DIR "$ENV{PYTHON_ROOT_DIR}" CACHE PATH "Path to the Python installation (libs+interpreter)")
+IF(EXISTS "${PYTHON_ROOT_DIR}" AND (NOT PYTHONINTERP_ROOT_DIR))
+  # Extract sub-directory "paraview-x.xx":
+  MESSAGE(STATUS "Setting PYTHONINTERP_ROOT_DIR to: ${PYTHON_ROOT_DIR}")
+  SET(PYTHONINTERP_ROOT_DIR "${PYTHON_ROOT_DIR}" CACHE PATH "Path to PythonInterp directory")
+ENDIF()
+SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(PythonInterp PYTHON_EXECUTABLE 1)
+
+IF(SALOMEPYTHONINTERP_FOUND) 
+  SET(PYTHON_PYTHONPATH "${PYTHON_ROOT_DIR}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
+  SALOME_ACCUMULATE_ENVIRONMENT(PATH ${PYTHON_EXECUTABLE})
+  SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH ${PYTHON_PYTHONPATH})
+ENDIF()
+
diff --git a/CMakeModules/FindSalomePythonLibs.cmake b/CMakeModules/FindSalomePythonLibs.cmake
new file mode 100644 (file)
index 0000000..427786e
--- /dev/null
@@ -0,0 +1,49 @@
+# Copyright (C) 2013-2015  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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# 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
+#
+# Author: Adrien Bruneton
+#
+
+# Python libraries detection for SALOME
+#
+#  !! Please read the generic detection procedure in SalomeMacros.cmake !!
+#
+
+# Use the PYTHON_ROOT_DIR if PYTHONLIBS_ROOT_DIR is not defined:
+SET(PYTHON_ROOT_DIR "$ENV{PYTHON_ROOT_DIR}" CACHE PATH "Path to the Python installation (libs+interpreter)")
+IF(EXISTS "${PYTHON_ROOT_DIR}" AND (NOT PYTHONLIBS_ROOT_DIR))
+  # Extract sub-directory "paraview-x.xx":
+  MESSAGE(STATUS "Setting PYTHONLIBS_ROOT_DIR to: ${PYTHON_ROOT_DIR}")
+  SET(PYTHONLIBS_ROOT_DIR "${PYTHON_ROOT_DIR}" CACHE PATH "Path to PythonLibs directory")
+ENDIF()
+SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(PythonLibs PYTHON_INCLUDE_DIR 2)
+
+IF(SALOMEPYTHONLIBS_FOUND) 
+  SALOME_ACCUMULATE_HEADERS(PYTHON_INCLUDE_DIR)
+  SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${PYTHON_LIBRARIES})
+ENDIF()
+
+## Specifics -- check matching version with Interpreter if already detected:
+IF (SALOMEPYTHONLIBS_FOUND AND SALOMEPYTHONINTERP_FOUND)
+  # Now ensure versions are matching
+  IF("${PYTHONLIBS_VERSION_STRING}" STREQUAL "${PYTHON_VERSION_STRING}")
+    MESSAGE(STATUS "Python libs and interpreter versions are matching: ${PYTHONLIBS_VERSION_STRING}")
+  ELSE()
+    MESSAGE(FATAL_ERROR "Python libs and interpreter versions are NOT matching: ${PYTHONLIBS_VERSION_STRING} vs ${PYTHON_VERSION_STRING}")
+  ENDIF()
+ENDIF()