Salome HOME
Small fix for check_openmpi.m4
[modules/kernel.git] / salome_adm / cmake_files / FindPYTHON.cmake
index f1215749de83e8414027d5ba63c5fd8338e45d91..9c4bfeb4eca826361be4f5b237a5d6b990000571 100644 (file)
@@ -1,4 +1,4 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+#  Copyright (C) 2007-2010  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
@@ -19,6 +19,7 @@
 #
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # ------
 
 MESSAGE(STATUS "Check for python ...")
@@ -63,29 +64,53 @@ ENDIF(PYTHON_STATUS)
 # ------
 
 IF(PYTHON_STATUS)
+  IF(PYTHON_ROOT_USER)
+    SET(PYTHON_FIND_PATHS_OPTION NO_DEFAULT_PATH)
+  ELSE(PYTHON_ROOT_USER)
+    SET(PYTHON_FIND_PATHS_OPTION)
+  ENDIF(PYTHON_ROOT_USER)
+ENDIF(PYTHON_STATUS)
+
+# ------
+
+IF(PYTHON_STATUS)
+  IF(WINDOWS)
+    IF(CMAKE_BUILD_TYPE STREQUAL Release)
+      SET(PYTHON_EXECUTABLE_TO_FIND python)
+    ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
+      SET(PYTHON_EXECUTABLE_TO_FIND python_d)
+    ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
+  ELSE(WINDOWS)
+    SET(PYTHON_EXECUTABLE_TO_FIND python)
+  ENDIF(WINDOWS)
   IF(NOT PYTHON_ROOT_USER)
+    SET(PYTHON_EXECUTABLE_PATHS)
+  ELSE(NOT PYTHON_ROOT_USER)
     IF(WINDOWS)
-      IF(CMAKE_BUILD_TYPE STREQUAL Release)
-       FIND_PROGRAM(PYTHON_EXECUTABLE python)
-      ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
-       FIND_PROGRAM(PYTHON_EXECUTABLE python_d)
-      ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
+      SET(PYTHON_EXECUTABLE_PATHS ${PYTHON_ROOT_USER})
     ELSE(WINDOWS)
-      FIND_PROGRAM(PYTHON_EXECUTABLE python)
+      SET(PYTHON_EXECUTABLE_PATHS ${PYTHON_ROOT_USER}/bin)
     ENDIF(WINDOWS)
-    IF(PYTHON_EXECUTABLE)
-      MESSAGE(STATUS "python found: ${PYTHON_EXECUTABLE}")
-      IF(PYTHON_EXECUTABLE STREQUAL /usr/bin/python)
-      ELSE(PYTHON_EXECUTABLE STREQUAL /usr/bin/python)
-       SET(PYTHON_ROOT_USER ${PYTHON_EXECUTABLE})
-       GET_FILENAME_COMPONENT(PYTHON_ROOT_USER ${PYTHON_ROOT_USER} PATH)
-       GET_FILENAME_COMPONENT(PYTHON_ROOT_USER ${PYTHON_ROOT_USER} PATH)
-      ENDIF(PYTHON_EXECUTABLE STREQUAL /usr/bin/python)
-    ELSE(PYTHON_EXECUTABLE)
-      MESSAGE(STATUS "python not found, try to use WITH_PYTHON option or PYTHONHOME environment variable")
-      SET(PYTHON_STATUS 0)
-    ENDIF(PYTHON_EXECUTABLE)
   ENDIF(NOT PYTHON_ROOT_USER)
+  FIND_PROGRAM(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE_TO_FIND} PATHS ${PYTHON_EXECUTABLE_PATHS} ${PYTHON_FIND_PATHS_OPTION})
+  IF(PYTHON_EXECUTABLE)
+    MESSAGE(STATUS "python found: ${PYTHON_EXECUTABLE}")
+    IF(PYTHON_EXECUTABLE STREQUAL /usr/bin/python)
+    ELSE(PYTHON_EXECUTABLE STREQUAL /usr/bin/python)
+      SET(PYTHON_ROOT_USER ${PYTHON_EXECUTABLE})
+      GET_FILENAME_COMPONENT(PYTHON_ROOT_USER ${PYTHON_ROOT_USER} PATH)
+      IF(NOT WINDOWS)
+       GET_FILENAME_COMPONENT(PYTHON_ROOT_USER ${PYTHON_ROOT_USER} PATH)
+      ENDIF(NOT WINDOWS)
+    ENDIF(PYTHON_EXECUTABLE STREQUAL /usr/bin/python)
+  ELSE(PYTHON_EXECUTABLE)
+    IF(PYTHON_ROOT_USER)
+      MESSAGE(STATUS "${PYTHON_EXECUTABLE_TO_FIND} not found in ${PYTHON_EXECUTABLE_PATHS}, check your PYTHON installation.")
+    ELSE(PYTHON_ROOT_USER)
+      MESSAGE(STATUS "${PYTHON_EXECUTABLE_TO_FIND} not found on system, try to use WITH_PYTHON option or PYTHON_ROOT environment variable.")
+    ENDIF(PYTHON_ROOT_USER)
+    SET(PYTHON_STATUS 0)
+  ENDIF(PYTHON_EXECUTABLE)
 ENDIF(PYTHON_STATUS)
 
 # ------
@@ -143,7 +168,7 @@ IF(PYTHON_STATUS)
     IF(WINDOWS)
       SET(PYTHON_LIB_PATHS ${PYTHON_ROOT_USER}/libs)
     ELSE(WINDOWS)
-      SET(PYTHON_LIB_PATHS ${PYTHON_ROOT_USER}/lib)
+      SET(PYTHON_LIB_PATHS ${PYTHON_ROOT_USER}/lib ${PYTHON_ROOT_USER}/lib/python${PYTHON_VERSION}/config)
     ENDIF(WINDOWS)
   ELSE(PYTHON_ROOT_USER)
     SET(PYTHON_LIB_PATHS)
@@ -175,6 +200,7 @@ ENDIF(PYTHON_STATUS)
 # ----
 
 IF(PYTHON_STATUS)
+  SET(PYTHON_CPPFLAGS ${PYTHON_INCLUDES})
 ELSE(PYTHON_STATUS)
   IF(PYTHON_IS_MANDATORY)
     MESSAGE(FATAL_ERROR "python not found ... mandatory ... abort")