diff --git a/cmake/OpenCVGenAndroidMK.cmake b/cmake/OpenCVGenAndroidMK.cmake
index bf7ce942ca..fbac8d2c63 100644
--- a/cmake/OpenCVGenAndroidMK.cmake
+++ b/cmake/OpenCVGenAndroidMK.cmake
@@ -19,10 +19,6 @@ if(ANDROID)
     set(OPENCV_STATIC_LIBTYPE_CONFIGMAKE ${OPENCV_LIBTYPE_CONFIGMAKE})
   endif()
 
-  if (HAVE_opencv_gpu)
-    set(OPENCV_PREBUILT_GPU_MODULE_CONFIGMAKE "on")
-  endif()
-
   # setup lists of camera libs
   foreach(abi ARMEABI ARMEABI_V7A X86 MIPS)
     ANDROID_GET_ABI_RAWNAME(${abi} ndkabi)
@@ -52,11 +48,16 @@ if(ANDROID)
   set(OPENCV_3RDPARTY_COMPONENTS_CONFIGMAKE "")
   foreach(m ${OPENCV_MODULES_PUBLIC})
     list(INSERT OPENCV_MODULES_CONFIGMAKE 0 ${${m}_MODULE_DEPS_${ocv_optkind}} ${m})
-    if(${m}_EXTRA_DEPS_${ocv_optkind} AND NOT ${m}_EXTRA_DEPS_${ocv_optkind} MATCHES "libcu.+$")
+    if(${m}_EXTRA_DEPS_${ocv_optkind})
       list(INSERT OPENCV_EXTRA_COMPONENTS_CONFIGMAKE 0 ${${m}_EXTRA_DEPS_${ocv_optkind}})
     endif()
   endforeach()
 
+  # remove CUDA runtime and NPP from regular deps
+  # it can be added seporately if needed.
+  ocv_list_filterout(OPENCV_EXTRA_COMPONENTS_CONFIGMAKE "libcu")
+  ocv_list_filterout(OPENCV_EXTRA_COMPONENTS_CONFIGMAKE "libnpp")
+
   # split 3rdparty libs and modules
   foreach(mod ${OPENCV_MODULES_CONFIGMAKE})
     if(NOT mod MATCHES "^opencv_.+$")
diff --git a/cmake/templates/OpenCV.mk.in b/cmake/templates/OpenCV.mk.in
index d9cc306f23..fdf700591a 100644
--- a/cmake/templates/OpenCV.mk.in
+++ b/cmake/templates/OpenCV.mk.in
@@ -13,11 +13,10 @@ OPENCV_BASEDIR:=@OPENCV_BASE_INCLUDE_DIR_CONFIGCMAKE@
 OPENCV_LOCAL_C_INCLUDES:=@OPENCV_INCLUDE_DIRS_CONFIGCMAKE@
 OPENCV_MODULES:=@OPENCV_MODULES_CONFIGMAKE@
 
-OPENCV_PREBUILT_GPU_MODULE:=@OPENCV_PREBUILT_GPU_MODULE_CONFIGMAKE@
 OPENCV_USE_GPU_MODULE:=
 
 ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
-    ifeq ($(OPENCV_PREBUILT_GPU_MODULE),on)
+    ifneq ($(findstring gpu,$(OPENCV_MODULES)),)
         ifneq ($(CUDA_TOOLKIT_DIR),)
             OPENCV_USE_GPU_MODULE:=on
         endif
diff --git a/modules/dynamicuda/CMakeLists.txt b/modules/dynamicuda/CMakeLists.txt
index f67879ef91..2e0154406a 100644
--- a/modules/dynamicuda/CMakeLists.txt
+++ b/modules/dynamicuda/CMakeLists.txt
@@ -1,4 +1,4 @@
-if(NOT DYNAMIC_CUDA_SUPPORT)
+if(NOT ENABLE_DYNAMIC_CUDA)
   ocv_module_disable(dynamicuda)
 endif()