From 37918ebe9f7deb392e7b2b9288ba12756e0c9862 Mon Sep 17 00:00:00 2001 From: rnv Date: Mon, 15 Feb 2016 18:12:28 +0300 Subject: [PATCH] Fix compilation with NumPy/SciPy. --- CMakeLists.txt | 1 + salome_adm/cmake_files/CMakeLists.txt | 1 + .../cmake_files/FindSalomeNumPySciPy.cmake | 52 +++++++++++++++++++ .../cmake_files/FindSalomePythonInterp.cmake | 30 ----------- 4 files changed, 54 insertions(+), 30 deletions(-) create mode 100644 salome_adm/cmake_files/FindSalomeNumPySciPy.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index f4a16cc78..f19ccd811 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,6 +81,7 @@ ENDIF() FIND_PACKAGE(SalomePythonInterp REQUIRED) FIND_PACKAGE(SalomePythonLibs REQUIRED) +FIND_PACKAGE(SalomeNumPySciPy) FIND_PACKAGE(SalomePThread REQUIRED) FIND_PACKAGE(SalomeSWIG REQUIRED) FIND_PACKAGE(SalomeLibXml2 REQUIRED) diff --git a/salome_adm/cmake_files/CMakeLists.txt b/salome_adm/cmake_files/CMakeLists.txt index f29187fea..009db3a8f 100755 --- a/salome_adm/cmake_files/CMakeLists.txt +++ b/salome_adm/cmake_files/CMakeLists.txt @@ -48,6 +48,7 @@ SET(DATA # FindSalomePython.cmake FindSalomePythonLibs.cmake FindSalomePythonInterp.cmake + FindSalomeNumPySciPy.cmake FindSalomeSphinx.cmake FindSalomeSWIG.cmake FindSphinx.cmake diff --git a/salome_adm/cmake_files/FindSalomeNumPySciPy.cmake b/salome_adm/cmake_files/FindSalomeNumPySciPy.cmake new file mode 100644 index 000000000..f88a20bec --- /dev/null +++ b/salome_adm/cmake_files/FindSalomeNumPySciPy.cmake @@ -0,0 +1,52 @@ +# 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: Roman NIKOLAEV +# +# Looking for an installation of NumPy and SciPy, and if found the following variables are set +# NUMPY_INCLUDE_DIR - NumPy header location +# NUMPY_DEFINITIONS - NumPy compiler flags +# SCIPY_DEFINITIONS - SciPy compiler flags +# SCIPY_VERSION - SciPy version +# + +IF(SALOMEPYTHONINTERP_FOUND) + # Numpy + EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy ; import sys ; sys.stdout.write(numpy.get_include())" OUTPUT_VARIABLE NUMPY_INCLUDE_DIR ERROR_QUIET ) + IF(NUMPY_INCLUDE_DIR) + SET(NUMPY_FOUND TRUE) + ENDIF(NUMPY_INCLUDE_DIR) + IF(NUMPY_FOUND) + SET(NUMPY_DEFINITIONS -DWITH_NUMPY) + MESSAGE(STATUS "NumPy found : ${NUMPY_INCLUDE_DIR}") + ELSE(NUMPY_FOUND) + MESSAGE(STATUS "NumPy not found.") + ENDIF(NUMPY_FOUND) + + # SciPy detection + EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import scipy ; import sys ; sys.stdout.write(scipy.version.version)" OUTPUT_VARIABLE SCIPY_VERSION ERROR_QUIET ) + IF(SCIPY_VERSION) + SET(SCIPY_FOUND TRUE) + ENDIF(SCIPY_VERSION) + IF(SCIPY_FOUND) + MESSAGE(STATUS "Scipy found : Version ${SCIPY_VERSION}") + SET(SCIPY_DEFINITIONS -DWITH_SCIPY) + ELSE(SCIPY_FOUND) + MESSAGE(STATUS "SciPy not found.") + ENDIF(SCIPY_FOUND) +ENDIF() \ No newline at end of file diff --git a/salome_adm/cmake_files/FindSalomePythonInterp.cmake b/salome_adm/cmake_files/FindSalomePythonInterp.cmake index 03dc0c626..8b20e14cc 100644 --- a/salome_adm/cmake_files/FindSalomePythonInterp.cmake +++ b/salome_adm/cmake_files/FindSalomePythonInterp.cmake @@ -23,11 +23,6 @@ # # !! Please read the generic detection procedure in SalomeMacros.cmake !! # -# We also look for an installation of NumPy, and if found the following variables are set -# NUMPY_INCLUDE_DIR - NumPy header location -# NUMPY_DEFINITIONS - compiler flag -# and are automatically appended to PYTHON_INCLUDE_DIRS (and PYTHON_DEFINITIONS resp.) -# # Make sure the detection of both libs and interpreter (if both needed) occur in the correct order: IF(SALOMEPYTHONLIBS_FOUND AND NOT SALOMEPYTHONINTERP_FOUND) @@ -45,31 +40,6 @@ 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}") - - ## - ## Specifics -- NumPy/SciPy detection - ## - - # Numpy - EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy ; import sys ; sys.stdout.write(numpy.get_include())" OUTPUT_VARIABLE NUMPY_INCLUDE_DIR ERROR_QUIET ) - IF(NUMPY_INCLUDE_DIR) - SET(NUMPY_FOUND TRUE) - ENDIF(NUMPY_INCLUDE_DIR) - IF(NUMPY_FOUND) - SET(NUMPY_DEFINITIONS "-DWITH_NUMPY") - MESSAGE(STATUS "NumPy found : ${NUMPY_INCLUDE_DIR}") - ELSE(NUMPY_FOUND) - MESSAGE(STATUS "NumPy not found.") - ENDIF(NUMPY_FOUND) - # SciPy detection - EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import scipy ; import sys ; sys.stdout.write(scipy.version.version)" OUTPUT_VARIABLE SCIPY_VERSION ERROR_QUIET ) - IF(SCIPY_VERSION) - SET(SCIPY_FOUND TRUE) - ENDIF(SCIPY_VERSION) - IF(SCIPY_FOUND) - MESSAGE(STATUS "Scipy found : Version ${SCIPY_VERSION}") - ENDIF(SCIPY_FOUND) - SALOME_ACCUMULATE_ENVIRONMENT(PATH ${PYTHON_EXECUTABLE}) SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH ${PYTHON_PYTHONPATH}) ENDIF() -- 2.39.2