@@ -65,29 +65,37 @@ 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+ else ()
78+ # Use distutils to detect install path
79+ set (py_detection "\
7880from 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} )
81+ print( get_python_lib( plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX} ' ) )" )
8882 endif ()
8983 endif ()
90- message ("PYTHON_MODULE_PATH: ${PYTHON_MODULE_PATH} " )
84+
85+ if (NOT PYTHON_MODULE_PATH)
86+ execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "${py_detection} "
87+ OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
88+ OUTPUT_STRIP_TRAILING_WHITESPACE )
89+
90+ GET_FILENAME_COMPONENT (_ABS_PYTHON_MODULE_PATH
91+ "${_ABS_PYTHON_MODULE_PATH} " ABSOLUTE )
92+ FILE (RELATIVE_PATH _REL_PYTHON_MODULE_PATH
93+ ${CMAKE_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH} )
94+ SET (PYTHON_MODULE_PATH ${_REL_PYTHON_MODULE_PATH}
95+ CACHE PATH "Install path for Python modules (relative to prefix)" )
96+ endif ()
97+
98+ message (STATUS "Will install Python module to: ${PYTHON_MODULE_PATH} " )
9199
92100 ############### INSTALL HEADERS & LIBRARY ################
93101 ### Install Python bindings
0 commit comments