Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/run_gradle_task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11
java-version: 17

- name: Cache NPM
uses: actions/cache@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_publish_site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11
java-version: 17

- name: Cache NPM
uses: actions/cache@v4
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ gradle-app.setting
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

### Kotlin ###

.kotlin/

### Linux ###
*~

Expand Down
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ idea {
excludeGeneratedGradleDsl(layout)
excludeDirs = excludeDirs + layout.files(
".idea",
".kotlin",
"buildSrc/.kotlin",
"gradle/kotlin-js-store",
"gradle/wrapper",
"site/.docusaurus",
Expand Down
11 changes: 0 additions & 11 deletions buildSrc/src/main/kotlin/buildsrc/config/gradle.kt
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,3 @@ fun ProviderFactory.credentialsAction(
password = pass
}
}


/** Logic from [KotlinJvmTarget.withJava] */
fun Project.isKotlinMultiplatformJavaEnabled(): Boolean {
val multiplatformExtension: KotlinMultiplatformExtension? =
extensions.findByType(KotlinMultiplatformExtension::class)

return multiplatformExtension?.targets
?.any { it is KotlinJvmTarget && it.withJavaEnabled }
?: false
}
3 changes: 0 additions & 3 deletions buildSrc/src/main/kotlin/buildsrc/config/kmm.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package buildsrc.config

import org.gradle.api.GradleException
import org.gradle.api.Project
import org.gradle.kotlin.dsl.findByType
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension


Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package buildsrc.convention

import buildsrc.config.knitDocsAttributes
import buildsrc.config.asConsumer
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
Expand Down
44 changes: 20 additions & 24 deletions buildSrc/src/main/kotlin/buildsrc/convention/kotlin-jvm.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,46 +1,42 @@
package buildsrc.convention

import org.gradle.kotlin.dsl.kotlin
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_8

plugins {
id("buildsrc.convention.base")
kotlin("jvm")
`java-library`
id("io.kotest")
}

dependencies {
// versions provided by versions-platform subproject
testImplementation("io.kotest:kotest-runner-junit5")
testImplementation("io.kotest:kotest-assertions-core")
testImplementation("io.kotest:kotest-property")
testImplementation("io.kotest:kotest-framework-datatest")
}

kotlin {
jvmToolchain(11)
}

java {
withJavadocJar()
withSourcesJar()
}

tasks.withType<KotlinCompile>().configureEach {
// IJ still doesn't support script plugins???
extensions.configure<KotlinJvmProjectExtension> {
//kotlin {
jvmToolchain(21)
compilerOptions {
languageVersion = KOTLIN_1_8
apiVersion = KOTLIN_1_8
jvmTarget = JvmTarget.JVM_11
apiVersion = KotlinVersion.KOTLIN_1_7
languageVersion = KotlinVersion.KOTLIN_1_7

freeCompilerArgs.add(jvmTarget.map { target ->
"-Xjdk-release=${target.target}"
})
freeCompilerArgs.addAll(
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.time.ExperimentalTime",
)
}
}

java {
withJavadocJar()
withSourcesJar()
}
tasks.withType<JavaCompile>().configureEach {
targetCompatibility = "11"
}

tasks.compileTestKotlin {
compilerOptions {
freeCompilerArgs.addAll(
Expand Down
55 changes: 32 additions & 23 deletions buildSrc/src/main/kotlin/buildsrc/convention/kotlin-mpp.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,49 +1,58 @@
package buildsrc.convention

import buildsrc.config.relocateKotlinJsStore
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_8
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile


plugins {
id("buildsrc.convention.base")
kotlin("multiplatform")
id("io.kotest")
id("com.google.devtools.ksp")
}


relocateKotlinJsStore()


kotlin {
js(IR) {
// IJ still doesn't support script plugins???
extensions.configure<KotlinMultiplatformExtension> {
//kotlin {
js {
browser()
nodejs()
}

jvmToolchain(11)
jvm {
withJava()
jvmToolchain(21)

compilerOptions {
languageVersion = KOTLIN_1_8
apiVersion = KOTLIN_1_8
}

targets.configureEach {
compilations.configureEach {
kotlinOptions {
languageVersion = "1.8"
apiVersion = "1.8"
}
jvm {
compilerOptions {
jvmTarget = JvmTarget.JVM_11
freeCompilerArgs.add(jvmTarget.map { target ->
"-Xjdk-release=${target.target}"
})
}
}
}

targets.withType<KotlinJvmTarget> {
compilations.configureEach {
kotlinOptions {
jvmTarget = "11"
}
}
testRuns.configureEach {
executionTask.configure {
useJUnitPlatform()
}
}
tasks.withType<KotlinJvmCompile>().configureEach {
compilerOptions {
jvmTarget = JvmTarget.JVM_11
}
}

tasks.withType<JavaCompile>().configureEach {
targetCompatibility = "11"
}

tasks.withType<Test>().configureEach {
useJUnitPlatform()
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package buildsrc.convention

import buildsrc.config.credentialsAction
import buildsrc.config.isKotlinMultiplatformJavaEnabled
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin


plugins {
`maven-publish`
Expand Down Expand Up @@ -67,7 +64,7 @@ afterEvaluate {

//region Javadoc JAR stub
// use creating, not registering, because the signing plugin doesn't accept task providers
val javadocJarStub by tasks.creating(Jar::class) {
val javadocJarStub by tasks.registering(Jar::class) {
group = JavaBasePlugin.DOCUMENTATION_GROUP
description = "Stub javadoc.jar artifact (required by Maven Central)"
archiveClassifier.set("javadoc")
Expand All @@ -82,7 +79,7 @@ publishing {
name = "MavenInternal"
}

if (sonatypeRepositoryCredentials.isPresent()) {
if (sonatypeRepositoryCredentials.isPresent) {
maven(sonatypeRepositoryReleaseUrl) {
name = "SonatypeRelease"
credentials(sonatypeRepositoryCredentials.get())
Expand Down Expand Up @@ -118,26 +115,6 @@ publishing {
}
}


plugins.withType<KotlinMultiplatformPlugin>().configureEach {
publishing.publications.withType<MavenPublication>().configureEach {
//artifact(javadocJarStub)
}
}


plugins.withType<JavaPlugin>().configureEach {
afterEvaluate {
if (!isKotlinMultiplatformJavaEnabled()) {
publishing.publications.create<MavenPublication>("mavenJava") {
from(components["java"])
artifact(tasks["sourcesJar"])
}
}
}
}


plugins.withType<JavaPlatformPlugin>().configureEach {
// val javadocJarStub = javadocStubTask()
publishing.publications.create<MavenPublication>("mavenJavaPlatform") {
Expand Down
4 changes: 4 additions & 0 deletions docs/code/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ dependencies {
testFixturesImplementation(libs.kotlinProcess)
testFixturesImplementation(libs.kotest.frameworkEngine)
testFixturesImplementation(libs.kotest.assertionsCore)

testImplementation("io.kotest:kotest-runner-junit5")
testImplementation("io.kotest:kotest-assertions-core")
testImplementation("io.kotest:kotest-property")
}

kotlin {
Expand Down
2 changes: 1 addition & 1 deletion docs/code/knit-test.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class ${test.name} : FunSpec({
<#--<#assign method = test["mode.${case.param}"]!"custom">-->
<#list cases as case>
context("${case.name}") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
${case.knit.package}.${case.knit.name}.main()
Expand Down
6 changes: 3 additions & 3 deletions docs/code/test/AbstractClassesTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class AbstractClassesTest : FunSpec({

tags(Knit)
context("ExampleAbstractClassSingleField01") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.exampleAbstractClassSingleField01.main()
Expand All @@ -36,7 +36,7 @@ class AbstractClassesTest : FunSpec({
}

context("ExampleAbstractClassPrimitiveFields01") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.exampleAbstractClassPrimitiveFields01.main()
Expand Down Expand Up @@ -65,7 +65,7 @@ class AbstractClassesTest : FunSpec({
}

context("ExampleAbstractClassAbstractField01") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.exampleAbstractClassAbstractField01.main()
Expand Down
6 changes: 3 additions & 3 deletions docs/code/test/BasicClassesTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class BasicClassesTest : FunSpec({

tags(Knit)
context("ExamplePlainClassSingleField01") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.examplePlainClassSingleField01.main()
Expand All @@ -35,7 +35,7 @@ class BasicClassesTest : FunSpec({
}

context("ExamplePlainClassPrimitiveFields01") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.examplePlainClassPrimitiveFields01.main()
Expand Down Expand Up @@ -63,7 +63,7 @@ class BasicClassesTest : FunSpec({
}

context("ExamplePlainDataClass01") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.examplePlainDataClass01.main()
Expand Down
8 changes: 4 additions & 4 deletions docs/code/test/CustomisingOutputTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class CustomisingOutputTest : FunSpec({

tags(Knit)
context("ExampleCustomisingOutput01") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.exampleCustomisingOutput01.main()
Expand All @@ -38,7 +38,7 @@ class CustomisingOutputTest : FunSpec({
}

context("ExampleCustomisingOutput02") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.exampleCustomisingOutput02.main()
Expand All @@ -63,7 +63,7 @@ class CustomisingOutputTest : FunSpec({
}

context("ExampleCustomisingOutput03") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.exampleCustomisingOutput03.main()
Expand Down Expand Up @@ -94,7 +94,7 @@ class CustomisingOutputTest : FunSpec({
}

context("ExampleCustomisingOutput04") {
val caseName = testCase.name.testName
val caseName = testCase.name.name

val actual = captureOutput(caseName) {
dev.adamko.kxstsgen.example.exampleCustomisingOutput04.main()
Expand Down
Loading
Loading