build.gradle 3.09 KB
apply plugin: 'com.android.application'

def buildType = "debug"
def androidABI = System.getenv('TARGET')
def daliDir = System.getenv('DALI_DIR')
def daliEnvDir = System.getenv('DALI_ENV_DIR')
def daliEnvLibDir = daliEnvDir + '/lib'
def daliEnvFilesDir = daliEnvDir + '/files'

android {
    namespace = "com.sec.dalidemo"
    signingConfigs {
        config {
            storeFile file("../key.jks")
            storePassword "Samsung"
            keyAlias "key0"
            keyPassword "Samsung"
        }
    }
    compileSdkVersion 30
    defaultConfig {
        applicationId = 'com.sec.dalidemo'
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        externalNativeBuild {
            cmake {
                cppFlags "-fexceptions -frtti -w -Wall -std=c++17"
                arguments '-DANDROID_STL=c++_shared'
            }
        }
    }
    aaptOptions {
        noCompress ''
    }
    buildTypes {
        debug {
            ndk {
                abiFilters androidABI
            }
            buildType = "debug"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
            ndk {
                abiFilters androidABI
            }

            signingConfig signingConfigs.config
            buildType = "release"
        }
    }
    packagingOptions {
        if( androidABI == "arm64-v8a" )
        {
          pickFirst 'lib/arm64-v8a/libc++_shared.so'
          pickFirst 'lib/arm64-v8a/libdaliview.so'
        }
        else
        {
          pickFirst 'lib/armeabi-v7a/libc++_shared.so'
          pickFirst 'lib/armeabi-v7a/libdaliview.so'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs += daliEnvLibDir
            assets.srcDirs += daliEnvFilesDir
        }
    }
    lintOptions {
        checkReleaseBuilds false
    }
    externalNativeBuild {
        cmake {
            version '3.22.1'
            path 'src/main/cpp/CMakeLists.txt'
        }
    }
    compileOptions {
        targetCompatibility = 1.8
        sourceCompatibility = 1.8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}

task buildDaliDependencies(type:Exec) {
    environment "PREFIX", daliEnvDir
    environment "ANDROID_ABI", androidABI
    environment "ANDROID_PLATFORM", "latest"
    if (buildType == 'debug')
        environment "DEBUG", "1"
    workingDir file(daliDir + '/android-dependencies/cmake').getAbsolutePath()
    commandLine 'sh',  './buildall.sh'
}

task buildDali(type:Exec) {
    workingDir "../dali"
    if (buildType == 'debug')
        environment "DEBUG", "1"
    commandLine 'sh', './build.sh'
}

task cleanDali(type:Exec) {
    workingDir "../dali"
    commandLine 'sh', './build.sh', 'clean'
}


tasks.withType(JavaCompile) {
    options.deprecation = true
}

buildDali.dependsOn buildDaliDependencies
preBuild.dependsOn buildDali

clean.dependsOn cleanDali