diff options
Diffstat (limited to 'build_files/cmake')
-rw-r--r-- | build_files/cmake/macros.cmake | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 202b44f611c..aeedcf30c31 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -1139,6 +1139,7 @@ endfunction() function(find_python_package package + relative_include_dir ) string(TOUPPER ${package} _upper_package) @@ -1170,7 +1171,10 @@ function(find_python_package dist-packages vendor-packages NO_DEFAULT_PATH + DOC + "Path to python site-packages or dist-packages containing '${package}' module" ) + mark_as_advanced(PYTHON_${_upper_package}_PATH) if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}") message(WARNING @@ -1188,6 +1192,42 @@ function(find_python_package set(WITH_PYTHON_INSTALL_${_upper_package} OFF PARENT_SCOPE) else() message(STATUS "${package} found at '${PYTHON_${_upper_package}_PATH}'") + + if(NOT "${relative_include_dir}" STREQUAL "") + unset(PYTHON_${_upper_package}_INCLUDE_DIRS CACHE) + find_path(PYTHON_${_upper_package}_INCLUDE_DIRS + NAMES + "${package}/${relative_include_dir}" + HINTS + "${PYTHON_LIBPATH}/" + "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/" + "${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/" + PATH_SUFFIXES + "site-packages/" + "dist-packages/" + "vendor-packages/" + NO_DEFAULT_PATH + DOC + "Path to python site-packages or dist-packages containing '${package}' module header files" + ) + mark_as_advanced(PYTHON_${_upper_package}_INCLUDE_DIRS) + + if(NOT EXISTS "${PYTHON_${_upper_package}_INCLUDE_DIRS}") + message(WARNING + "Python package '${package}' include dir path could not be found in:\n" + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${package}/${relative_include_dir}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}/${relative_include_dir}', " + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}/${relative_include_dir}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}/${relative_include_dir}', " + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}/${relative_include_dir}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}/${relative_include_dir}', " + "\n" + "The 'WITH_PYTHON_${_upper_package}' option will be disabled.\n" + "The build will be usable, only add-ons that depend on this package won't be functional." + ) + set(WITH_PYTHON_${_upper_package} OFF PARENT_SCOPE) + endif() + endif() endif() endif() endfunction() |