Merge remote-tracking branch 'upstream/2.4' into merge-2.4
* #1538 from StevenPuttemans:bugfix_3283 * #1545 from alalek:ocl_test_fix_rng * #1551 from alalek:cmake_install_win * #1570 from ilya-lavrenov:ipp_warn_fix * #1573 from alalek:perf_simple_strategy * #1574 from alalek:svm_workaround * #1576 from alalek:ocl_fix_cl_double * #1577 from ilya-lavrenov:ocl_setto_opencl12 * #1578 from asmorkalov:android_fd_cp_fix * #1579 from ilya-lavrenov:ocl_norm * #1582 from sperrholz:ocl-arithm-additions * #1586 from ilya-lavrenov:ocl_setto_win_fix * #1589 from ilya-lavrenov:pr1582_fix * #1591 from alalek:ocl_remove_cl_hpp_h * #1592 from alalek:ocl_program_cache_update * #1593 from ilya-lavrenov:ocl_war_on_double * #1594 from ilya-lavrenov:ocl_perf * #1595 from alalek:cl_code_cleanup * #1596 from alalek:test_fix_run_py * #1597 from alalek:ocl_fix_cleanup * #1598 from alalek:ocl_fix_build_mac * #1599 from ilya-lavrenov:ocl_mac_kernel_warnings * #1601 from ilya-lavrenov:ocl_fix_tvl1_and_sparse * #1602 from alalek:ocl_test_dump_info * #1603 from ilya-lavrenov:ocl_disable_svm_noblas * #1605 from alalek:ocl_fixes * #1606 from ilya-lavrenov:ocl_imgproc * #1607 from ilya-lavrenov:ocl_fft_cleanup * #1608 from alalek:fix_warn_upd_haar * #1609 from ilya-lavrenov:ocl_some_optimization * #1610 from alalek:ocl_fix_perf_kalman * #1612 from alalek:ocl_fix_string_info * #1614 from ilya-lavrenov:ocl_svm_misprint * #1616 from ilya-lavrenov:ocl_cvtColor * #1617 from ilya-lavrenov:ocl_info * #1622 from a0byte:2.4 * #1625 from ilya-lavrenov:to_string Conflicts: cmake/OpenCVConfig.cmake cmake/OpenCVDetectPython.cmake cmake/OpenCVGenConfig.cmake modules/core/CMakeLists.txt modules/nonfree/src/surf.ocl.cpp modules/ocl/include/opencv2/ocl/ocl.hpp modules/ocl/include/opencv2/ocl/private/util.hpp modules/ocl/perf/main.cpp modules/ocl/src/arithm.cpp modules/ocl/src/cl_operations.cpp modules/ocl/src/cl_programcache.cpp modules/ocl/src/color.cpp modules/ocl/src/fft.cpp modules/ocl/src/filtering.cpp modules/ocl/src/gemm.cpp modules/ocl/src/haar.cpp modules/ocl/src/imgproc.cpp modules/ocl/src/matrix_operations.cpp modules/ocl/src/pyrlk.cpp modules/ocl/src/split_merge.cpp modules/ocl/src/svm.cpp modules/ocl/test/main.cpp modules/ocl/test/test_fft.cpp modules/ocl/test/test_moments.cpp modules/ocl/test/test_objdetect.cpp modules/ocl/test/test_optflow.cpp modules/ocl/test/utility.hpp modules/python/CMakeLists.txt modules/ts/include/opencv2/ts.hpp modules/ts/src/ts_perf.cpp samples/android/face-detection/jni/DetectionBasedTracker_jni.cpp
This commit is contained in:
@@ -11,9 +11,11 @@
|
||||
# OPENCV_MODULE_${the_module}_HEADERS
|
||||
# OPENCV_MODULE_${the_module}_SOURCES
|
||||
# OPENCV_MODULE_${the_module}_DEPS - final flattened set of module dependencies
|
||||
# OPENCV_MODULE_${the_module}_DEPS_EXT
|
||||
# OPENCV_MODULE_${the_module}_DEPS_EXT - non-module dependencies
|
||||
# OPENCV_MODULE_${the_module}_REQ_DEPS
|
||||
# OPENCV_MODULE_${the_module}_OPT_DEPS
|
||||
# OPENCV_MODULE_${the_module}_PRIVATE_REQ_DEPS
|
||||
# OPENCV_MODULE_${the_module}_PRIVATE_OPT_DEPS
|
||||
# HAVE_${the_module} - for fast check of module availability
|
||||
|
||||
# To control the setup of the module you could also set:
|
||||
@@ -48,6 +50,8 @@ foreach(mod ${OPENCV_MODULES_BUILD} ${OPENCV_MODULES_DISABLED_USER} ${OPENCV_MOD
|
||||
endif()
|
||||
unset(OPENCV_MODULE_${mod}_REQ_DEPS CACHE)
|
||||
unset(OPENCV_MODULE_${mod}_OPT_DEPS CACHE)
|
||||
unset(OPENCV_MODULE_${mod}_PRIVATE_REQ_DEPS CACHE)
|
||||
unset(OPENCV_MODULE_${mod}_PRIVATE_OPT_DEPS CACHE)
|
||||
endforeach()
|
||||
|
||||
# clean modules info which needs to be recalculated
|
||||
@@ -69,6 +73,10 @@ macro(ocv_add_dependencies full_modname)
|
||||
set(__depsvar OPENCV_MODULE_${full_modname}_REQ_DEPS)
|
||||
elseif(d STREQUAL "OPTIONAL")
|
||||
set(__depsvar OPENCV_MODULE_${full_modname}_OPT_DEPS)
|
||||
elseif(d STREQUAL "PRIVATE_REQUIRED")
|
||||
set(__depsvar OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS)
|
||||
elseif(d STREQUAL "PRIVATE_OPTIONAL")
|
||||
set(__depsvar OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS)
|
||||
else()
|
||||
list(APPEND ${__depsvar} "${d}")
|
||||
endif()
|
||||
@@ -77,9 +85,17 @@ macro(ocv_add_dependencies full_modname)
|
||||
|
||||
ocv_list_unique(OPENCV_MODULE_${full_modname}_REQ_DEPS)
|
||||
ocv_list_unique(OPENCV_MODULE_${full_modname}_OPT_DEPS)
|
||||
ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS)
|
||||
ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS)
|
||||
|
||||
set(OPENCV_MODULE_${full_modname}_REQ_DEPS ${OPENCV_MODULE_${full_modname}_REQ_DEPS} CACHE INTERNAL "Required dependencies of ${full_modname} module")
|
||||
set(OPENCV_MODULE_${full_modname}_OPT_DEPS ${OPENCV_MODULE_${full_modname}_OPT_DEPS} CACHE INTERNAL "Optional dependencies of ${full_modname} module")
|
||||
set(OPENCV_MODULE_${full_modname}_REQ_DEPS ${OPENCV_MODULE_${full_modname}_REQ_DEPS}
|
||||
CACHE INTERNAL "Required dependencies of ${full_modname} module")
|
||||
set(OPENCV_MODULE_${full_modname}_OPT_DEPS ${OPENCV_MODULE_${full_modname}_OPT_DEPS}
|
||||
CACHE INTERNAL "Optional dependencies of ${full_modname} module")
|
||||
set(OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS ${OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS}
|
||||
CACHE INTERNAL "Required private dependencies of ${full_modname} module")
|
||||
set(OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS ${OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS}
|
||||
CACHE INTERNAL "Optional private dependencies of ${full_modname} module")
|
||||
endmacro()
|
||||
|
||||
# declare new OpenCV module in current folder
|
||||
@@ -173,126 +189,6 @@ macro(ocv_module_disable module)
|
||||
endmacro()
|
||||
|
||||
|
||||
# Internal macro; partly disables OpenCV module
|
||||
macro(__ocv_module_turn_off the_module)
|
||||
list(REMOVE_ITEM OPENCV_MODULES_DISABLED_AUTO "${the_module}")
|
||||
list(APPEND OPENCV_MODULES_DISABLED_AUTO "${the_module}")
|
||||
list(REMOVE_ITEM OPENCV_MODULES_BUILD "${the_module}")
|
||||
list(REMOVE_ITEM OPENCV_MODULES_PUBLIC "${the_module}")
|
||||
set(HAVE_${the_module} OFF CACHE INTERNAL "Module ${the_module} can not be built in current configuration")
|
||||
endmacro()
|
||||
|
||||
# Internal macro for dependencies tracking
|
||||
macro(__ocv_flatten_module_required_dependencies the_module)
|
||||
set(__flattened_deps "")
|
||||
set(__resolved_deps "")
|
||||
set(__req_depends ${OPENCV_MODULE_${the_module}_REQ_DEPS})
|
||||
|
||||
while(__req_depends)
|
||||
ocv_list_pop_front(__req_depends __dep)
|
||||
if(__dep STREQUAL the_module)
|
||||
__ocv_module_turn_off(${the_module}) # TODO: think how to deal with cyclic dependency
|
||||
break()
|
||||
elseif(";${OPENCV_MODULES_DISABLED_USER};${OPENCV_MODULES_DISABLED_AUTO};" MATCHES ";${__dep};")
|
||||
__ocv_module_turn_off(${the_module}) # depends on disabled module
|
||||
list(APPEND __flattened_deps "${__dep}")
|
||||
elseif(";${OPENCV_MODULES_BUILD};" MATCHES ";${__dep};")
|
||||
if(";${__resolved_deps};" MATCHES ";${__dep};")
|
||||
list(APPEND __flattened_deps "${__dep}") # all dependencies of this module are already resolved
|
||||
else()
|
||||
# put all required subdependencies before this dependency and mark it as resolved
|
||||
list(APPEND __resolved_deps "${__dep}")
|
||||
list(INSERT __req_depends 0 ${OPENCV_MODULE_${__dep}_REQ_DEPS} ${__dep})
|
||||
endif()
|
||||
elseif(__dep MATCHES "^opencv_")
|
||||
__ocv_module_turn_off(${the_module}) # depends on missing module
|
||||
message(WARNING "Unknown \"${__dep}\" module is listened in the dependencies of \"${the_module}\" module")
|
||||
break()
|
||||
else()
|
||||
# skip non-modules
|
||||
endif()
|
||||
endwhile()
|
||||
|
||||
if(__flattened_deps)
|
||||
list(REMOVE_DUPLICATES __flattened_deps)
|
||||
set(OPENCV_MODULE_${the_module}_DEPS ${__flattened_deps})
|
||||
else()
|
||||
set(OPENCV_MODULE_${the_module}_DEPS "")
|
||||
endif()
|
||||
|
||||
ocv_clear_vars(__resolved_deps __flattened_deps __req_depends __dep)
|
||||
endmacro()
|
||||
|
||||
# Internal macro for dependencies tracking
|
||||
macro(__ocv_flatten_module_optional_dependencies the_module)
|
||||
set(__flattened_deps "")
|
||||
set(__resolved_deps "")
|
||||
set(__opt_depends ${OPENCV_MODULE_${the_module}_REQ_DEPS} ${OPENCV_MODULE_${the_module}_OPT_DEPS})
|
||||
|
||||
while(__opt_depends)
|
||||
ocv_list_pop_front(__opt_depends __dep)
|
||||
if(__dep STREQUAL the_module)
|
||||
__ocv_module_turn_off(${the_module}) # TODO: think how to deal with cyclic dependency
|
||||
break()
|
||||
elseif(";${OPENCV_MODULES_BUILD};" MATCHES ";${__dep};")
|
||||
if(";${__resolved_deps};" MATCHES ";${__dep};")
|
||||
list(APPEND __flattened_deps "${__dep}") # all dependencies of this module are already resolved
|
||||
else()
|
||||
# put all subdependencies before this dependency and mark it as resolved
|
||||
list(APPEND __resolved_deps "${__dep}")
|
||||
list(INSERT __opt_depends 0 ${OPENCV_MODULE_${__dep}_REQ_DEPS} ${OPENCV_MODULE_${__dep}_OPT_DEPS} ${__dep})
|
||||
endif()
|
||||
else()
|
||||
# skip non-modules or missing modules
|
||||
endif()
|
||||
endwhile()
|
||||
|
||||
if(__flattened_deps)
|
||||
list(REMOVE_DUPLICATES __flattened_deps)
|
||||
set(OPENCV_MODULE_${the_module}_DEPS ${__flattened_deps})
|
||||
else()
|
||||
set(OPENCV_MODULE_${the_module}_DEPS "")
|
||||
endif()
|
||||
|
||||
ocv_clear_vars(__resolved_deps __flattened_deps __opt_depends __dep)
|
||||
endmacro()
|
||||
|
||||
macro(__ocv_flatten_module_dependencies)
|
||||
foreach(m ${OPENCV_MODULES_DISABLED_USER})
|
||||
set(HAVE_${m} OFF CACHE INTERNAL "Module ${m} will not be built in current configuration")
|
||||
endforeach()
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
set(HAVE_${m} ON CACHE INTERNAL "Module ${m} will be built in current configuration")
|
||||
__ocv_flatten_module_required_dependencies(${m})
|
||||
set(OPENCV_MODULE_${m}_DEPS ${OPENCV_MODULE_${m}_DEPS} CACHE INTERNAL "Flattened required dependencies of ${m} module")
|
||||
endforeach()
|
||||
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
__ocv_flatten_module_optional_dependencies(${m})
|
||||
|
||||
# save dependencies from other modules
|
||||
set(OPENCV_MODULE_${m}_DEPS ${OPENCV_MODULE_${m}_DEPS} CACHE INTERNAL "Flattened dependencies of ${m} module")
|
||||
# save extra dependencies
|
||||
set(OPENCV_MODULE_${m}_DEPS_EXT ${OPENCV_MODULE_${m}_REQ_DEPS} ${OPENCV_MODULE_${m}_OPT_DEPS})
|
||||
if(OPENCV_MODULE_${m}_DEPS_EXT AND OPENCV_MODULE_${m}_DEPS)
|
||||
list(REMOVE_ITEM OPENCV_MODULE_${m}_DEPS_EXT ${OPENCV_MODULE_${m}_DEPS})
|
||||
endif()
|
||||
ocv_list_filterout(OPENCV_MODULE_${m}_DEPS_EXT "^opencv_[^ ]+$")
|
||||
set(OPENCV_MODULE_${m}_DEPS_EXT ${OPENCV_MODULE_${m}_DEPS_EXT} CACHE INTERNAL "Extra dependencies of ${m} module")
|
||||
endforeach()
|
||||
|
||||
# order modules by dependencies
|
||||
set(OPENCV_MODULES_BUILD_ "")
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
list(APPEND OPENCV_MODULES_BUILD_ ${OPENCV_MODULE_${m}_DEPS} ${m})
|
||||
endforeach()
|
||||
ocv_list_unique(OPENCV_MODULES_BUILD_)
|
||||
|
||||
set(OPENCV_MODULES_PUBLIC ${OPENCV_MODULES_PUBLIC} CACHE INTERNAL "List of OpenCV modules marked for export")
|
||||
set(OPENCV_MODULES_BUILD ${OPENCV_MODULES_BUILD_} CACHE INTERNAL "List of OpenCV modules included into the build")
|
||||
set(OPENCV_MODULES_DISABLED_AUTO ${OPENCV_MODULES_DISABLED_AUTO} CACHE INTERNAL "List of OpenCV modules implicitly disabled due to dependencies")
|
||||
endmacro()
|
||||
|
||||
# collect modules from specified directories
|
||||
# NB: must be called only once!
|
||||
macro(ocv_glob_modules)
|
||||
@@ -342,7 +238,7 @@ macro(ocv_glob_modules)
|
||||
ocv_clear_vars(__ocvmodules __directories_observed __path __modpath __pathIdx)
|
||||
|
||||
# resolve dependencies
|
||||
__ocv_flatten_module_dependencies()
|
||||
__ocv_resolve_dependencies()
|
||||
|
||||
# create modules
|
||||
set(OPENCV_INITIAL_PASS OFF PARENT_SCOPE)
|
||||
@@ -351,11 +247,167 @@ macro(ocv_glob_modules)
|
||||
if(m MATCHES "^opencv_")
|
||||
string(REGEX REPLACE "^opencv_" "" __shortname "${m}")
|
||||
add_subdirectory("${OPENCV_MODULE_${m}_LOCATION}" "${CMAKE_CURRENT_BINARY_DIR}/${__shortname}")
|
||||
else()
|
||||
message(WARNING "Check module name: ${m}")
|
||||
add_subdirectory("${OPENCV_MODULE_${m}_LOCATION}" "${CMAKE_CURRENT_BINARY_DIR}/${m}")
|
||||
endif()
|
||||
endforeach()
|
||||
unset(__shortname)
|
||||
endmacro()
|
||||
|
||||
|
||||
# disables OpenCV module with missing dependencies
|
||||
function(__ocv_module_turn_off the_module)
|
||||
list(REMOVE_ITEM OPENCV_MODULES_DISABLED_AUTO "${the_module}")
|
||||
list(APPEND OPENCV_MODULES_DISABLED_AUTO "${the_module}")
|
||||
list(REMOVE_ITEM OPENCV_MODULES_BUILD "${the_module}")
|
||||
list(REMOVE_ITEM OPENCV_MODULES_PUBLIC "${the_module}")
|
||||
set(HAVE_${the_module} OFF CACHE INTERNAL "Module ${the_module} can not be built in current configuration")
|
||||
|
||||
set(OPENCV_MODULES_DISABLED_AUTO "${OPENCV_MODULES_DISABLED_AUTO}" CACHE INTERNAL "")
|
||||
set(OPENCV_MODULES_BUILD "${OPENCV_MODULES_BUILD}" CACHE INTERNAL "")
|
||||
set(OPENCV_MODULES_PUBLIC "${OPENCV_MODULES_PUBLIC}" CACHE INTERNAL "")
|
||||
endfunction()
|
||||
|
||||
# sort modules by dependencies
|
||||
function(__ocv_sort_modules_by_deps __lst)
|
||||
ocv_list_sort(${__lst})
|
||||
set(${__lst}_ORDERED ${${__lst}} CACHE INTERNAL "")
|
||||
set(__result "")
|
||||
foreach (m ${${__lst}})
|
||||
list(LENGTH __result __lastindex)
|
||||
set(__index ${__lastindex})
|
||||
foreach (__d ${__result})
|
||||
set(__deps "${OPENCV_MODULE_${__d}_DEPS}")
|
||||
if(";${__deps};" MATCHES ";${m};")
|
||||
list(FIND __result "${__d}" __i)
|
||||
if(__i LESS "${__index}")
|
||||
set(__index "${__i}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
if(__index STREQUAL __lastindex)
|
||||
list(APPEND __result "${m}")
|
||||
else()
|
||||
list(INSERT __result ${__index} "${m}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(${__lst} "${__result}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# resolve dependensies
|
||||
function(__ocv_resolve_dependencies)
|
||||
foreach(m ${OPENCV_MODULES_DISABLED_USER})
|
||||
set(HAVE_${m} OFF CACHE INTERNAL "Module ${m} will not be built in current configuration")
|
||||
endforeach()
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
set(HAVE_${m} ON CACHE INTERNAL "Module ${m} will be built in current configuration")
|
||||
endforeach()
|
||||
|
||||
# disable MODULES with unresolved dependencies
|
||||
set(has_changes ON)
|
||||
while(has_changes)
|
||||
set(has_changes OFF)
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
set(__deps ${OPENCV_MODULE_${m}_REQ_DEPS} ${OPENCV_MODULE_${m}_PRIVATE_REQ_DEPS})
|
||||
while(__deps)
|
||||
ocv_list_pop_front(__deps d)
|
||||
string(TOLOWER "${d}" upper_d)
|
||||
if(NOT (HAVE_${d} OR HAVE_${upper_d} OR TARGET ${d} OR EXISTS ${d}))
|
||||
if(d MATCHES "^opencv_") # TODO Remove this condition in the future and use HAVE_ variables only
|
||||
message(STATUS "Module ${m} disabled because ${d} dependency can't be resolved!")
|
||||
__ocv_module_turn_off(${m})
|
||||
set(has_changes ON)
|
||||
break()
|
||||
else()
|
||||
message(STATUS "Assume that non-module dependency is available: ${d} (for module ${m})")
|
||||
endif()
|
||||
endif()
|
||||
endwhile()
|
||||
endforeach()
|
||||
endwhile()
|
||||
|
||||
# message(STATUS "List of active modules: ${OPENCV_MODULES_BUILD}")
|
||||
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
set(deps_${m} ${OPENCV_MODULE_${m}_REQ_DEPS})
|
||||
foreach(d ${OPENCV_MODULE_${m}_OPT_DEPS})
|
||||
if(NOT (";${deps_${m}};" MATCHES ";${d};"))
|
||||
if(HAVE_${d} OR TARGET ${d})
|
||||
list(APPEND deps_${m} ${d})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
# message(STATUS "Initial deps of ${m} (w/o private deps): ${deps_${m}}")
|
||||
endforeach()
|
||||
|
||||
# propagate dependencies
|
||||
set(has_changes ON)
|
||||
while(has_changes)
|
||||
set(has_changes OFF)
|
||||
foreach(m2 ${OPENCV_MODULES_BUILD}) # transfer deps of m2 to m
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
if((NOT m STREQUAL m2) AND ";${deps_${m}};" MATCHES ";${m2};")
|
||||
foreach(d ${deps_${m2}})
|
||||
if(NOT (";${deps_${m}};" MATCHES ";${d};"))
|
||||
# message(STATUS " Transfer dependency ${d} from ${m2} to ${m}")
|
||||
list(APPEND deps_${m} ${d})
|
||||
set(has_changes ON)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
endwhile()
|
||||
|
||||
# process private deps
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
foreach(d ${OPENCV_MODULE_${m}_PRIVATE_REQ_DEPS})
|
||||
if(NOT (";${deps_${m}};" MATCHES ";${d};"))
|
||||
list(APPEND deps_${m} ${d})
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(d ${OPENCV_MODULE_${m}_PRIVATE_OPT_DEPS})
|
||||
if(NOT (";${deps_${m}};" MATCHES ";${d};"))
|
||||
if(HAVE_${d} OR TARGET ${d})
|
||||
list(APPEND deps_${m} ${d})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
ocv_list_sort(OPENCV_MODULES_BUILD)
|
||||
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
# message(STATUS "FULL deps of ${m}: ${deps_${m}}")
|
||||
set(OPENCV_MODULE_${m}_DEPS ${deps_${m}})
|
||||
set(OPENCV_MODULE_${m}_DEPS_EXT ${deps_${m}})
|
||||
ocv_list_filterout(OPENCV_MODULE_${m}_DEPS_EXT "^opencv_[^ ]+$")
|
||||
if(OPENCV_MODULE_${m}_DEPS_EXT AND OPENCV_MODULE_${m}_DEPS)
|
||||
list(REMOVE_ITEM OPENCV_MODULE_${m}_DEPS ${OPENCV_MODULE_${m}_DEPS_EXT})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# reorder dependencies
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
__ocv_sort_modules_by_deps(OPENCV_MODULE_${m}_DEPS)
|
||||
ocv_list_sort(OPENCV_MODULE_${m}_DEPS_EXT)
|
||||
|
||||
set(OPENCV_MODULE_${m}_DEPS ${OPENCV_MODULE_${m}_DEPS} CACHE INTERNAL "Flattened dependencies of ${m} module")
|
||||
set(OPENCV_MODULE_${m}_DEPS_EXT ${OPENCV_MODULE_${m}_DEPS_EXT} CACHE INTERNAL "Extra dependencies of ${m} module")
|
||||
|
||||
# message(STATUS " module deps: ${OPENCV_MODULE_${m}_DEPS}")
|
||||
# message(STATUS " extra deps: ${OPENCV_MODULE_${m}_DEPS_EXT}")
|
||||
endforeach()
|
||||
|
||||
__ocv_sort_modules_by_deps(OPENCV_MODULES_BUILD)
|
||||
|
||||
set(OPENCV_MODULES_PUBLIC ${OPENCV_MODULES_PUBLIC} CACHE INTERNAL "List of OpenCV modules marked for export")
|
||||
set(OPENCV_MODULES_BUILD ${OPENCV_MODULES_BUILD} CACHE INTERNAL "List of OpenCV modules included into the build")
|
||||
set(OPENCV_MODULES_DISABLED_AUTO ${OPENCV_MODULES_DISABLED_AUTO} CACHE INTERNAL "List of OpenCV modules implicitly disabled due to dependencies")
|
||||
endfunction()
|
||||
|
||||
|
||||
# setup include paths for the list of passed modules
|
||||
macro(ocv_include_modules)
|
||||
foreach(d ${ARGN})
|
||||
@@ -377,7 +429,7 @@ macro(ocv_include_modules_recurse)
|
||||
ocv_include_directories("${OPENCV_MODULE_${d}_LOCATION}/include")
|
||||
endif()
|
||||
if(OPENCV_MODULE_${d}_DEPS)
|
||||
ocv_include_modules_recurse(${OPENCV_MODULE_${d}_DEPS})
|
||||
ocv_include_modules(${OPENCV_MODULE_${d}_DEPS})
|
||||
endif()
|
||||
elseif(EXISTS "${d}")
|
||||
ocv_include_directories("${d}")
|
||||
@@ -436,7 +488,6 @@ macro(ocv_glob_module_sources)
|
||||
file(GLOB lib_cuda_srcs "src/cuda/*.cu")
|
||||
set(cuda_objs "")
|
||||
set(lib_cuda_hdrs "")
|
||||
|
||||
if(HAVE_CUDA AND lib_cuda_srcs)
|
||||
ocv_include_directories(${CUDA_INCLUDE_DIRS})
|
||||
file(GLOB lib_cuda_hdrs "src/cuda/*.hpp")
|
||||
@@ -448,7 +499,6 @@ macro(ocv_glob_module_sources)
|
||||
source_group("Src" FILES ${lib_srcs} ${lib_int_hdrs})
|
||||
|
||||
file(GLOB cl_kernels "src/opencl/*.cl")
|
||||
|
||||
if(HAVE_OPENCL AND cl_kernels)
|
||||
ocv_include_directories(${OPENCL_INCLUDE_DIRS})
|
||||
add_custom_command(
|
||||
@@ -487,12 +537,10 @@ macro(ocv_create_module)
|
||||
endif()
|
||||
|
||||
if(NOT "${ARGN}" STREQUAL "SKIP_LINK")
|
||||
target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
|
||||
target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS})
|
||||
target_link_libraries(${the_module} LINK_PRIVATE ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
|
||||
if (HAVE_CUDA)
|
||||
target_link_libraries(${the_module} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
|
||||
endif()
|
||||
if(HAVE_OPENCL AND OPENCL_LIBRARIES)
|
||||
target_link_libraries(${the_module} ${OPENCL_LIBRARIES})
|
||||
target_link_libraries(${the_module} LINK_PRIVATE ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -533,8 +581,8 @@ macro(ocv_create_module)
|
||||
set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:libc /DEBUG")
|
||||
endif()
|
||||
|
||||
install(TARGETS ${the_module}
|
||||
RUNTIME DESTINATION bin COMPONENT main
|
||||
ocv_install_target(${the_module} EXPORT OpenCVModules
|
||||
RUNTIME DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT main
|
||||
LIBRARY DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
|
||||
ARCHIVE DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
|
||||
)
|
||||
|
Reference in New Issue
Block a user