You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			129 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Kotlin
		
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Kotlin
		
	
plugins {
 | 
						|
    id("com.google.devtools.ksp")
 | 
						|
    alias(libs.plugins.android.application)
 | 
						|
    alias(libs.plugins.jetbrains.kotlin.android)
 | 
						|
    alias(libs.plugins.dagger.hilt.android)
 | 
						|
}
 | 
						|
 | 
						|
android {
 | 
						|
    namespace = "org.musicpd"
 | 
						|
    compileSdk = 35
 | 
						|
 | 
						|
    defaultConfig {
 | 
						|
        applicationId = "org.musicpd"
 | 
						|
        minSdk = 24
 | 
						|
        targetSdk = 34
 | 
						|
        versionCode = 1
 | 
						|
        versionName = "1.0"
 | 
						|
        vectorDrawables {
 | 
						|
            useSupportLibrary = true
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    buildFeatures {
 | 
						|
        aidl = true
 | 
						|
        compose = true
 | 
						|
    }
 | 
						|
 | 
						|
    composeOptions {
 | 
						|
        kotlinCompilerExtensionVersion = "1.5.10"
 | 
						|
    }
 | 
						|
 | 
						|
    buildTypes {
 | 
						|
        debug {
 | 
						|
            isMinifyEnabled = false
 | 
						|
        }
 | 
						|
        release {
 | 
						|
            isMinifyEnabled = true
 | 
						|
            proguardFiles(
 | 
						|
                getDefaultProguardFile("proguard-android-optimize.txt"),
 | 
						|
                "proguard-rules.pro"
 | 
						|
            )
 | 
						|
        }
 | 
						|
    }
 | 
						|
    // flavors
 | 
						|
    flavorDimensions += "base"
 | 
						|
    productFlavors {
 | 
						|
        create("fail-test") {
 | 
						|
            // To test System.loadLibrary("mpd") failure
 | 
						|
            // exclude the native lib from the package
 | 
						|
            packaging {
 | 
						|
                jniLibs {
 | 
						|
                    // it appears the 'excludes' is applied to all flavors
 | 
						|
                    // even if it's only inside this flavor.
 | 
						|
                    // this filters by task name to apply the exclusion only
 | 
						|
                    // for this flavor name.
 | 
						|
                    // (clearing the 'abiFilters' will only create a universal apk
 | 
						|
                    // with all of the abi versions)
 | 
						|
                    gradle.startParameter.getTaskNames().forEach { task ->
 | 
						|
                        if (task.contains("fail-test", ignoreCase = true)) {
 | 
						|
                            println("NOTICE: excluding libmpd.so from package $task for testing")
 | 
						|
                            excludes += "**/libmpd.so"
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        create("arm64-v8a") {
 | 
						|
            ndk {
 | 
						|
                // ABI to include in package
 | 
						|
                //noinspection ChromeOsAbiSupport
 | 
						|
                abiFilters += listOf("arm64-v8a")
 | 
						|
            }
 | 
						|
        }
 | 
						|
        create("x86_64") {
 | 
						|
            ndk {
 | 
						|
                // ABI to include in package
 | 
						|
                abiFilters += listOf("x86_64")
 | 
						|
            }
 | 
						|
        }
 | 
						|
        create("universal") {
 | 
						|
            ndk {
 | 
						|
                // ABI to include in package
 | 
						|
                abiFilters += listOf("arm64-v8a", "x86_64")
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    compileOptions {
 | 
						|
        sourceCompatibility = JavaVersion.VERSION_1_9
 | 
						|
        targetCompatibility = JavaVersion.VERSION_1_9
 | 
						|
    }
 | 
						|
    kotlinOptions {
 | 
						|
        jvmTarget = JavaVersion.VERSION_1_9.toString()
 | 
						|
    }
 | 
						|
    packaging {
 | 
						|
        resources {
 | 
						|
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
dependencies {
 | 
						|
    implementation(libs.androidx.lifecycle.runtime.ktx)
 | 
						|
    implementation(platform(libs.androidx.compose.bom))
 | 
						|
 | 
						|
    implementation(libs.androidx.material3)
 | 
						|
    implementation(libs.androidx.activity.compose)
 | 
						|
    implementation(libs.androidx.material.icons.extended)
 | 
						|
    implementation(libs.androidx.lifecycle.viewmodel.compose)
 | 
						|
    implementation(libs.androidx.lifecycle.runtime.compose)
 | 
						|
    implementation(libs.androidx.navigation.compose)
 | 
						|
 | 
						|
    implementation(libs.compose.settings.ui.m3)
 | 
						|
    implementation(libs.compose.settings.storage.preferences)
 | 
						|
    implementation(libs.accompanist.permissions)
 | 
						|
 | 
						|
    implementation(libs.hilt.android)
 | 
						|
    ksp(libs.dagger.compiler)
 | 
						|
    ksp(libs.hilt.compiler)
 | 
						|
 | 
						|
    implementation(libs.androidx.media3.session)
 | 
						|
 | 
						|
    // Android Studio Preview support
 | 
						|
    implementation(libs.androidx.ui.tooling.preview)
 | 
						|
    debugImplementation(libs.androidx.ui.tooling)
 | 
						|
    debugImplementation(libs.androidx.ui.test.manifest)
 | 
						|
 | 
						|
    implementation(libs.androidx.appcompat)
 | 
						|
}
 |