|
|
@ -22,6 +22,12 @@ else() |
|
|
|
set(CMAKE_PYTHON_EXTENSION_INSTALL_PATH_BASE "os.path.join(LOADER_DIR, 'not_installed')") |
|
|
|
set(CMAKE_PYTHON_EXTENSION_INSTALL_PATH_BASE "os.path.join(LOADER_DIR, 'not_installed')") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(OpenCV_FOUND) |
|
|
|
|
|
|
|
return() # Ignore "standalone" builds of Python bindings |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set(PYTHON_LOADER_FILES |
|
|
|
set(PYTHON_LOADER_FILES |
|
|
|
"setup.py" "cv2/__init__.py" |
|
|
|
"setup.py" "cv2/__init__.py" |
|
|
|
"cv2/load_config_py2.py" "cv2/load_config_py3.py" |
|
|
|
"cv2/load_config_py2.py" "cv2/load_config_py3.py" |
|
|
@ -39,21 +45,24 @@ foreach(fname ${PYTHON_LOADER_FILES}) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
endforeach() |
|
|
|
endforeach() |
|
|
|
|
|
|
|
|
|
|
|
if(NOT OpenCV_FOUND) # Ignore "standalone" builds of Python bindings |
|
|
|
|
|
|
|
if(WIN32) |
|
|
|
|
|
|
|
|
|
|
|
if(WIN32) |
|
|
|
if(CMAKE_GENERATOR MATCHES "Visual Studio") |
|
|
|
if(CMAKE_GENERATOR MATCHES "Visual Studio") |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_PATH "'${EXECUTABLE_OUTPUT_PATH}/Release'") # TODO: CMAKE_BUILD_TYPE is not defined |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_PATH "'${EXECUTABLE_OUTPUT_PATH}/Release'") # TODO: CMAKE_BUILD_TYPE is not defined |
|
|
|
else() |
|
|
|
else() |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_PATH "'${EXECUTABLE_OUTPUT_PATH}'") |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_PATH "'${EXECUTABLE_OUTPUT_PATH}'") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
else() |
|
|
|
else() |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_PATH "'${LIBRARY_OUTPUT_PATH}'") |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_PATH "'${LIBRARY_OUTPUT_PATH}'") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
string(REPLACE ";" ",\n " CMAKE_PYTHON_BINARIES_PATH "${CMAKE_PYTHON_BINARIES_PATH}") |
|
|
|
string(REPLACE ";" ",\n " CMAKE_PYTHON_BINARIES_PATH "${CMAKE_PYTHON_BINARIES_PATH}") |
|
|
|
configure_file("${PYTHON_SOURCE_DIR}/package/template/config.py.in" "${__loader_path}/cv2/config.py" @ONLY) |
|
|
|
configure_file("${PYTHON_SOURCE_DIR}/package/template/config.py.in" "${__loader_path}/cv2/config.py" @ONLY) |
|
|
|
|
|
|
|
|
|
|
|
# install |
|
|
|
|
|
|
|
if(DEFINED OPENCV_PYTHON_INSTALL_PATH) |
|
|
|
|
|
|
|
|
|
|
|
# install |
|
|
|
|
|
|
|
if(DEFINED OPENCV_PYTHON_INSTALL_PATH) |
|
|
|
if(WIN32) |
|
|
|
if(WIN32) |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_INSTALL_PATH "os.path.join(${CMAKE_PYTHON_EXTENSION_INSTALL_PATH_BASE}, '${OPENCV_BIN_INSTALL_PATH}')") |
|
|
|
list(APPEND CMAKE_PYTHON_BINARIES_INSTALL_PATH "os.path.join(${CMAKE_PYTHON_EXTENSION_INSTALL_PATH_BASE}, '${OPENCV_BIN_INSTALL_PATH}')") |
|
|
|
else() |
|
|
|
else() |
|
|
@ -68,5 +77,52 @@ if(NOT OpenCV_FOUND) # Ignore "standalone" builds of Python bindings |
|
|
|
string(REPLACE ";" ",\n " CMAKE_PYTHON_BINARIES_PATH "${CMAKE_PYTHON_BINARIES_PATH}") |
|
|
|
string(REPLACE ";" ",\n " CMAKE_PYTHON_BINARIES_PATH "${CMAKE_PYTHON_BINARIES_PATH}") |
|
|
|
configure_file("${PYTHON_SOURCE_DIR}/package/template/config.py.in" "${__python_loader_install_tmp_path}/cv2/config.py" @ONLY) |
|
|
|
configure_file("${PYTHON_SOURCE_DIR}/package/template/config.py.in" "${__python_loader_install_tmp_path}/cv2/config.py" @ONLY) |
|
|
|
install(FILES "${__python_loader_install_tmp_path}/cv2/config.py" DESTINATION "${OPENCV_PYTHON_INSTALL_PATH}/cv2/" COMPONENT python) |
|
|
|
install(FILES "${__python_loader_install_tmp_path}/cv2/config.py" DESTINATION "${OPENCV_PYTHON_INSTALL_PATH}/cv2/" COMPONENT python) |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# |
|
|
|
|
|
|
|
# Handle Python extra code (submodules) |
|
|
|
|
|
|
|
# |
|
|
|
|
|
|
|
function(ocv_add_python_files_from_path search_path) |
|
|
|
|
|
|
|
file(GLOB_RECURSE extra_py_files |
|
|
|
|
|
|
|
RELATIVE "${search_path}" |
|
|
|
|
|
|
|
# Plain Python code |
|
|
|
|
|
|
|
"${search_path}/*.py" |
|
|
|
|
|
|
|
# Type annotations |
|
|
|
|
|
|
|
"${search_path}/*.pyi" |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
ocv_debug_message("Extra Py files for ${search_path}: ${extra_py_files}") |
|
|
|
|
|
|
|
if(extra_py_files) |
|
|
|
|
|
|
|
list(SORT extra_py_files) |
|
|
|
|
|
|
|
foreach(filename ${extra_py_files}) |
|
|
|
|
|
|
|
get_filename_component(module "${filename}" DIRECTORY) |
|
|
|
|
|
|
|
if(NOT ${module} IN_LIST extra_modules) |
|
|
|
|
|
|
|
list(APPEND extra_modules ${module}) |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
configure_file("${search_path}/${filename}" "${__loader_path}/cv2/${filename}" COPYONLY) |
|
|
|
|
|
|
|
if(DEFINED OPENCV_PYTHON_INSTALL_PATH) |
|
|
|
|
|
|
|
install(FILES "${search_path}/${filename}" DESTINATION "${OPENCV_PYTHON_INSTALL_PATH}/cv2/${module}/" COMPONENT python) |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
endforeach() |
|
|
|
|
|
|
|
message(STATUS "Found '${extra_modules}' Python modules from ${search_path}") |
|
|
|
|
|
|
|
else() |
|
|
|
|
|
|
|
message(WARNING "Can't add Python files and modules from '${module_path}'. There is no .py or .pyi files") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
endfunction() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ocv_add_python_files_from_path("${PYTHON_SOURCE_DIR}/package/extra_modules") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach(m ${OPENCV_MODULES_BUILD}) |
|
|
|
|
|
|
|
if (";${OPENCV_MODULE_${m}_WRAPPERS};" MATCHES ";python;" AND HAVE_${m} |
|
|
|
|
|
|
|
AND EXISTS "${OPENCV_MODULE_${m}_LOCATION}/misc/python/package" |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
ocv_add_python_files_from_path("${OPENCV_MODULE_${m}_LOCATION}/misc/python/package") |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
endforeach(m) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(NOT "${OPENCV_PYTHON_EXTRA_MODULES_PATH}" STREQUAL "") |
|
|
|
|
|
|
|
foreach(extra_ocv_py_modules_path ${OPENCV_PYTHON_EXTRA_MODULES_PATH}) |
|
|
|
|
|
|
|
ocv_add_python_files_from_path(${extra_ocv_py_modules_path}) |
|
|
|
|
|
|
|
endforeach() |
|
|
|
endif() |
|
|
|
endif() |
|
|
|