From 5b17410f7cd89d3f6b9a7def79e8ad1a670daf21 Mon Sep 17 00:00:00 2001 From: Maksim Shabunin Date: Thu, 19 Oct 2017 17:37:36 +0300 Subject: [PATCH] Added BUILD_LIST feature --- cmake/OpenCVModule.cmake | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index caa1a1e8cb..5ce2ed6b69 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -421,6 +421,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)