From 503473121a1557bff8f693c4df962d95b3856e75 Mon Sep 17 00:00:00 2001 From: Carlos Martino Date: Mon, 22 Sep 2025 22:55:11 -0300 Subject: [PATCH] Initial commit --- buildlogic/convention/build.gradle.kts | 39 --------------- .../ComposeMultiplatformConventionPlugin.kt | 42 ---------------- .../KotlinMultiplatformConventionPlugin.kt | 22 --------- .../carlosmartino/plugins/KotlinAndroid.kt | 37 -------------- .../plugins/KotlinMultiplatform.kt | 49 ------------------- .../plugins/ProjectExtensions.kt | 9 ---- buildlogic/gradle.properties | 4 -- buildlogic/settings.gradle.kts | 14 ------ 8 files changed, 216 deletions(-) delete mode 100644 buildlogic/convention/build.gradle.kts delete mode 100644 buildlogic/convention/src/main/kotlin/ComposeMultiplatformConventionPlugin.kt delete mode 100644 buildlogic/convention/src/main/kotlin/KotlinMultiplatformConventionPlugin.kt delete mode 100644 buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinAndroid.kt delete mode 100644 buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinMultiplatform.kt delete mode 100644 buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/ProjectExtensions.kt delete mode 100644 buildlogic/gradle.properties delete mode 100644 buildlogic/settings.gradle.kts diff --git a/buildlogic/convention/build.gradle.kts b/buildlogic/convention/build.gradle.kts deleted file mode 100644 index 56d0b49..0000000 --- a/buildlogic/convention/build.gradle.kts +++ /dev/null @@ -1,39 +0,0 @@ -plugins { - `kotlin-dsl` -} - -group = "dev.carlosmartino.plugins.buildlogic" - -dependencies { - implementation(libs.plugins.kotlinMultiplatform.toDep()) - implementation(libs.plugins.kotlinSerialization.toDep()) - implementation(libs.plugins.androidApplication.toDep()) - implementation(libs.plugins.androidLibrary.toDep()) - implementation(libs.plugins.composeCompiler.toDep()) - implementation(libs.plugins.composeMultiplatform.toDep()) -} - -fun Provider.toDep() = - map { - "${it.pluginId}:${it.pluginId}.gradle.plugin:${it.version}" - } - -tasks { - validatePlugins { - enableStricterValidation = true - failOnWarning = true - } -} - -gradlePlugin { - plugins { - register("kotlinMultiplatform") { - id = "dev.carlosmartino.plugins.kotlinMultiplatform" - implementationClass = "KotlinMultiplatformConventionPlugin" - } - register("composeMultiplatform") { - id = "dev.carlosmartino.plugins.composeMultiplatform" - implementationClass = "ComposeMultiplatformConventionPlugin" - } - } -} diff --git a/buildlogic/convention/src/main/kotlin/ComposeMultiplatformConventionPlugin.kt b/buildlogic/convention/src/main/kotlin/ComposeMultiplatformConventionPlugin.kt deleted file mode 100644 index 397eeec..0000000 --- a/buildlogic/convention/src/main/kotlin/ComposeMultiplatformConventionPlugin.kt +++ /dev/null @@ -1,42 +0,0 @@ -import dev.carlosmartino.plugins.libs -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.getByType -import org.jetbrains.compose.ComposeExtension -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension - -class ComposeMultiplatformConventionPlugin : Plugin { - override fun apply(target: Project) = with(target) { - with(pluginManager) { - apply(libs.findPlugin("composeCompiler").get().get().pluginId) - apply(libs.findPlugin("composeMultiplatform").get().get().pluginId) - } - - val composeDeps = extensions.getByType().dependencies - - extensions.configure { - sourceSets.apply { - androidMain { - dependencies { - implementation(composeDeps.preview) - implementation(libs.findLibrary("androidx.activity.compose").get()) - } - } - commonMain { - dependencies { - implementation(composeDeps.runtime) - implementation(composeDeps.foundation) - implementation(composeDeps.material3) - implementation(composeDeps.ui) - implementation(composeDeps.uiUtil) - implementation(composeDeps.animation) - implementation(composeDeps.animationGraphics) - implementation(composeDeps.components.resources) - implementation(composeDeps.components.uiToolingPreview) - } - } - } - } - } -} diff --git a/buildlogic/convention/src/main/kotlin/KotlinMultiplatformConventionPlugin.kt b/buildlogic/convention/src/main/kotlin/KotlinMultiplatformConventionPlugin.kt deleted file mode 100644 index 5bb5a43..0000000 --- a/buildlogic/convention/src/main/kotlin/KotlinMultiplatformConventionPlugin.kt +++ /dev/null @@ -1,22 +0,0 @@ -import com.android.build.api.dsl.LibraryExtension -import dev.carlosmartino.plugins.configureKotlinAndroid -import dev.carlosmartino.plugins.configureKotlinMultiplatform -import dev.carlosmartino.plugins.libs -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.configure -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension - -class KotlinMultiplatformConventionPlugin : Plugin { - override fun apply(target: Project) = - with(target) { - with(pluginManager) { - apply(libs.findPlugin("androidLibrary").get().get().pluginId) - apply(libs.findPlugin("kotlinMultiplatform").get().get().pluginId) - apply(libs.findPlugin("kotlinSerialization").get().get().pluginId) - } - - extensions.configure(::configureKotlinMultiplatform) - extensions.configure(::configureKotlinAndroid) - } -} diff --git a/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinAndroid.kt b/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinAndroid.kt deleted file mode 100644 index 8ad43c6..0000000 --- a/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinAndroid.kt +++ /dev/null @@ -1,37 +0,0 @@ -package dev.carlosmartino.plugins - -import com.android.build.api.dsl.LibraryExtension -import org.gradle.api.JavaVersion -import org.gradle.api.Project -import org.gradle.kotlin.dsl.get - -internal fun Project.configureKotlinAndroid( - extension: LibraryExtension, -) = extension.apply { - val moduleName = path.split(":").drop(2).joinToString(".") - namespace = if (moduleName.isNotEmpty()) "dev.carlosmartino.$moduleName" else "dev.carlosmartino.platform" - - compileSdk = libs.findVersion("android.compileSdk") - .get() - .requiredVersion - .toInt() - defaultConfig { - minSdk = libs.findVersion("android.minSdk") - .get() - .requiredVersion - .toInt() - consumerProguardFiles("consumer-proguard-rules.pro") - } - - sourceSets["main"].resources.srcDirs("src/commonMain/composeResources") - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } - packaging { - resources { - excludes += "/META-INF/{AL2.0,LGPL2.1}" - } - } -} diff --git a/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinMultiplatform.kt b/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinMultiplatform.kt deleted file mode 100644 index 7ff54e2..0000000 --- a/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/KotlinMultiplatform.kt +++ /dev/null @@ -1,49 +0,0 @@ -package dev.carlosmartino.plugins - -import org.gradle.api.Project -import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension - -@OptIn(ExperimentalWasmDsl::class) -internal fun Project.configureKotlinMultiplatform( - extension: KotlinMultiplatformExtension, -) = extension.apply { - applyDefaultHierarchyTemplate() - - jvmToolchain(21) - - androidTarget { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - } - } - - listOf(iosArm64(), iosSimulatorArm64()).forEach { iosTarget -> - iosTarget.binaries.framework { - baseName = "shared" - isStatic = true - } - } - - sourceSets.all { - languageSettings { - optIn("androidx.compose.material3.ExperimentalMaterial3Api") - optIn("kotlin.time.ExperimentalTime") - } - } - - sourceSets.apply { - commonMain { - dependencies { - implementation(libs.findLibrary("kotlinx.coroutines.core").get()) - } - - androidMain { - dependencies { - implementation(libs.findLibrary("kotlinx.coroutines.android").get()) - } - } - } - } -} diff --git a/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/ProjectExtensions.kt b/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/ProjectExtensions.kt deleted file mode 100644 index 2ee7183..0000000 --- a/buildlogic/convention/src/main/kotlin/dev/carlosmartino/plugins/ProjectExtensions.kt +++ /dev/null @@ -1,9 +0,0 @@ -package dev.carlosmartino.plugins - -import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalog -import org.gradle.api.artifacts.VersionCatalogsExtension -import org.gradle.kotlin.dsl.getByType - -val Project.libs - get(): VersionCatalog = extensions.getByType().named("libs") diff --git a/buildlogic/gradle.properties b/buildlogic/gradle.properties deleted file mode 100644 index 1c9073e..0000000 --- a/buildlogic/gradle.properties +++ /dev/null @@ -1,4 +0,0 @@ -# Gradle properties are not passed to included builds https://github.com/gradle/gradle/issues/2534 -org.gradle.parallel=true -org.gradle.caching=true -org.gradle.configureondemand=true diff --git a/buildlogic/settings.gradle.kts b/buildlogic/settings.gradle.kts deleted file mode 100644 index 8eedcd9..0000000 --- a/buildlogic/settings.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -dependencyResolutionManagement { - repositories { - google() - mavenCentral() - } - versionCatalogs { - create("libs") { - from(files("../gradle/libs.versions.toml")) - } - } -} - -rootProject.name = "buildlogic" -include(":convention")