Skip to content

Commit

Permalink
Merge pull request #21 from SaifulSaif007/custom-plugin
Browse files Browse the repository at this point in the history
Implement Custom plugins
  • Loading branch information
SaifulSaif007 authored Nov 14, 2024
2 parents 61ea84f + 83c7259 commit 3762773
Show file tree
Hide file tree
Showing 14 changed files with 109 additions and 148 deletions.
13 changes: 6 additions & 7 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
alias(libs.plugins.com.android.app)
alias(libs.plugins.org.jetbrains.kotlin.android)
alias(libs.plugins.hilt.plugin)
alias(libs.plugins.org.jetbrains.kotlin.kapt)
alias(libs.plugins.gms.google.service)
alias(libs.plugins.firebase.crashlytics)
id(libs.plugins.com.android.app.get().pluginId)
id(libs.plugins.org.jetbrains.kotlin.android.get().pluginId)
id(libs.plugins.hilt.plugin.get().pluginId)
id(libs.plugins.org.jetbrains.kotlin.kapt.get().pluginId)
id(libs.plugins.gms.google.service.get().pluginId)
id(libs.plugins.firebase.crashlytics.get().pluginId)
}

android {
Expand Down
20 changes: 2 additions & 18 deletions base_unit_test/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,19 +1,9 @@
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
alias(libs.plugins.com.android.library)
alias(libs.plugins.org.jetbrains.kotlin.android)
`build-logic`
}

android {
namespace = "com.saiful.test.unit"
compileSdk = 34

defaultConfig {
minSdk = 24

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}

buildTypes {
release {
Expand All @@ -24,13 +14,7 @@ android {
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_19
targetCompatibility = JavaVersion.VERSION_19
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_19.toString()
}

}

dependencies {
Expand Down
17 changes: 0 additions & 17 deletions build.gradle

This file was deleted.

16 changes: 16 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

plugins {
id(libs.plugins.com.android.app.get().pluginId) apply false
id(libs.plugins.com.android.library.get().pluginId) apply false
id(libs.plugins.org.jetbrains.kotlin.android.get().pluginId) apply false
id(libs.plugins.hilt.plugin.get().pluginId) apply false
id(libs.plugins.org.jetbrains.kotlin.kapt.get().pluginId) apply false
id(libs.plugins.org.jetbrains.kotlin.jvm.get().pluginId) apply false
alias(libs.plugins.gms.google.service) apply false
alias(libs.plugins.firebase.crashlytics) apply false
}

tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}
10 changes: 10 additions & 0 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
plugins {
`kotlin-dsl`
`kotlin-dsl-precompiled-script-plugins`
}

dependencies {
implementation(libs.android.gradlePlugin)
implementation(libs.kotlin.gradlePlugin)
implementation(libs.hilt.plugin)
}
13 changes: 13 additions & 0 deletions buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}

versionCatalogs {
create("libs"){
from(files("../gradle/libs.versions.toml"))
}
}
}
31 changes: 31 additions & 0 deletions buildSrc/src/main/kotlin/build-logic.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
plugins {
`android-library`
`kotlin-android`
}

internal val Project.libs: VersionCatalog get() =
project.extensions.getByType<VersionCatalogsExtension>().named("libs")

android {
compileSdk = 34

defaultConfig {
minSdk = 24
targetSdk = 33

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
vectorDrawables {
useSupportLibrary = true
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_19
targetCompatibility = JavaVersion.VERSION_19
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_19.toString()
}

}
14 changes: 14 additions & 0 deletions buildSrc/src/main/kotlin/feature-common.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
plugins {
`android-library`
`kotlin-android`
`kotlin-kapt`
}

internal val Project.libs: VersionCatalog
get() =
project.extensions.getByType<VersionCatalogsExtension>().named("libs")

dependencies {
implementation(libs.findLibrary("dagger-hilt").get())
kapt(libs.findLibrary("hilt-compiler").get())
}
21 changes: 3 additions & 18 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
alias(libs.plugins.com.android.library)
alias(libs.plugins.org.jetbrains.kotlin.android)
alias(libs.plugins.org.jetbrains.kotlin.kapt)
`build-logic`
`feature-common`
}

android {
namespace = "com.saiful.core"
compileSdk = 34

defaultConfig {
minSdk = 24

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")

val clientID: String by project
val apiKey = System.getenv("CLIENT_ID") ?: clientID
Expand All @@ -32,13 +25,7 @@ android {
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_19
targetCompatibility = JavaVersion.VERSION_19
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_19.toString()
}

buildFeatures {
buildConfig = true
}
Expand All @@ -51,8 +38,6 @@ dependencies {
implementation(platform(libs.kotlin.bom))

implementation(libs.hilt.navigation.compose)
implementation(libs.dagger.hilt)
kapt(libs.hilt.compiler)

implementation(libs.bundles.retrofit)
implementation(libs.timber)
Expand Down
26 changes: 3 additions & 23 deletions data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
alias(libs.plugins.com.android.library)
alias(libs.plugins.org.jetbrains.kotlin.android)
alias(libs.plugins.hilt.plugin)
alias(libs.plugins.org.jetbrains.kotlin.kapt)
`build-logic`
`feature-common`
}

android {
namespace = "com.saiful.data"
compileSdk = 34

defaultConfig {
minSdk = 24

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}

buildTypes {
release {
Expand All @@ -26,13 +15,7 @@ android {
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_19
targetCompatibility = JavaVersion.VERSION_19
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_19.toString()
}

testOptions {
unitTests.isReturnDefaultValues = true
}
Expand All @@ -46,9 +29,6 @@ dependencies {
implementation(libs.bundles.retrofit)
implementation(libs.paging.runtime)

implementation(libs.dagger.hilt)
kapt(libs.hilt.compiler)

testImplementation(project(":base_unit_test"))
testImplementation(libs.paging.test)
testImplementation(libs.bundles.mockito)
Expand Down
25 changes: 3 additions & 22 deletions domain/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
alias(libs.plugins.com.android.library)
alias(libs.plugins.org.jetbrains.kotlin.android)
alias(libs.plugins.hilt.plugin)
alias(libs.plugins.org.jetbrains.kotlin.kapt)
`build-logic`
`feature-common`
}

android {
namespace = "com.saiful.domain"
compileSdk = 34

defaultConfig {
minSdk = 24

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}

buildTypes {
release {
Expand All @@ -26,13 +15,7 @@ android {
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_19
targetCompatibility = JavaVersion.VERSION_19
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_19.toString()
}

testOptions {
unitTests.isReturnDefaultValues = true
}
Expand All @@ -43,8 +26,6 @@ dependencies {
implementation(project(":core"))
implementation(project(":data"))

implementation(libs.dagger.hilt)
kapt(libs.hilt.compiler)
implementation(libs.androidx.ktx)
implementation(libs.paging.runtime)

Expand Down
4 changes: 4 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashly
mock-webserver = { group = "com.squareup.okhttp3", name = "mockwebserver", version.ref = "mock-webserver" }
logging-interceptor = {group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "logging-interceptor"}

# Dependencies of the included build-logic
android-gradlePlugin = {group = "com.android.tools.build", name ="gradle", version.ref = "agp"}
kotlin-gradlePlugin = {group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin-bom"}

#Test
junit = { group = "junit", name = "junit", version.ref = "junit" }
junit-ext = { group = "androidx.test.ext", name = "junit", version.ref = "junit-ext" }
Expand Down
23 changes: 2 additions & 21 deletions mock/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
plugins {
alias(libs.plugins.com.android.library)
alias(libs.plugins.org.jetbrains.kotlin.android)
alias(libs.plugins.org.jetbrains.kotlin.kapt)
`build-logic`
`feature-common`
}

android {
namespace = "com.saiful.mock"
compileSdk = 34

defaultConfig {
minSdk = 24

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}

buildTypes {
release {
Expand All @@ -24,20 +15,10 @@ android {
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}

dependencies {

implementation(libs.mock.webserver)
implementation(libs.logging.interceptor)

implementation(libs.dagger.hilt)
kapt(libs.hilt.compiler)
}
Loading

0 comments on commit 3762773

Please sign in to comment.