1) `EXCLUDE_OPENCL` looks useless (not really used in this patch - do you have another?).
2) Why you didn't use special variables like `OPENCV_MODULE_${the_module}_EXCLUDE_CUDA`?
3) Why you can't track module dependency list and find CUDA dependencies?