diff --git a/packages/opencv_core/android/build.gradle b/packages/opencv_core/android/build.gradle
index c5d07b63..276133f8 100644
--- a/packages/opencv_core/android/build.gradle
+++ b/packages/opencv_core/android/build.gradle
@@ -70,19 +70,7 @@ android {
           cmake {
               arguments "-DANDROID_ARM_NEON=TRUE",
                 "-DANDROID_STL=c++_static",
-                "-DCMAKE_INSTALL_PREFIX=$SOURCE_DIR/src/main/jniLibs",
-                "-DDARTCV_WITH_CALIB3D=ON",
-                "-DDARTCV_WITH_CONTRIB=ON",
-                "-DDARTCV_WITH_DNN=ON",
-                "-DDARTCV_WITH_FEATURE2D=ON",
-                "-DDARTCV_WITH_HIGHGUI=ON",
-                "-DDARTCV_WITH_IMGPROC=ON",
-                "-DDARTCV_WITH_OBJDETECT=ON",
-                "-DDARTCV_WITH_PHOTO=ON",
-                "-DDARTCV_WITH_STITCHING=ON",
-                "-DDARTCV_WITH_VIDEO=ON",
-                "-DDARTCV_WITH_VIDEOIO=ON",
-                "-DDARTCV_WITH_GAPI=OFF"
+                "-DCMAKE_INSTALL_PREFIX=$SOURCE_DIR/src/main/jniLibs"
           }
       }
 
diff --git a/packages/opencv_core/src/CMakeLists.txt b/packages/opencv_core/src/CMakeLists.txt
index 424ebe5e..a0276352 100644
--- a/packages/opencv_core/src/CMakeLists.txt
+++ b/packages/opencv_core/src/CMakeLists.txt
@@ -34,21 +34,20 @@ if(ANDROID AND(DEFINED ANDROID_ABI))
   endif()
 endif()
 
-set(DARTCV_WITH_CALIB3D ON)
-set(DARTCV_WITH_CONTRIB ON)
-set(DARTCV_WITH_DNN ON)
-set(DARTCV_WITH_FEATURE2D ON)
-set(DARTCV_WITH_HIGHGUI OFF)
-set(DARTCV_WITH_IMGPROC ON)
-set(DARTCV_WITH_OBJDETECT ON)
-set(DARTCV_WITH_PHOTO ON)
-set(DARTCV_WITH_STITCHING ON)
-set(DARTCV_WITH_VIDEO ON)
-set(DARTCV_WITH_VIDEOIO OFF)
-set(DARTCV_WITH_GAPI OFF)
-set(DARTCV_WORLD OFF)
+set(DARTCV_WITH_CALIB3D ON CACHE BOOL "Enable OpenCV calib3d module" FORCE)
+set(DARTCV_WITH_CONTRIB ON CACHE BOOL "Enable OpenCV contrib module" FORCE)
+set(DARTCV_WITH_DNN ON CACHE BOOL "Enable OpenCV dnn module" FORCE)
+set(DARTCV_WITH_FEATURE2D ON CACHE BOOL "Enable OpenCV feature2d module" FORCE)
+set(DARTCV_WITH_HIGHGUI OFF CACHE BOOL "Enable OpenCV highgui module" FORCE)
+set(DARTCV_WITH_IMGPROC ON CACHE BOOL "Enable OpenCV imgproc module" FORCE)
+set(DARTCV_WITH_OBJDETECT ON CACHE BOOL "Enable OpenCV objdetect module" FORCE)
+set(DARTCV_WITH_PHOTO ON CACHE BOOL "Enable OpenCV photo module" FORCE)
+set(DARTCV_WITH_STITCHING ON CACHE BOOL "Enable OpenCV stitching module" FORCE)
+set(DARTCV_WITH_VIDEO ON CACHE BOOL "Enable OpenCV video module")
+set(DARTCV_WITH_VIDEOIO OFF CACHE BOOL "Enable OpenCV videoio module" FORCE)
+set(DARTCV_WITH_GAPI OFF CACHE BOOL "Enable OpenCV gapi module" FORCE)
+set(DARTCV_WORLD OFF CACHE BOOL "Enable OpenCV world module" FORCE)
 
-# TODO: read opencv_version from pubspec.yaml
 set(OPENCV_VERSION "${_version_opencv}")
 set(DARTCV_DISABLE_DOWNLOAD_OPENCV OFF)
 
diff --git a/packages/opencv_dart/android/build.gradle b/packages/opencv_dart/android/build.gradle
index f1cfc372..d6170405 100644
--- a/packages/opencv_dart/android/build.gradle
+++ b/packages/opencv_dart/android/build.gradle
@@ -67,19 +67,7 @@ android {
             cmake {
                 arguments "-DANDROID_ARM_NEON=TRUE",
                   "-DANDROID_STL=c++_static",
-                  "-DCMAKE_INSTALL_PREFIX=$SOURCE_DIR/src/main/jniLibs",
-                  "-DDARTCV_WITH_CALIB3D=ON",
-                  "-DDARTCV_WITH_CONTRIB=ON",
-                  "-DDARTCV_WITH_DNN=ON",
-                  "-DDARTCV_WITH_FEATURE2D=ON",
-                  "-DDARTCV_WITH_HIGHGUI=ON",
-                  "-DDARTCV_WITH_IMGPROC=ON",
-                  "-DDARTCV_WITH_OBJDETECT=ON",
-                  "-DDARTCV_WITH_PHOTO=ON",
-                  "-DDARTCV_WITH_STITCHING=ON",
-                  "-DDARTCV_WITH_VIDEO=ON",
-                  "-DDARTCV_WITH_VIDEOIO=ON",
-                  "-DDARTCV_WITH_GAPI=OFF"
+                  "-DCMAKE_INSTALL_PREFIX=$SOURCE_DIR/src/main/jniLibs"
             }
         }
 
diff --git a/packages/opencv_dart/images/opencv_dart_size_report.svg b/packages/opencv_dart/images/opencv_dart_size_report.svg
index 062fff53..2c31f9b5 100644
--- a/packages/opencv_dart/images/opencv_dart_size_report.svg
+++ b/packages/opencv_dart/images/opencv_dart_size_report.svg
@@ -68,9 +68,9 @@
         
             <g transform="translate(60, 305)">
                 <text class="data-row" x="0" y="15">Total: </text>
-                <text class="metric-value" x="50" y="15">176.35 MB</text>
+                <text class="metric-value" x="50" y="15">176.21 MB</text>
                 <text class="data-row" x="200" y="15">Package: </text>
-                <text class="metric-value" x="280" y="15">153.15 MB</text>
+                <text class="metric-value" x="280" y="15">153.02 MB</text>
             </g>
             
         <g transform="translate(40, 370)" filter="url(#dropShadow)">
@@ -88,33 +88,33 @@
                 <g transform="translate(60, 415)">
                     <text class="data-row" x="0" y="15">arm64-v8a</text>
                     <text class="data-row" x="200" y="15">Total: </text>
-                    <text class="metric-value" x="250" y="15">43.95 MB</text>
+                    <text class="metric-value" x="250" y="15">43.83 MB</text>
                     <text class="data-row" x="400" y="15">Package: </text>
-                    <text class="metric-value" x="500" y="15">37.46 MB</text>
+                    <text class="metric-value" x="500" y="15">37.34 MB</text>
                 </g>
                 
                 <g transform="translate(60, 460)">
                     <text class="data-row" x="0" y="15">armeabi-v7a</text>
                     <text class="data-row" x="200" y="15">Total: </text>
-                    <text class="metric-value" x="250" y="15">33.36 MB</text>
+                    <text class="metric-value" x="250" y="15">33.27 MB</text>
                     <text class="data-row" x="400" y="15">Package: </text>
-                    <text class="metric-value" x="500" y="15">27.42 MB</text>
+                    <text class="metric-value" x="500" y="15">27.33 MB</text>
                 </g>
                 
                 <g transform="translate(60, 505)">
                     <text class="data-row" x="0" y="15">x86_64</text>
                     <text class="data-row" x="200" y="15">Total: </text>
-                    <text class="metric-value" x="250" y="15">53.51 MB</text>
+                    <text class="metric-value" x="250" y="15">53.38 MB</text>
                     <text class="data-row" x="400" y="15">Package: </text>
-                    <text class="metric-value" x="500" y="15">46.90 MB</text>
+                    <text class="metric-value" x="500" y="15">46.77 MB</text>
                 </g>
                 
                 <g transform="translate(60, 550)">
                     <text class="data-row" x="0" y="15">full_apk_size</text>
                     <text class="data-row" x="200" y="15">Total: </text>
-                    <text class="metric-value" x="250" y="15">128.72 MB</text>
+                    <text class="metric-value" x="250" y="15">128.37 MB</text>
                     <text class="data-row" x="400" y="15">Package: </text>
-                    <text class="metric-value" x="500" y="15">110.84 MB</text>
+                    <text class="metric-value" x="500" y="15">110.50 MB</text>
                 </g>
                 
         <g transform="translate(40, 615)" filter="url(#dropShadow)">
@@ -150,9 +150,9 @@
         
             <g transform="translate(60, 770)">
                 <text class="data-row" x="0" y="15">Total: </text>
-                <text class="metric-value" x="50" y="15">201.05 MB</text>
+                <text class="metric-value" x="50" y="15">200.75 MB</text>
                 <text class="data-row" x="200" y="15">Package: </text>
-                <text class="metric-value" x="280" y="15">180.90 MB</text>
+                <text class="metric-value" x="280" y="15">180.60 MB</text>
             </g>
             
         <g transform="translate(40, 835)" filter="url(#dropShadow)">
diff --git a/packages/opencv_dart/src/CMakeLists.txt b/packages/opencv_dart/src/CMakeLists.txt
index 544ff8b5..caa55480 100644
--- a/packages/opencv_dart/src/CMakeLists.txt
+++ b/packages/opencv_dart/src/CMakeLists.txt
@@ -34,21 +34,20 @@ if(ANDROID AND(DEFINED ANDROID_ABI))
   endif()
 endif()
 
-set(DARTCV_WITH_CALIB3D ON)
-set(DARTCV_WITH_CONTRIB ON)
-set(DARTCV_WITH_DNN ON)
-set(DARTCV_WITH_FEATURE2D ON)
-set(DARTCV_WITH_HIGHGUI ON)
-set(DARTCV_WITH_IMGPROC ON)
-set(DARTCV_WITH_OBJDETECT ON)
-set(DARTCV_WITH_PHOTO ON)
-set(DARTCV_WITH_STITCHING ON)
-set(DARTCV_WITH_VIDEO ON)
-set(DARTCV_WITH_VIDEOIO ON)
-set(DARTCV_WITH_GAPI OFF)
-set(DARTCV_WORLD OFF)
+set(DARTCV_WITH_CALIB3D ON CACHE BOOL "Enable OpenCV calib3d module" FORCE)
+set(DARTCV_WITH_CONTRIB ON CACHE BOOL "Enable OpenCV contrib module" FORCE)
+set(DARTCV_WITH_DNN ON CACHE BOOL "Enable OpenCV dnn module" FORCE)
+set(DARTCV_WITH_FEATURE2D ON CACHE BOOL "Enable OpenCV feature2d module" FORCE)
+set(DARTCV_WITH_HIGHGUI OFF CACHE BOOL "Enable OpenCV highgui module" FORCE)
+set(DARTCV_WITH_IMGPROC ON CACHE BOOL "Enable OpenCV imgproc module" FORCE)
+set(DARTCV_WITH_OBJDETECT ON CACHE BOOL "Enable OpenCV objdetect module" FORCE)
+set(DARTCV_WITH_PHOTO ON CACHE BOOL "Enable OpenCV photo module" FORCE)
+set(DARTCV_WITH_STITCHING ON CACHE BOOL "Enable OpenCV stitching module" FORCE)
+set(DARTCV_WITH_VIDEO ON CACHE BOOL "Enable OpenCV video module")
+set(DARTCV_WITH_VIDEOIO ON CACHE BOOL "Enable OpenCV videoio module" FORCE)
+set(DARTCV_WITH_GAPI OFF CACHE BOOL "Enable OpenCV gapi module" FORCE)
+set(DARTCV_WORLD OFF CACHE BOOL "Enable OpenCV world module" FORCE)
 
-# TODO: read opencv_version from pubspec.yaml
 set(OPENCV_VERSION "${_version_opencv}")
 set(DARTCV_DISABLE_DOWNLOAD_OPENCV OFF)