diff options
| author | Dirk Mueller <mueller@kde.org> | 2008-11-05 00:32:24 +0000 | 
|---|---|---|
| committer | Dirk Mueller <mueller@kde.org> | 2008-11-05 00:32:24 +0000 | 
| commit | 3d39f82870e8a1d4eea0c4c02473686a73a4890f (patch) | |
| tree | 301d835452ca7246418ae9a15f9098e89c6117d3 /modules | |
| parent | c2384636b87fae03be2ffbe61ed836fe62891c07 (diff) | |
| download | extra-cmake-modules-3d39f82870e8a1d4eea0c4c02473686a73a4890f.tar.gz extra-cmake-modules-3d39f82870e8a1d4eea0c4c02473686a73a4890f.tar.bz2 | |
make optional detection of python work if python is not installed
svn path=/trunk/KDE/kdelibs/; revision=880249
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/FindPythonLibrary.cmake | 105 | 
1 files changed, 54 insertions, 51 deletions
| diff --git a/modules/FindPythonLibrary.cmake b/modules/FindPythonLibrary.cmake index 99fefdc2..dd33ab37 100644 --- a/modules/FindPythonLibrary.cmake +++ b/modules/FindPythonLibrary.cmake @@ -24,60 +24,63 @@  INCLUDE(CMakeFindFrameworks) -IF(EXISTS PYTHON_LIBRARY) -   # Already in cache, be silent -   SET(PYTHONLIBRARY_FOUND TRUE) -ELSE(EXISTS PYTHON_LIBRARY) +if(EXISTS PYTHON_LIBRARY) +  # Already in cache, be silent +  set(PYTHONLIBRARY_FOUND TRUE) +else(EXISTS PYTHON_LIBRARY) -  FIND_PACKAGE(PythonInterp REQUIRED) +  FIND_PACKAGE(PythonInterp) -  FIND_FILE(_find_lib_python_py FindLibPython.py PATHS ${CMAKE_MODULE_PATH}) +  if(PYTHONINTERP_FOUND) -  EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE}  ${_find_lib_python_py} OUTPUT_VARIABLE python_config) -  IF(python_config) -    STRING(REGEX REPLACE ".*exec_prefix:([^\n]+).*$" "\\1" PYTHON_PREFIX ${python_config}) -    STRING(REGEX REPLACE ".*\nshort_version:([^\n]+).*$" "\\1" PYTHON_SHORT_VERSION ${python_config}) -    STRING(REGEX REPLACE ".*\nlong_version:([^\n]+).*$" "\\1" PYTHON_LONG_VERSION ${python_config}) -    STRING(REGEX REPLACE ".*\npy_inc_dir:([^\n]+).*$" "\\1" PYTHON_INCLUDE_PATH ${python_config}) -    STRING(REGEX REPLACE ".*\nsite_packages_dir:([^\n]+).*$" "\\1" PYTHON_SITE_PACKAGES_DIR ${python_config}) -    STRING(REGEX REPLACE "([0-9]+).([0-9]+)" "\\1\\2" PYTHON_SHORT_VERSION_NO_DOT ${PYTHON_SHORT_VERSION}) -    set(PYTHON_LIBRARY_NAMES python${PYTHON_SHORT_VERSION} python${PYTHON_SHORT_VERSION_NO_DOT}) -    if(WIN32) -        STRING(REPLACE "\\" "/" PYTHON_SITE_PACKAGES_DIR ${PYTHON_SITE_PACKAGES_DIR}) -    endif(WIN32) -    FIND_LIBRARY(PYTHON_LIBRARY NAMES ${PYTHON_LIBRARY_NAMES} PATHS ${PYTHON_PREFIX}/lib ${PYTHON_PREFIX}/libs NO_DEFAULT_PATH) -    SET(PYTHONLIBRARY_FOUND TRUE) -  ENDIF(python_config) +    FIND_FILE(_find_lib_python_py FindLibPython.py PATHS ${CMAKE_MODULE_PATH}) -  # adapted from cmake's builtin FindPythonLibs -  if(APPLE) -    CMAKE_FIND_FRAMEWORKS(Python) -    SET(PYTHON_FRAMEWORK_INCLUDES) -    IF(Python_FRAMEWORKS) -      # If a framework has been selected for the include path, -      # make sure "-framework" is used to link it. -      IF("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") -        SET(PYTHON_LIBRARY "") -        SET(PYTHON_DEBUG_LIBRARY "") -      ENDIF("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") -      IF(NOT PYTHON_LIBRARY) -        SET (PYTHON_LIBRARY "-framework Python" CACHE FILEPATH "Python Framework" FORCE) -      ENDIF(NOT PYTHON_LIBRARY) -      SET(PYTHONLIBRARY_FOUND TRUE) -    ENDIF(Python_FRAMEWORKS) -  ENDIF(APPLE) +    EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE}  ${_find_lib_python_py} OUTPUT_VARIABLE python_config) +    if(python_config) +      STRING(REGEX REPLACE ".*exec_prefix:([^\n]+).*$" "\\1" PYTHON_PREFIX ${python_config}) +      STRING(REGEX REPLACE ".*\nshort_version:([^\n]+).*$" "\\1" PYTHON_SHORT_VERSION ${python_config}) +      STRING(REGEX REPLACE ".*\nlong_version:([^\n]+).*$" "\\1" PYTHON_LONG_VERSION ${python_config}) +      STRING(REGEX REPLACE ".*\npy_inc_dir:([^\n]+).*$" "\\1" PYTHON_INCLUDE_PATH ${python_config}) +      STRING(REGEX REPLACE ".*\nsite_packages_dir:([^\n]+).*$" "\\1" PYTHON_SITE_PACKAGES_DIR ${python_config}) +      STRING(REGEX REPLACE "([0-9]+).([0-9]+)" "\\1\\2" PYTHON_SHORT_VERSION_NO_DOT ${PYTHON_SHORT_VERSION}) +      set(PYTHON_LIBRARY_NAMES python${PYTHON_SHORT_VERSION} python${PYTHON_SHORT_VERSION_NO_DOT}) +      if(WIN32) +          STRING(REPLACE "\\" "/" PYTHON_SITE_PACKAGES_DIR ${PYTHON_SITE_PACKAGES_DIR}) +      endif(WIN32) +      FIND_LIBRARY(PYTHON_LIBRARY NAMES ${PYTHON_LIBRARY_NAMES} PATHS ${PYTHON_PREFIX}/lib ${PYTHON_PREFIX}/libs NO_DEFAULT_PATH) +      set(PYTHONLIBRARY_FOUND TRUE) +    endif(python_config) -  IF(PYTHONLIBRARY_FOUND) -    SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY}) -    IF(NOT PYTHONLIBRARY_FIND_QUIETLY) -      MESSAGE(STATUS "Found Python executable: ${PYTHON_EXECUTABLE}") -      MESSAGE(STATUS "Found Python version: ${PYTHON_LONG_VERSION}") -      MESSAGE(STATUS "Found Python library: ${PYTHON_LIBRARY}") -    ENDIF(NOT PYTHONLIBRARY_FIND_QUIETLY) -  ELSE(PYTHONLIBRARY_FOUND) -    IF(PYTHONLIBRARY_FIND_REQUIRED) -      MESSAGE(FATAL_ERROR "Could not find Python") -    ENDIF(PYTHONLIBRARY_FIND_REQUIRED) -  ENDIF(PYTHONLIBRARY_FOUND) +    # adapted from cmake's builtin FindPythonLibs +    if(APPLE) +      CMAKE_FIND_FRAMEWORKS(Python) +      set(PYTHON_FRAMEWORK_INCLUDES) +      if(Python_FRAMEWORKS) +        # If a framework has been selected for the include path, +        # make sure "-framework" is used to link it. +        if("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") +          set(PYTHON_LIBRARY "") +          set(PYTHON_DEBUG_LIBRARY "") +        endif("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") +        if(NOT PYTHON_LIBRARY) +          set (PYTHON_LIBRARY "-framework Python" CACHE FILEPATH "Python Framework" FORCE) +        endif(NOT PYTHON_LIBRARY) +        set(PYTHONLIBRARY_FOUND TRUE) +      endif(Python_FRAMEWORKS) +    endif(APPLE) +  endif(PYTHONINTERP_FOUND) -ENDIF (EXISTS PYTHON_LIBRARY) +  if(PYTHONLIBRARY_FOUND) +    set(PYTHON_LIBRARIES ${PYTHON_LIBRARY}) +    if(NOT PYTHONLIBRARY_FIND_QUIETLY) +      message(STATUS "Found Python executable: ${PYTHON_EXECUTABLE}") +      message(STATUS "Found Python version: ${PYTHON_LONG_VERSION}") +      message(STATUS "Found Python library: ${PYTHON_LIBRARY}") +    endif(NOT PYTHONLIBRARY_FIND_QUIETLY) +  else(PYTHONLIBRARY_FOUND) +    if(PYTHONLIBRARY_FIND_REQUIRED) +      message(FATAL_ERROR "Could not find Python") +    endif(PYTHONLIBRARY_FIND_REQUIRED) +  endif(PYTHONLIBRARY_FOUND) + +endif (EXISTS PYTHON_LIBRARY) | 
