build.gradle 2.5 KB
Newer Older
姜天宇's avatar
姜天宇 committed
1 2 3 4 5 6 7 8 9 10 11 12
plugins {
    id 'com.android.library'
}

android {
    namespace 'com.wmdigit.core'
    compileSdk 33

    defaultConfig {
       minSdk 24

        ndk {
13
            abiFilters 'armeabi-v7a'
姜天宇's avatar
姜天宇 committed
14 15 16 17 18 19
//            abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
        }

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
20 21 22 23 24 25 26 27
//                cppFlags ""
                arguments "-DANDROID_TOOLCHAIN=clang"
                arguments "-DCMAKE_BUILD_TYPE=Release"
                cppFlags "-std=c++11", "-frtti", "-fexceptions"
                //sample cpp flag parameters
//                cppFlags "-std=c++14 -Ofast -Rpass-analysis=loop-vectorize -fsave-optimization-record -fdiagnostics-show-hotness"
                //set -DANDROID_STL to c++_shared
//                arguments "-DANDROID_STL=c++_shared"
姜天宇's avatar
姜天宇 committed
28 29 30 31 32 33 34 35 36
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
37 38 39 40
        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
姜天宇's avatar
姜天宇 committed
41 42 43 44 45 46 47
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

48

姜天宇's avatar
姜天宇 committed
49 50 51 52 53 54 55 56 57 58 59 60
    sourceSets {
        main {
            jniLibs.srcDirs = ['src/main/jniLibs']
        }
    }

    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.18.1'
        }
    }
61 62 63 64 65 66 67 68 69 70 71 72 73 74

    packagingOptions {
        //解决第三方so依赖冲突 merge(合并)  pickFirst(选取第一个)
        //如果合并不能解决问题就选择其中一个
        merge 'META-INF/proguard/androidx-annotations.pro'
        merge 'META-INF/proguard/coroutines.pro'
        merge 'lib/arm64-v8a/libc++_shared.so'
        merge 'lib/armeabi-v7a/libc++_shared.so'
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'

    }
姜天宇's avatar
姜天宇 committed
75 76 77 78 79 80 81 82
}

dependencies {
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.2.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'

    implementation project(path: ":common")
83 84
    implementation project(path: ":data-local")
    implementation project(path: ":opencv")
姜天宇's avatar
姜天宇 committed
85
}