diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index a0e859232e..6e6fe16c32 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -233,7 +233,7 @@ macro(ocv_add_module _name) endmacro() # excludes module from current configuration -macro(ocv_module_disable module) +macro(ocv_module_disable_ module) set(__modname ${module}) if(NOT __modname MATCHES "^opencv_") set(__modname opencv_${module}) @@ -246,9 +246,12 @@ macro(ocv_module_disable module) # touch variable controlling build of the module to suppress "unused variable" CMake warning endif() unset(__modname) - return() # leave the current folder endmacro() +macro(ocv_module_disable module) + ocv_module_disable_(${module}) + return() # leave the current folder +endmacro() # collect modules from specified directories # NB: must be called only once! diff --git a/modules/python/CMakeLists.txt b/modules/python/CMakeLists.txt index 1da5e329d6..d85a516791 100644 --- a/modules/python/CMakeLists.txt +++ b/modules/python/CMakeLists.txt @@ -2,16 +2,26 @@ # CMake file for python support # ---------------------------------------------------------------------------- -if((WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug") - OR BUILD_opencv_world - ) - ocv_module_disable(python2) - ocv_module_disable(python3) +if(ANDROID OR APPLE_FRAMEWORK OR WINRT) + set(__disable_python2 ON) + set(__disable_python3 ON) +elseif(BUILD_opencv_world OR (WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")) + if(NOT DEFINED BUILD_opencv_python2) + set(__disable_python2 ON) + endif() + if(NOT DEFINED BUILD_opencv_python3) + set(__disable_python3 ON) + endif() endif() -if(ANDROID OR APPLE_FRAMEWORK OR WINRT) - ocv_module_disable(python2) - ocv_module_disable(python3) +if(__disable_python2) + ocv_module_disable_(python2) +endif() +if(__disable_python3) + ocv_module_disable_(python3) +endif() +if(__disable_python2 AND __disable_python3) + return() endif() add_subdirectory(python2)