123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- // This file is part of OpenCV project.
- // It is subject to the license terms in the LICENSE file found in the top-level directory
- // of this distribution and at http://opencv.org/license.html.
- //
- // Notes about integration OpenCV into existed Android Studio application project are below (application 'app' module should exist).
- //
- // This file is located in <OpenCV-android-sdk>/sdk directory (near 'etc', 'java', 'native' subdirectories)
- //
- // Add module into Android Studio application project:
- //
- // - Android Studio way:
- // (will copy almost all OpenCV Android SDK into your project, ~200Mb)
- //
- // Import module: Menu -> "File" -> "New" -> "Module" -> "Import Gradle project":
- // Source directory: select this "sdk" directory
- // Module name: ":opencv"
- //
- // - or attach library module from OpenCV Android SDK
- // (without copying into application project directory, allow to share the same module between projects)
- //
- // Edit "settings.gradle" and add these lines:
- //
- // def opencvsdk='<path_to_opencv_android_sdk_rootdir>'
- // // You can put declaration above into gradle.properties file instead (including file in HOME directory),
- // // but without 'def' and apostrophe symbols ('): opencvsdk=<path_to_opencv_android_sdk_rootdir>
- // include ':opencv'
- // project(':opencv').projectDir = new File(opencvsdk + '/sdk')
- //
- //
- //
- // Add dependency into application module:
- //
- // - Android Studio way:
- // "Open Module Settings" (F4) -> "Dependencies" tab
- //
- // - or add "project(':opencv')" dependency into app/build.gradle:
- //
- // dependencies {
- // implementation fileTree(dir: 'libs', include: ['*.jar'])
- // ...
- // implementation project(':opencv')
- // }
- //
- //
- //
- // Load OpenCV native library before using:
- //
- // - avoid using of "OpenCVLoader.initAsync()" approach - it is deprecated
- // It may load library with different version (from OpenCV Android Manager, which is installed separatelly on device)
- //
- // - use "System.loadLibrary("opencv_java4")" or "OpenCVLoader.initDebug()"
- // TODO: Add accurate API to load OpenCV native library
- //
- //
- //
- // Native C++ support (necessary to use OpenCV in native code of application only):
- //
- // - Use find_package() in app/CMakeLists.txt:
- //
- // find_package(OpenCV @OPENCV_VERSION_MAJOR@.@OPENCV_VERSION_MINOR@ REQUIRED java)
- // ...
- // target_link_libraries(native-lib ${OpenCV_LIBRARIES})
- //
- // - Add "OpenCV_DIR" and enable C++ exceptions/RTTI support via app/build.gradle
- // Documentation about CMake options: https://developer.android.com/ndk/guides/cmake.html
- //
- // defaultConfig {
- // ...
- // externalNativeBuild {
- // cmake {
- // cppFlags "-std=c++11 -frtti -fexceptions"
- // arguments "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni" // , "-DANDROID_ARM_NEON=TRUE"
- // }
- // }
- // }
- //
- // - (optional) Limit/filter ABIs to build ('android' scope of 'app/build.gradle'):
- // Useful information: https://developer.android.com/studio/build/gradle-tips.html (Configure separate APKs per ABI)
- //
- // splits {
- // abi {
- // enable true
- // universalApk false
- // reset()
- // include 'armeabi-v7a' // , 'x86', 'x86_64', 'arm64-v8a'
- // }
- // }
- //
- apply plugin: 'com.android.library'
- @KOTLIN_PLUGIN_DECLARATION@
- def openCVersionName = "@OPENCV_VERSION@"
- def openCVersionCode = ((@OPENCV_VERSION_MAJOR@ * 100 + @OPENCV_VERSION_MINOR@) * 100 + @OPENCV_VERSION_PATCH@) * 10 + 0
- println "OpenCV: " +openCVersionName + " " + project.buildscript.sourceFile
- android {
- compileSdkVersion @ANDROID_COMPILE_SDK_VERSION@
- defaultConfig {
- minSdkVersion @ANDROID_MIN_SDK_VERSION@
- targetSdkVersion @ANDROID_TARGET_SDK_VERSION@
- versionCode openCVersionCode
- versionName openCVersionName
- externalNativeBuild {
- cmake {
- arguments "-DANDROID_STL=@ANDROID_STL@"
- targets "opencv_jni_shared"
- }
- }
- }
- buildTypes {
- debug {
- packagingOptions {
- doNotStrip '**/*.so' // controlled by OpenCV CMake scripts
- }
- }
- release {
- packagingOptions {
- doNotStrip '**/*.so' // controlled by OpenCV CMake scripts
- }
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
- }
- }
- sourceSets {
- main {
- jniLibs.srcDirs = ['native/libs']
- java.srcDirs = ['java/src']
- aidl.srcDirs = ['java/src']
- res.srcDirs = ['java/res']
- manifest.srcFile 'java/AndroidManifest.xml'
- }
- }
- externalNativeBuild {
- cmake {
- path (project.projectDir.toString() + '/libcxx_helper/CMakeLists.txt')
- }
- }
- }
- dependencies {
- }
|