mirror of
https://github.com/opencv/opencv.git
synced 2024-11-28 05:06:29 +08:00
Merge pull request #9893 from mshabunin:add-modules-whitelist
This commit is contained in:
commit
5d369afe27
@ -416,6 +416,41 @@ function(__ocv_resolve_dependencies)
|
||||
set(HAVE_${m} ON CACHE INTERNAL "Module ${m} will be built in current configuration")
|
||||
endforeach()
|
||||
|
||||
# Whitelist feature
|
||||
if(BUILD_LIST)
|
||||
# Prepare the list
|
||||
string(REGEX REPLACE "[ ,:]+" ";" whitelist "${BUILD_LIST}" )
|
||||
if(BUILD_opencv_world)
|
||||
list(APPEND whitelist world)
|
||||
endif()
|
||||
ocv_list_add_prefix(whitelist "opencv_")
|
||||
ocv_list_sort(whitelist)
|
||||
ocv_list_unique(whitelist)
|
||||
message(STATUS "Using whitelist: ${whitelist}")
|
||||
# Expand the list
|
||||
foreach(depth RANGE 10)
|
||||
set(new_whitelist ${whitelist})
|
||||
foreach(m ${whitelist})
|
||||
list(APPEND new_whitelist ${OPENCV_MODULE_${m}_REQ_DEPS})
|
||||
list(APPEND new_whitelist ${OPENCV_MODULE_${m}_PRIVATE_REQ_DEPS})
|
||||
endforeach()
|
||||
ocv_list_sort(new_whitelist)
|
||||
ocv_list_unique(new_whitelist)
|
||||
if("${whitelist}" STREQUAL "${new_whitelist}")
|
||||
break()
|
||||
endif()
|
||||
set(whitelist "${new_whitelist}")
|
||||
endforeach()
|
||||
# Disable modules not in whitelist
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
list(FIND whitelist ${m} idx)
|
||||
if(idx EQUAL -1)
|
||||
message(STATUS "Module ${m} disabled by whitelist")
|
||||
__ocv_module_turn_off(${m})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# disable MODULES with unresolved dependencies
|
||||
set(has_changes ON)
|
||||
while(has_changes)
|
||||
|
Loading…
Reference in New Issue
Block a user