Skip to content

Commit b731b5c

Browse files
committed
Updated build scripts
1 parent 4024cfe commit b731b5c

File tree

10 files changed

+90
-33
lines changed

10 files changed

+90
-33
lines changed

.github/dependabot.yml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
- package-ecosystem: gradle
8+
directory: "/"
9+
schedule:
10+
interval: "daily"

build-logic/build-logic-base/src/main/kotlin/com/ensody/buildlogic/BuildLogicBasePlugin.kt

-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ fun Project.initBuildLogicBase() {
3333

3434
fun Project.setupBuildLogicBase() {
3535
pluginManager.apply("com.ensody.build-logic-base")
36-
setupDependencyUpdates()
3736

3837
if (isRootProject) return
3938

build-logic/build-logic-base/src/main/kotlin/com/ensody/buildlogic/DepdendencyUpdatesExt.kt

-19
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
@file:OptIn(ExperimentalWasmDsl::class, ExperimentalKotlinGradlePluginApi::class)
2+
3+
package com.ensody.buildlogic
4+
5+
import org.gradle.api.JavaVersion
6+
import org.gradle.api.Project
7+
import org.gradle.api.tasks.testing.Test
8+
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
9+
import org.gradle.jvm.toolchain.JavaLanguageVersion
10+
import org.gradle.kotlin.dsl.configure
11+
import org.gradle.kotlin.dsl.withType
12+
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
13+
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
14+
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
15+
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmExtension
16+
17+
fun Project.setupKotlinJvm(
18+
javaVersion: JavaVersion = JavaVersion.VERSION_17,
19+
block: KotlinJvmExtension.() -> Unit = {},
20+
) {
21+
pluginManager.apply("org.jetbrains.kotlin.jvm")
22+
tasks.withType<Test> {
23+
testLogging {
24+
exceptionFormat = TestExceptionFormat.FULL
25+
}
26+
}
27+
configure< KotlinJvmExtension> {
28+
explicitApi = ExplicitApiMode.Strict
29+
jvmToolchain {
30+
languageVersion.set(JavaLanguageVersion.of(javaVersion.majorVersion))
31+
}
32+
compilerOptions {
33+
allWarningsAsErrors.set(true)
34+
optIn.add("kotlin.RequiresOptIn")
35+
optIn.add("kotlin.io.encoding.ExperimentalEncodingApi")
36+
freeCompilerArgs.add("-Xexpect-actual-classes")
37+
}
38+
block()
39+
}
40+
}

build-logic/build-logic-base/src/main/kotlin/com/ensody/buildlogic/KotlinMultiplatformExt.kt

-5
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,8 @@ fun Project.setupKmp(
3333
compilerOptions {
3434
allWarningsAsErrors.set(true)
3535
optIn.add("kotlin.RequiresOptIn")
36-
optIn.add("kotlinx.coroutines.ExperimentalCoroutinesApi")
37-
optIn.add("kotlinx.coroutines.ExperimentalForInheritanceCoroutinesApi")
38-
optIn.add("kotlinx.coroutines.FlowPreview")
3936
optIn.add("kotlin.io.encoding.ExperimentalEncodingApi")
40-
optIn.add("com.ensody.reactivestate.ExperimentalReactiveStateApi")
4137
freeCompilerArgs.add("-Xexpect-actual-classes")
42-
// freeCompilerArgs.add("-Xexplicit-api=strict")
4338
}
4439
applyKmpHierarchy()
4540
block()

build-logic/build-logic-base/src/main/kotlin/com/ensody/buildlogic/PublishingExt.kt

+24-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package com.ensody.buildlogic
44

55
import com.android.build.gradle.LibraryExtension
66
import org.gradle.api.Project
7+
import org.gradle.api.plugins.JavaPluginExtension
78
import org.gradle.api.publish.PublishingExtension
89
import org.gradle.api.publish.maven.MavenPomLicenseSpec
910
import org.gradle.api.publish.maven.MavenPublication
@@ -19,6 +20,7 @@ import org.gradle.kotlin.dsl.withType
1920
import org.gradle.plugins.signing.Sign
2021
import org.gradle.plugins.signing.SigningExtension
2122
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
23+
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmExtension
2224
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
2325

2426
fun Project.setupPublication(
@@ -53,15 +55,31 @@ fun Project.setupPublication(
5355
publishing {
5456
withSourcesJar(withSources)
5557
}
58+
} ?: extensions.findByType<KotlinJvmExtension>()?.apply {
59+
if (withSources) {
60+
extensions.findByType<JavaPluginExtension>()?.withSourcesJar()
61+
}
62+
configure<PublishingExtension> {
63+
if (pluginManager.hasPlugin("java-gradle-plugin")) return@configure
64+
publications {
65+
create<MavenPublication>("maven") {
66+
from(components.getByName("java"))
67+
}
68+
}
69+
}
5670
}
5771

5872
if (withJavadocJar) {
59-
val emptyJar = tasks.register<Jar>("emptyJar") {
60-
archiveAppendix = "empty"
61-
}
62-
configure<PublishingExtension> {
63-
publications.withType<MavenPublication> {
64-
artifact(emptyJar) { classifier = "javadoc" }
73+
if (extensions.findByType<KotlinMultiplatformExtension>() == null) {
74+
extensions.findByType<JavaPluginExtension>()?.apply { withJavadocJar() }
75+
} else {
76+
val emptyJar = tasks.register<Jar>("emptyJar") {
77+
archiveAppendix = "empty"
78+
}
79+
configure<PublishingExtension> {
80+
publications.withType<MavenPublication> {
81+
artifact(emptyJar) { classifier = "javadoc" }
82+
}
6583
}
6684
}
6785
}

build-logic/build-logic/src/main/kotlin/com/ensody/buildlogic/BuildLogicPlugin.kt

+10-1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ fun Project.setupBuildLogic() {
4141
repositories {
4242
google()
4343
mavenCentral()
44+
if (System.getenv("RUNNING_ON_CI") != "true") {
45+
mavenLocal()
46+
}
4447
}
4548

4649
if (isRootProject) return
@@ -53,8 +56,14 @@ fun Project.setupBuildLogic() {
5356
setupAndroid(coreLibraryDesugaring = libs.findLibrary("desugarJdkLibs").get())
5457
setupKmp {
5558
addAllTargets(onlyComposeSupport = project.name == "reactivestate-compose")
59+
compilerOptions {
60+
optIn.add("kotlinx.coroutines.ExperimentalCoroutinesApi")
61+
optIn.add("kotlinx.coroutines.ExperimentalForInheritanceCoroutinesApi")
62+
optIn.add("kotlinx.coroutines.FlowPreview")
63+
optIn.add("com.ensody.reactivestate.ExperimentalReactiveStateApi")
64+
}
5665
}
57-
tasks.create("testAll") {
66+
tasks.register("testAll") {
5867
group = "verification"
5968
dependsOn(
6069
"testDebugUnitTest",

gradle/wrapper/gradle-wrapper.jar

-17.5 KB
Binary file not shown.
+3-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
3+
distributionSha256Sum=fba8464465835e74f7270bbf43d6d8a8d7709ab0a43ce1aa3323f73e9aa0c612
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip
45
networkTimeout=10000
6+
validateDistributionUrl=true
57
zipStoreBase=GRADLE_USER_HOME
68
zipStorePath=wrapper/dists

settings.gradle.kts

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ pluginManagement {
55
google()
66
gradlePluginPortal()
77
mavenCentral()
8+
if (System.getenv("RUNNING_ON_CI") != "true") {
9+
mavenLocal()
10+
}
811
}
912
}
1013

0 commit comments

Comments
 (0)