build.gradle 2.28 KB
group 'dev.steenbakker.mobile_scanner'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.7.22'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
    if (project.android.hasProperty("namespace")) {
        namespace 'dev.steenbakker.mobile_scanner'
    }

    compileSdk 34

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
        test.java.srcDirs += 'src/test/kotlin'
    }

    defaultConfig {
        minSdkVersion 21
        consumerProguardFiles 'proguard-rules.pro'
    }

    testOptions {
        unitTests.all {
            useJUnitPlatform()

            testLogging {
                events "passed", "skipped", "failed", "standardOut", "standardError"
                outputs.upToDateWhen {false}
                showStandardStreams = true
            }
        }
    }
}

dependencies {
    def useUnbundled = project.findProperty('dev.steenbakker.mobile_scanner.useUnbundled') ?: false
    if (useUnbundled.toBoolean()) {
        // Dynamically downloaded model via Google Play Services
        implementation 'com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0'
    } else {
        // Bundled model in app
        implementation 'com.google.mlkit:barcode-scanning:17.2.0'
    }

    // org.jetbrains.kotlin:kotlin-bom artifact purpose is to align kotlin stdlib and related code versions.
    // See: https://youtrack.jetbrains.com/issue/KT-55297/kotlin-stdlib-should-declare-constraints-on-kotlin-stdlib-jdk8-and-kotlin-stdlib-jdk7
    implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.22"))

    implementation 'androidx.camera:camera-lifecycle:1.3.3'
    implementation 'androidx.camera:camera-camera2:1.3.3'

    testImplementation 'org.jetbrains.kotlin:kotlin-test'
    testImplementation 'org.mockito:mockito-core:5.12.0'    
}