Salome HOME
CMake:
[modules/kernel.git] / salome_adm / cmake_files / FindSalomePython.cmake
index c74ae64bda9b6637c74de0065af0668a740aee8d..c775e0163e47a143033141dbf941ad46a28c2100 100644 (file)
 #  !! Please read the generic detection procedure in SalomeMacros.cmake !!
 #
 # The interpreter is found first, and if OK, the corresponding libraries are searched.
-# We ensure the version of the libraries matches the one of the interpreter. 
+# We ensure the version of the libraries matches the one of the interpreter.
+#
+# 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.)    
 #
 
 # 1. Load environment or any previously detected Python
@@ -40,6 +45,12 @@ ENDIF()
 SET(PYTHON_ROOT_DIR "${_dflt_value}" CACHE PATH "Path to Python directory (interpreter and libs)")
 
 # 2. Find package - config mode first (i.e. looking for XYZ-config.cmake)
+IF(WIN32)
+ IF(CMAKE_BUILD_TYPE STREQUAL Debug)
+  SET(PythonInterp_FIND_VERSION _d)
+  SET(PYTHON_DEFINITIONS "-DHAVE_DEBUG_PYTHON")
+ ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
+ENDIF(WIN32)
 IF(EXISTS "${PYTHON_ROOT_DIR}")
   # Hope to find direclty a CMake config file there
   SET(_CONF_DIR "${PYTHON_ROOT_DIR}/share/cmake") 
@@ -135,8 +146,16 @@ IF (SALOMEPYTHON_FOUND)
       ENDIF()        
   ENDIF()
 
-  # 6. Specifics
+  ##
+  ## 6. Save the final detected installation
+  ##
+  SET(PYTHON_ROOT_DIR "${_tmp_ROOT_DIR}")
+  SALOME_ACCUMULATE_HEADERS(PYTHON_INCLUDE_DIR)
 
+  ## 7. Specifics
+  ##
+  
+  # NumPy detection 
   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)
@@ -144,9 +163,9 @@ IF (SALOMEPYTHON_FOUND)
   IF(NUMPY_FOUND)
     SET(PYTHON_INCLUDE_DIRS ${NUMPY_INCLUDE_DIR} ${PYTHON_INCLUDE_DIRS})
     SET(PYTHON_DEFINITIONS "${PYTHON_DEFINITIONS} -DWITH_NUMPY")
-    MESSAGE(STATUS "numpy found : ${NUMPY_INCLUDE_DIR}")
+    MESSAGE(STATUS "NumPy found : ${NUMPY_INCLUDE_DIR}")
   ELSE(NUMPY_FOUND)
-    MESSAGE(STATUS "numpy not found")
+    MESSAGE(STATUS "NumPy not found.")
   ENDIF(NUMPY_FOUND)
 
   ## None here    
@@ -154,4 +173,9 @@ ELSE()
   MESSAGE(STATUS "Python was only partially (or not at all) found .")
 ENDIF()
 
-
+IF(SALOMEPYTHON_FOUND) 
+  #SALOME_ACCUMULATE_HEADERS(PYTHON_INCLUDE_DIR)
+  SALOME_ACCUMULATE_ENVIRONMENT(PATH ${PYTHON_ROOT_DIR}/bin)
+  SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${PYTHON_ROOT_DIR}/lib)
+  SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH ${PYTHON_ROOT_DIR}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
+ENDIF()