From 973abf0d629e7042a24a3712a628cce77dec0430 Mon Sep 17 00:00:00 2001 From: Maksim Shabunin Date: Fri, 14 Aug 2015 18:08:25 +0300 Subject: [PATCH] cmake: Added missing extra modules warning --- cmake/OpenCVModule.cmake | 55 +++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index 57305054d3..da47c0796a 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -248,31 +248,40 @@ macro(ocv_glob_modules) foreach(__path ${ARGN}) if("${__path}" STREQUAL "EXTRA") set(OPENCV_PROCESSING_EXTRA_MODULES 1) - endif() - get_filename_component(__path "${__path}" ABSOLUTE) + else() + get_filename_component(__path "${__path}" ABSOLUTE) - list(FIND __directories_observed "${__path}" __pathIdx) - if(__pathIdx GREATER -1) - message(FATAL_ERROR "The directory ${__path} is observed for OpenCV modules second time.") - endif() - list(APPEND __directories_observed "${__path}") - - file(GLOB __ocvmodules RELATIVE "${__path}" "${__path}/*") - if(__ocvmodules) - list(SORT __ocvmodules) - foreach(mod ${__ocvmodules}) - get_filename_component(__modpath "${__path}/${mod}" ABSOLUTE) - if(EXISTS "${__modpath}/CMakeLists.txt") - - list(FIND __directories_observed "${__modpath}" __pathIdx) - if(__pathIdx GREATER -1) - message(FATAL_ERROR "The module from ${__modpath} is already loaded.") - endif() - list(APPEND __directories_observed "${__modpath}") + list(FIND __directories_observed "${__path}" __pathIdx) + if(__pathIdx GREATER -1) + message(FATAL_ERROR "The directory ${__path} is observed for OpenCV modules second time.") + endif() + list(APPEND __directories_observed "${__path}") + + set(__count 0) + file(GLOB __ocvmodules RELATIVE "${__path}" "${__path}/*") + if(__ocvmodules) + list(SORT __ocvmodules) + foreach(mod ${__ocvmodules}) + get_filename_component(__modpath "${__path}/${mod}" ABSOLUTE) + if(EXISTS "${__modpath}/CMakeLists.txt") + + list(FIND __directories_observed "${__modpath}" __pathIdx) + if(__pathIdx GREATER -1) + message(FATAL_ERROR "The module from ${__modpath} is already loaded.") + endif() + list(APPEND __directories_observed "${__modpath}") - add_subdirectory("${__modpath}" "${CMAKE_CURRENT_BINARY_DIR}/${mod}/.${mod}") - endif() - endforeach() + add_subdirectory("${__modpath}" "${CMAKE_CURRENT_BINARY_DIR}/${mod}/.${mod}") + + if (DEFINED OPENCV_MODULE_opencv_${mod}_LOCATION) + math(EXPR __count "${__count} + 1") + endif() + endif() + endforeach() + endif() + if (OPENCV_PROCESSING_EXTRA_MODULES AND ${__count} LESS 1) + message(SEND_ERROR "No extra modules found in folder: ${__path}\nPlease provide path to 'opencv_contrib/modules' folder.") + endif() endif() endforeach() ocv_clear_vars(__ocvmodules __directories_observed __path __modpath __pathIdx)