From fc557c58dd9e13d721c8915605b53eb39acc313c Mon Sep 17 00:00:00 2001 From: Jean-BaptisteC Date: Sun, 8 Oct 2023 20:18:08 +0200 Subject: [PATCH] Migrate to Kotlin DSL --- app/build.gradle.kts | 113 ++++++++++++++++++++++++ app/proguard-rules.pro | 2 +- build.gradle | 10 --- build.gradle.kts | 8 ++ renderscript-toolkit/build.gradle | 49 ---------- renderscript-toolkit/build.gradle.kts | 50 +++++++++++ renderscript-toolkit/proguard-rules.pro | 2 +- settings.gradle => settings.gradle.kts | 5 +- 8 files changed, 175 insertions(+), 64 deletions(-) create mode 100644 app/build.gradle.kts delete mode 100644 build.gradle create mode 100644 build.gradle.kts delete mode 100644 renderscript-toolkit/build.gradle create mode 100644 renderscript-toolkit/build.gradle.kts rename settings.gradle => settings.gradle.kts (68%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 00000000..4e207810 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,113 @@ +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("kotlin-kapt") +} + +android { + namespace = "com.bnyro.wallpaper" + compileSdk = 33 + + defaultConfig { + applicationId = "com.bnyro.wallpaper" + minSdk = 21 + targetSdk = 33 + versionCode = 21 + versionName = "6.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary = true + } + + javaCompileOptions { + annotationProcessorOptions { + arguments["room.schemaLocation"] += "$projectDir/schemas" + } + } + + buildTypes { + release { + isMinifyEnabled = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + debug { + isDebuggable = true + applicationIdSuffix = ".debug" + } + } + compileOptions { + isCoreLibraryDesugaringEnabled = true + + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + compose = true + } + composeOptions { + kotlinCompilerExtensionVersion = "1.4.2" + } + packagingOptions { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + } +} + +dependencies { + val compose_version: String by rootProject.extra + // Core + implementation("androidx.core:core-ktx:1.10.1") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1") + implementation("androidx.work:work-runtime-ktx:2.8.1") + implementation("androidx.documentfile:documentfile:1.0.1") + + // UI + implementation("androidx.activity:activity-compose:1.7.2") + implementation("androidx.compose.ui:ui:$compose_version") + implementation("androidx.compose.ui:ui-tooling-preview:$compose_version") + implementation("androidx.navigation:navigation-compose:2.5.3") + + // Design libraries + implementation("androidx.compose.material3:material3:1.2.0-alpha02") + implementation("androidx.compose.material:material-icons-core:1.4.3") + implementation("androidx.compose.material:material-icons-extended:1.4.3") + implementation("androidx.palette:palette:1.0.0") + + + // Retrofit + implementation("com.squareup.retrofit2:retrofit:2.9.0") + implementation("com.squareup.retrofit2:converter-jackson:2.9.0") + + // Coil + implementation("io.coil-kt:coil-compose:2.4.0") + + // Renderscript + implementation(project(":renderscript-toolkit")) + + // Room + implementation("androidx.room:room-runtime:2.5.1") + kapt("androidx.room:room-compiler:2.5.1") + + // Local image parsing + implementation("androidx.exifinterface:exifinterface:1.3.6") + + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version") + debugImplementation("androidx.compose.ui:ui-tooling:$compose_version") + debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version") + + // Desugaring + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3") +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index d5a6c228..ed327dc5 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,6 +1,6 @@ # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. +# proguardFiles setting in build.gradle.kts. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 3160b2e3..00000000 --- a/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -buildscript { - ext { - compose_version = '1.5.0-beta01' - } -}// Top-level build file where you can add configuration options common to all sub-projects/modules. -plugins { - id 'com.android.application' version '7.4.1' apply false - id 'com.android.library' version '7.4.1' apply false - id 'org.jetbrains.kotlin.android' version '1.8.10' apply false -} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 00000000..268d4239 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,8 @@ +buildscript { + val compose_version by extra("1.5.0-beta01") +}// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id("com.android.application") version "7.5.0" apply false + id("com.android.library") version "7.5.0" apply false + id("org.jetbrains.kotlin.android") version "1.8.10" apply false +} diff --git a/renderscript-toolkit/build.gradle b/renderscript-toolkit/build.gradle deleted file mode 100644 index 8d591625..00000000 --- a/renderscript-toolkit/build.gradle +++ /dev/null @@ -1,49 +0,0 @@ -plugins { - id 'com.android.library' - id 'kotlin-android' -} - -android { - compileSdkVersion 33 - buildToolsVersion "31.0.0" - - defaultConfig { - minSdkVersion 16 - targetSdkVersion 33 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles "consumer-rules.pro" - externalNativeBuild { - cmake { - cppFlags "-std=c++17" - } - } - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } - externalNativeBuild { - cmake { - path file('src/main/cpp/CMakeLists.txt') - } - } -} - -dependencies { - - implementation "org.jetbrains.kotlin:kotlin-stdlib:1.7.20" - implementation 'androidx.core:core-ktx:1.9.0' -} diff --git a/renderscript-toolkit/build.gradle.kts b/renderscript-toolkit/build.gradle.kts new file mode 100644 index 00000000..c19d2a4a --- /dev/null +++ b/renderscript-toolkit/build.gradle.kts @@ -0,0 +1,50 @@ +plugins { + id("com.android.library") + id("kotlin-android") +} + +android { + namespace = "com.google.android.renderscript" + compileSdk = 33 + buildToolsVersion = "31.0.0" + + defaultConfig { + minSdk = 16 + targetSdk = 33 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + externalNativeBuild { + cmake { + cppFlags += "-std=c++17" + } + } + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + externalNativeBuild { + cmake { + path = file("src/main/cpp/CMakeLists.txt") + } + } +} + +dependencies { + + implementation("org.jetbrains.kotlin:kotlin-stdlib:1.7.20") + implementation("androidx.core:core-ktx:1.9.0") +} diff --git a/renderscript-toolkit/proguard-rules.pro b/renderscript-toolkit/proguard-rules.pro index 481bb434..ff59496d 100644 --- a/renderscript-toolkit/proguard-rules.pro +++ b/renderscript-toolkit/proguard-rules.pro @@ -1,6 +1,6 @@ # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. +# proguardFiles setting in build.gradle.kts. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html diff --git a/settings.gradle b/settings.gradle.kts similarity index 68% rename from settings.gradle rename to settings.gradle.kts index 08249bf9..1b5a5c6a 100644 --- a/settings.gradle +++ b/settings.gradle.kts @@ -13,7 +13,6 @@ dependencyResolutionManagement { } } rootProject.name = "Wall You" -include ':app' +include(":app") -include 'renderscript-toolkit' -project(':renderscript-toolkit').projectDir = new File(settingsDir, './renderscript-toolkit') +include(":renderscript-toolkit")