diff --git a/find-modules/FindPythonModuleGeneration.cmake b/find-modules/FindPythonModuleGeneration.cmake --- a/find-modules/FindPythonModuleGeneration.cmake +++ b/find-modules/FindPythonModuleGeneration.cmake @@ -132,6 +132,12 @@ add_library(Python::Libs${version} UNKNOWN IMPORTED) set_property(TARGET Python::Libs${version} PROPERTY IMPORTED_LOCATION ${GPB_PYTHON${version}_LIBRARY}) set_property(TARGET Python::Libs${version} PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GPB_PYTHON${version}_INCLUDE_DIR}) + + if (NOT GPB_PYTHON${version}_SITEARCH) + execute_process (COMMAND "${GPB_PYTHON${version}_COMMAND}" -c "import sys; from distutils import sysconfig;sys.stdout.write(sysconfig.get_python_lib(plat_specific=True,standard_lib=False))" + OUTPUT_VARIABLE GPB_PYTHON${version}_SITEARCH) + endif() + endif() endmacro() @@ -423,6 +429,7 @@ foreach(pyversion ${_pyversions}) message(STATUS "Found dependencies for python${pyversion}, generating bindings") + message(STATUS "Python${pyversion} install dir: ${GPB_PYTHON${pyversion}_SITEARCH}") execute_process(COMMAND "${CMAKE_COMMAND}" "-DPYTHON_UMBRELLA_MODULE_FILE=${CMAKE_BINARY_DIR}/py${pyversion}/${GPB_PYTHONNAMESPACE}/__init__.py" @@ -446,7 +453,7 @@ OUTPUT_NAME "${GPB_MODULENAME}") if (GPB_SIP_DEPENDS MATCHES PyKF5) - set(_kf5_python_prefix ${CMAKE_INSTALL_PREFIX}/lib/python${pyversion${pyversion}_maj_min}/${GPB_INSTALL_DIR_SUFFIX}) + set(_kf5_python_prefix ${GPB_PYTHON${pyversion}_SITEARCH}) else() set(_kf5_python_prefix ${CMAKE_BINARY_DIR}/py${pyversion}) endif() @@ -456,7 +463,7 @@ ) install(DIRECTORY ${CMAKE_BINARY_DIR}/py${pyversion}/${GPB_PYTHONNAMESPACE} - DESTINATION lib/python${pyversion${pyversion}_maj_min}/${GPB_INSTALL_DIR_SUFFIX}) + DESTINATION ${GPB_PYTHON${pyversion}_SITEARCH}) install(FILES ${sip_files} "${CMAKE_CURRENT_BINARY_DIR}/sip/${GPB_PYTHONNAMESPACE}/${GPB_MODULENAME}/${GPB_MODULENAME}mod.sip" DESTINATION share/sip/${GPB_PYTHONNAMESPACE}/${GPB_MODULENAME} )