From cf4a07a1bafb2d817f91e3d2e75563756e9949d0 Mon Sep 17 00:00:00 2001 From: rnv Date: Mon, 15 Feb 2016 20:05:11 +0300 Subject: [PATCH] Fix compilation with NumPy/SciPy. --- CMakeLists.txt | 3 +- CMakeModules/FindSalomePythonInterp.cmake | 46 +++++++++++++++++++++ CMakeModules/FindSalomePythonLibs.cmake | 49 +++++++++++++++++++++++ 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 CMakeModules/FindSalomePythonInterp.cmake create mode 100644 CMakeModules/FindSalomePythonLibs.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index e6c09ae..4de6cbd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 index 0000000..8b20e14 --- /dev/null +++ b/CMakeModules/FindSalomePythonInterp.cmake @@ -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 index 0000000..427786e --- /dev/null +++ b/CMakeModules/FindSalomePythonLibs.cmake @@ -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() -- 2.39.2