@@ -65,29 +65,39 @@ if (PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
6565 target_link_libraries (${SWIG_MODULE_pyopenshot_REAL_NAME}
6666 ${PYTHON_LIBRARIES} openshot)
6767
68- ### Check if the following Debian-friendly python module path exists
69- SET (PYTHON_MODULE_PATH "${CMAKE_INSTALL_PREFIX} /lib/python${PYTHON_VERSION_MAJOR} .${PYTHON_VERSION_MINOR} /site-packages" )
70- if (NOT EXISTS ${PYTHON_MODULE_PATH} )
71-
72- ### Check if another Debian-friendly python module path exists
73- SET (PYTHON_MODULE_PATH "${CMAKE_INSTALL_PREFIX} /lib/python${PYTHON_VERSION_MAJOR} .${PYTHON_VERSION_MINOR} /dist-packages" )
74- if (NOT EXISTS ${PYTHON_MODULE_PATH} )
75-
76- ### Calculate the python module path (using distutils)
77- execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "\
68+ ### FIND THE PYTHON INTERPRETER (AND THE SITE PACKAGES FOLDER)
69+ if (UNIX AND NOT APPLE )
70+ ### Special-case for Debian's crazy, by checking to see if pybuild
71+ ### is available. We don't use it, except as a canary in a coal mine
72+ find_program (PYBUILD_EXECUTABLE pybuild
73+ DOC "Path to Debian's pybuild utility" )
74+ if (PYBUILD_EXECUTABLE)
75+ # We're on a Debian derivative, fall back to old path detection
76+ set (py_detection "import site; print(site.getsitepackages()[0])" )
77+ set (PY_INSTALL_PREFIX "/usr/local" ) # An assumption (bad one?)
78+ else ()
79+ # Use distutils to detect install path
80+ set (py_detection "\
7881from distutils.sysconfig import get_python_lib; \
79- print( get_python_lib( plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX} ' ) )"
80- OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
81- OUTPUT_STRIP_TRAILING_WHITESPACE )
82-
83- GET_FILENAME_COMPONENT (_ABS_PYTHON_MODULE_PATH
84- "${_ABS_PYTHON_MODULE_PATH} " ABSOLUTE )
85- FILE (RELATIVE_PATH _REL_PYTHON_MODULE_PATH
86- ${CMAKE_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH} )
87- SET (PYTHON_MODULE_PATH ${_ABS_PYTHON_MODULE_PATH} )
82+ print( get_python_lib( plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX} ' ) )" )
83+ set (PY_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} )
8884 endif ()
8985 endif ()
90- message ("PYTHON_MODULE_PATH: ${PYTHON_MODULE_PATH} " )
86+
87+ if (NOT PYTHON_MODULE_PATH)
88+ execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "${py_detection} "
89+ OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
90+ OUTPUT_STRIP_TRAILING_WHITESPACE )
91+
92+ GET_FILENAME_COMPONENT (_ABS_PYTHON_MODULE_PATH
93+ "${_ABS_PYTHON_MODULE_PATH} " ABSOLUTE )
94+ FILE (RELATIVE_PATH _REL_PYTHON_MODULE_PATH
95+ ${PY_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH} )
96+ SET (PYTHON_MODULE_PATH ${_REL_PYTHON_MODULE_PATH}
97+ CACHE PATH "Install path for Python modules (relative to prefix)" )
98+ endif ()
99+
100+ message (STATUS "Will install Python module to: ${PYTHON_MODULE_PATH} " )
91101
92102 ############### INSTALL HEADERS & LIBRARY ################
93103 ### Install Python bindings
0 commit comments