Skip to content

Instantly share code, notes, and snippets.

@robertnishihara
Created November 20, 2016 01:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robertnishihara/59e569afef441eb8baa9865437a2d7c3 to your computer and use it in GitHub Desktop.
Save robertnishihara/59e569afef441eb8baa9865437a2d7c3 to your computer and use it in GitHub Desktop.
cmake_minimum_required(VERSION 2.8)
project(testing394233)
if(NOT APPLE)
find_package(PythonInterp REQUIRED)
find_package(PythonLibs ${PYTHONLIBS_VERSION_STRING} EXACT REQUIRED)
set(CUSTOM_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})
else()
message(STATUS "Trying custom approach for finding Python.")
find_program(CUSTOM_PYTHON_EXECUTABLE python)
message(STATUS "Found Python program: ${CUSTOM_PYTHON_EXECUTABLE}")
execute_process(COMMAND ${CUSTOM_PYTHON_EXECUTABLE} -c "import sys; print 'python' + sys.version[0:3]"
OUTPUT_VARIABLE PYTHON_LIBRARY_NAME OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "PYTHON_LIBRARY_NAME: " ${PYTHON_LIBRARY_NAME})
execute_process(COMMAND ${CUSTOM_PYTHON_EXECUTABLE} -c "import sys; print sys.exec_prefix"
OUTPUT_VARIABLE PYTHON_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "PYTHON_PREFIX: " ${PYTHON_PREFIX})
FIND_LIBRARY(PYTHON_LIBRARIES
NAMES ${PYTHON_LIBRARY_NAME}
HINTS "${PYTHON_PREFIX}"
PATH_SUFFIXES "lib" "libs"
NO_DEFAULT_PATH)
message(STATUS "PYTHON_LIBRARIES: " ${PYTHON_LIBRARIES})
execute_process(COMMAND ${CUSTOM_PYTHON_EXECUTABLE} -c "from distutils.sysconfig import *; print get_python_inc()"
OUTPUT_VARIABLE PYTHON_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "PYTHON_INCLUDE_DIRS: " ${PYTHON_INCLUDE_DIRS})
if(PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS)
message(STATUS "The custom approach for finding Python succeeded.")
SET(PYTHONLIBS_FOUND TRUE)
else()
message(WARNING "The custom approach for finding Python failed. Defaulting to find_package.")
find_package(PythonInterp REQUIRED)
find_package(PythonLibs ${PYTHONLIBS_VERSION_STRING} EXACT REQUIRED)
set(CUSTOM_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
endif()
message(STATUS "Using CUSTOM_PYTHON_EXECUTABLE: " ${CUSTOM_PYTHON_EXECUTABLE})
message(STATUS "Using PYTHON_LIBRARIES: " ${PYTHON_LIBRARIES})
message(STATUS "Using PYTHON_INCLUDE_DIRS: " ${PYTHON_INCLUDE_DIRS})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment