mirror of
https://github.com/AdrianKuta/Tree-Data-Structure.git
synced 2025-10-16 02:02:32 +02:00
26-add-ios-target (#28)
* Refactor: Modernize build and publishing workflow - Upgraded Kotlin from 1.7.20 to 1.9.20. - Upgraded JDK from 11 to 21 across all GitHub Actions workflows. - Replaced the legacy `maven-publish` plugin with `com.vanniktech.maven.publish` for simplified publishing to Maven Central. - Removed the `publishSnapshot.yml` workflow, as snapshot publishing is now managed by the new plugin. - Updated `publishRelease.yml` to use the `publishToMavenCentral` task and new secrets (`MAVEN_CENTRAL_USERNAME`, `MAVEN_CENTRAL_PASSWORD`). - Simplified `build.gradle.kts` by removing manual publishing and signing logic. - Set the JVM target to "21". - Bumped the project version to `3.1.1`. - Removed `js` targets and related configurations. - Added a new code style configuration file for the project (`.idea/codeStyles/Project.xml`). * fix: Add JavaScript targets - Added JS (IR) targets (`browser` and `nodejs`) to the Kotlin Multiplatform configuration for publishing. * Improve README and document new publishing workflow - Expanded the project description to highlight key features like Kotlin Multiplatform support, traversal iterators, DSL, and utility functions. - Added a new "Installation" section with instructions for Gradle (Kotlin/Groovy) and Maven. - Added a "Traversal and utilities" section to demonstrate usage of iterators and helper functions. - Replaced the old publishing documentation with updated instructions for publishing to Maven Central via the Central Portal. - Detailed the two publishing methods: automatically via GitHub Actions on release and manually via local Gradle commands. - Clarified required secrets and environment variables for the new publishing process.
This commit is contained in:
20
.github/workflows/publishRelease.yml
vendored
20
.github/workflows/publishRelease.yml
vendored
@@ -19,20 +19,18 @@ jobs:
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up JDK 11
|
||||
uses: actions/setup-java@v2
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: adopt
|
||||
java-version: 11
|
||||
distribution: temurin
|
||||
java-version: '21'
|
||||
|
||||
# Runs upload, and then closes & releases the repository
|
||||
- name: Publish to MavenCentral
|
||||
run: ./gradlew publish --max-workers 1
|
||||
run: ./gradlew publishToMavenCentral
|
||||
env:
|
||||
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
|
||||
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
|
||||
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
|
||||
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
|
||||
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
|
||||
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
|
||||
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
|
||||
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}
|
||||
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
|
||||
SNAPSHOT: false
|
35
.github/workflows/publishSnapshot.yml
vendored
35
.github/workflows/publishSnapshot.yml
vendored
@@ -1,35 +0,0 @@
|
||||
name: Publish Snapshot
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
uses: ./.github/workflows/test.yml
|
||||
secrets: inherit
|
||||
|
||||
publish:
|
||||
needs: test
|
||||
name: Publish Snapshot
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up JDK 11
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: adopt
|
||||
java-version: 11
|
||||
|
||||
# Runs upload, and then closes & releases the repository
|
||||
- name: Publish to snapshot to Sonatype
|
||||
run: ./gradlew publish --max-workers 1
|
||||
env:
|
||||
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
|
||||
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
|
||||
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
|
||||
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
|
||||
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
|
||||
SNAPSHOT: true
|
10
.github/workflows/test.yml
vendored
10
.github/workflows/test.yml
vendored
@@ -12,12 +12,12 @@ jobs:
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up JDK 11
|
||||
uses: actions/setup-java@v2
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: adopt
|
||||
java-version: 11
|
||||
distribution: temurin
|
||||
java-version: '21'
|
||||
|
||||
# Builds the release artifacts of the library
|
||||
- name: Test
|
||||
run: ./gradlew test
|
||||
run: ./gradlew cleanJvmTest jvmTest
|
35
.idea/codeStyles/Project.xml
generated
35
.idea/codeStyles/Project.xml
generated
@@ -1,5 +1,40 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<JavaCodeStyleSettings>
|
||||
<option name="IMPORT_LAYOUT_TABLE">
|
||||
<value>
|
||||
<package name="" withSubpackages="true" static="false" module="true" />
|
||||
<package name="android" withSubpackages="true" static="true" />
|
||||
<package name="androidx" withSubpackages="true" static="true" />
|
||||
<package name="com" withSubpackages="true" static="true" />
|
||||
<package name="junit" withSubpackages="true" static="true" />
|
||||
<package name="net" withSubpackages="true" static="true" />
|
||||
<package name="org" withSubpackages="true" static="true" />
|
||||
<package name="java" withSubpackages="true" static="true" />
|
||||
<package name="javax" withSubpackages="true" static="true" />
|
||||
<package name="" withSubpackages="true" static="true" />
|
||||
<emptyLine />
|
||||
<package name="android" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="androidx" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="com" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="junit" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="net" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="org" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="java" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="javax" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
</value>
|
||||
</option>
|
||||
</JavaCodeStyleSettings>
|
||||
<JetCodeStyleSettings>
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
</JetCodeStyleSettings>
|
||||
|
6
.idea/studiobot.xml
generated
Normal file
6
.idea/studiobot.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="StudioBotProjectSettings">
|
||||
<option name="shareContext" value="OptedIn" />
|
||||
</component>
|
||||
</project>
|
119
README.md
119
README.md
@@ -1,9 +1,40 @@
|
||||
# Tree (Data Structure)
|
||||
[](https://mvnrepository.com/artifact/com.github.adriankuta/tree-structure)
|
||||
[](https://github.com/AdrianKuta/Tree-Data-Structure/blob/master/LICENSE)
|
||||
[](https://github.com/AdrianKuta/Tree-Data-Structure/actions/workflows/publish.yml)
|
||||
[](https://github.com/AdrianKuta/Tree-Data-Structure/actions/workflows/publishRelease.yml)
|
||||
|
||||
Simple implementation to store object in tree structure.
|
||||
Lightweight Kotlin Multiplatform tree data structure for Kotlin and Java. Includes a small DSL, multiple traversal iterators, and pretty-print support.
|
||||
|
||||
- Kotlin Multiplatform (JVM, JS, iOS, and Native host)
|
||||
- Pre-order, Post-order, and Level-order iteration
|
||||
- Simple DSL: tree { child(...) }
|
||||
- Utilities: nodeCount(), height(), depth(), path(), prettyString(), clear(), removeChild()
|
||||
|
||||
## Installation
|
||||
|
||||
Gradle (Kotlin DSL):
|
||||
```kotlin
|
||||
// commonMain for KMP projects, or any sourceSet/module where you need it
|
||||
dependencies {
|
||||
implementation("com.github.adriankuta:tree-structure:3.1.1") // see badge above for the latest version
|
||||
}
|
||||
```
|
||||
|
||||
Gradle (Groovy):
|
||||
```groovy
|
||||
dependencies {
|
||||
implementation "com.github.adriankuta:tree-structure:3.1.1" // see badge above for the latest
|
||||
}
|
||||
```
|
||||
|
||||
Maven:
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>com.github.adriankuta</groupId>
|
||||
<artifactId>tree-structure</artifactId>
|
||||
<version>3.1.1</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -25,14 +56,10 @@ europe.addChild(france)
|
||||
println(root.prettyString())
|
||||
```
|
||||
|
||||
**Pretty Kotlin**
|
||||
|
||||
**Pretty Kotlin (DSL)**
|
||||
```kotlin
|
||||
val root =
|
||||
tree("World") {
|
||||
child("North America") {
|
||||
child("USA")
|
||||
}
|
||||
val root = tree("World") {
|
||||
child("North America") { child("USA") }
|
||||
child("Europe") {
|
||||
child("Poland")
|
||||
child("Germany")
|
||||
@@ -58,8 +85,7 @@ europe.addChild(france);
|
||||
System.out.println(root.prettyString());
|
||||
```
|
||||
|
||||
*Output:*
|
||||
|
||||
Output:
|
||||
```
|
||||
World
|
||||
├── North America
|
||||
@@ -69,10 +95,58 @@ World
|
||||
└── France
|
||||
```
|
||||
|
||||
### Traversal and utilities
|
||||
```kotlin
|
||||
val root = TreeNode("root")
|
||||
// ... build your tree
|
||||
|
||||
## Download
|
||||
// Choose iteration order (default is PreOrder)
|
||||
root.treeIterator = TreeNodeIterators.PostOrder
|
||||
for (node in root) println(node.value)
|
||||
|
||||
implementation "com.github.adriankuta:tree-structure:$latest_versions"
|
||||
// Utilities
|
||||
root.nodeCount() // number of descendants
|
||||
root.height() // longest path to a leaf (in edges)
|
||||
root.depth() // distance from current node to the root
|
||||
val path = root.path(root.children.first()) // nodes from descendant up to root
|
||||
|
||||
// Mutations
|
||||
val child = root.children.first()
|
||||
root.removeChild(child)
|
||||
root.clear() // remove entire subtree
|
||||
```
|
||||
|
||||
## Publishing to Maven Central (central.sonatype.com)
|
||||
|
||||
This project is configured to publish artifacts to Maven Central via the Sonatype Central Portal.
|
||||
|
||||
There are two supported ways to publish:
|
||||
|
||||
1) Via GitHub Actions (recommended)
|
||||
- Create a GitHub Release (tag) in this repository. When a release is published, the workflow .github/workflows/publishRelease.yml runs automatically.
|
||||
- The workflow uses the Gradle task publishToMavenCentral to upload artifacts through the Central Portal.
|
||||
- Make sure these repository secrets are configured in GitHub:
|
||||
- MAVEN_CENTRAL_USERNAME — Your Sonatype Central username (not email).
|
||||
- MAVEN_CENTRAL_PASSWORD — Your Sonatype Central password or a token from central.sonatype.com.
|
||||
- SIGNING_KEY — ASCII‑armored GPG private key (exported, single line; for in‑memory signing).
|
||||
- SIGNING_PASSWORD — Passphrase for the key above.
|
||||
- The workflow uses JDK 21 and publishes the version defined in build.gradle.kts.
|
||||
|
||||
2) Locally via Gradle
|
||||
- Ensure you have a Sonatype Central account and that the groupId com.github.adriankuta is verified in central.sonatype.com (Namespace Rules → Verify).
|
||||
- Export the same credentials/signing values as environment variables or pass them as Gradle properties:
|
||||
- ORG_GRADLE_PROJECT_mavenCentralUsername
|
||||
- ORG_GRADLE_PROJECT_mavenCentralPassword
|
||||
- ORG_GRADLE_PROJECT_signingInMemoryKey
|
||||
- ORG_GRADLE_PROJECT_signingInMemoryKeyPassword
|
||||
- Then run:
|
||||
- ./gradlew publishToMavenCentral
|
||||
- For snapshot publishing, set -Psnapshot=true (the version is derived from PUBLISH_VERSION with -SNAPSHOT).
|
||||
|
||||
Notes
|
||||
- Publishing is powered by the com.vanniktech.maven.publish Gradle plugin and Sonatype Central Portal (no legacy Nexus staging URLs needed).
|
||||
- The plugin is configured to sign all publications. Coordinates and POM metadata are defined in build.gradle.kts.
|
||||
- If using the combined task is preferred, you can also run publishAndReleaseToMavenCentral when automatic release is enabled; this repository currently uploads with publishToMavenCentral from CI.
|
||||
|
||||
## License
|
||||
|
||||
@@ -99,22 +173,3 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
---
|
||||
|
||||
## Publishing (Maven Central migration)
|
||||
|
||||
This project is configured to publish via Sonatype's s01.oss.sonatype.org (Nexus) which is compatible with the new Central (central.sonatype.com). The old oss.sonatype.org host is no longer used.
|
||||
|
||||
Environment variables supported by the build:
|
||||
- CENTRAL_USERNAME / CENTRAL_PASSWORD — Central Portal user/token (preferred)
|
||||
- OSSRH_USERNAME / OSSRH_PASSWORD — legacy credentials (fallback)
|
||||
- SIGNING_KEY_ID / SIGNING_KEY / SIGNING_PASSWORD — PGP signing (ASCII-armored key)
|
||||
- SNAPSHOT — set to true to append -SNAPSHOT to version
|
||||
|
||||
Gradle tasks:
|
||||
- Publish all publications to Sonatype: `./gradlew publishAllPublicationsToSonatypeS01Repository`
|
||||
- Or, standard publish (selects snapshots vs releases by version): `./gradlew publish`
|
||||
|
||||
Notes:
|
||||
- Releases are uploaded to: https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
|
||||
- Snapshots are uploaded to: https://s01.oss.sonatype.org/content/repositories/snapshots/
|
||||
- Staging/release close and promote are handled by Sonatype. If you use CI, set the env vars in your secrets.
|
||||
|
147
build.gradle.kts
147
build.gradle.kts
@@ -1,147 +1,88 @@
|
||||
import org.jetbrains.kotlin.konan.properties.Properties
|
||||
|
||||
plugins {
|
||||
kotlin("multiplatform") version "1.7.20"
|
||||
id("org.jetbrains.dokka") version "1.7.20"
|
||||
id("maven-publish")
|
||||
kotlin("multiplatform") version "1.9.20"
|
||||
id("org.jetbrains.dokka") version "1.9.20"
|
||||
id("com.vanniktech.maven.publish") version "0.34.0"
|
||||
signing
|
||||
}
|
||||
|
||||
val PUBLISH_GROUP_ID = "com.github.adriankuta"
|
||||
val PUBLISH_ARTIFACT_ID = "tree-structure"
|
||||
val PUBLISH_VERSION = "3.1.0"
|
||||
val PUBLISH_ARTIFACT_ID = "tree-structure" // base artifact; KMP will add -jvm, -ios*, etc.
|
||||
val PUBLISH_VERSION = "3.1.1"
|
||||
|
||||
val secretFile = File(rootProject.rootDir, "local.properties")
|
||||
if (secretFile.exists()) {
|
||||
secretFile.reader().use {
|
||||
Properties().apply {
|
||||
load(it)
|
||||
}
|
||||
}.onEach { (name, value) ->
|
||||
project.ext[name.toString()] = value
|
||||
}
|
||||
} else {
|
||||
// Prefer Central Portal credentials via environment variables
|
||||
project.ext["centralUsername"] = System.getenv("CENTRAL_USERNAME")
|
||||
project.ext["centralPassword"] = System.getenv("CENTRAL_PASSWORD")
|
||||
// Fallback legacy OSSRH credentials (still supported on s01)
|
||||
project.ext["ossrhUsername"] = System.getenv("OSSRH_USERNAME")
|
||||
project.ext["ossrhPassword"] = System.getenv("OSSRH_PASSWORD")
|
||||
project.ext["sonatypeStagingProfileId"] = System.getenv("SONATYPE_STAGING_PROFILE_ID")
|
||||
project.ext["signingKeyId"] = System.getenv("SIGNING_KEY_ID")
|
||||
project.ext["signingPassword"] = System.getenv("SIGNING_PASSWORD")
|
||||
project.ext["signingKey"] = System.getenv("SIGNING_KEY")
|
||||
project.ext["snapshot"] = System.getenv("SNAPSHOT")
|
||||
}
|
||||
val snapshot: String? by project
|
||||
|
||||
group = PUBLISH_GROUP_ID
|
||||
version = if (snapshot.toBoolean()) "$PUBLISH_VERSION-SNAPSHOT" else PUBLISH_VERSION
|
||||
|
||||
val dokkaHtml by tasks.getting(org.jetbrains.dokka.gradle.DokkaTask::class)
|
||||
mavenPublishing {
|
||||
// Central Portal + auto release when we call publishAndReleaseToMavenCentral
|
||||
publishToMavenCentral(automaticRelease = false)
|
||||
signAllPublications()
|
||||
|
||||
val javadocJar: TaskProvider<Jar> by tasks.registering(Jar::class) {
|
||||
dependsOn(dokkaHtml)
|
||||
archiveClassifier.set("javadoc")
|
||||
from(dokkaHtml.outputDirectory)
|
||||
}
|
||||
coordinates(PUBLISH_GROUP_ID, PUBLISH_ARTIFACT_ID, version.toString())
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
|
||||
withType<MavenPublication> {
|
||||
artifact(javadocJar)
|
||||
pom {
|
||||
name.set("Tree Data Structure")
|
||||
description.set("Simple implementation to store object in tree structure.")
|
||||
url.set("https://github.com/AdrianKuta/Tree-Data-Structure")
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name.set("MIT License")
|
||||
url.set("https://www.mit.edu/~amini/LICENSE.md")
|
||||
url.set("https://opensource.org/licenses/MIT")
|
||||
distribution.set("repo")
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id.set("AdrianKuta")
|
||||
name.set("Adrian Kuta")
|
||||
email.set("adrian.kuta93@gmail.com")
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection.set("scm:git:github.com/AdrianKuta/Tree-Data-Structure.git")
|
||||
developerConnection.set("scm:git:ssh://github.com/AdrianKuta/Tree-Data-Structure.git")
|
||||
url.set("https://github.com/AdrianKuta/Tree-Data-Structure/tree/master")
|
||||
}
|
||||
url.set("https://github.com/AdrianKuta/Tree-Data-Structure")
|
||||
connection.set("scm:git:https://github.com/AdrianKuta/Tree-Data-Structure.git")
|
||||
developerConnection.set("scm:git:ssh://git@github.com/AdrianKuta/Tree-Data-Structure.git")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
name = "SonatypeS01"
|
||||
// s01 is the supported Nexus host for Central publishing via Maven-compatible uploads
|
||||
val releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
// Prefer Central Portal credentials when provided, fallback to legacy OSSRH credentials
|
||||
val centralUsername: String? by project
|
||||
val centralPassword: String? by project
|
||||
val CENTRAL_USERNAME: String? by project
|
||||
val CENTRAL_PASSWORD: String? by project
|
||||
val ossrhUsername: String? by project
|
||||
val ossrhPassword: String? by project
|
||||
username = centralUsername
|
||||
?: CENTRAL_USERNAME
|
||||
?: ossrhUsername
|
||||
?: System.getenv("CENTRAL_USERNAME")
|
||||
?: System.getenv("OSSRH_USERNAME")
|
||||
password = centralPassword
|
||||
?: CENTRAL_PASSWORD
|
||||
?: ossrhPassword
|
||||
?: System.getenv("CENTRAL_PASSWORD")
|
||||
?: System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
val signingKeyId: String? by project
|
||||
val signingPassword: String? by project
|
||||
val signingKey: String? by project
|
||||
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
|
||||
|
||||
sign(publishing.publications)
|
||||
}
|
||||
// No legacy publishing {} block or s01 repos — Central Portal handles it.
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion.set(JavaLanguageVersion.of(21))
|
||||
}
|
||||
}
|
||||
kotlin {
|
||||
jvmToolchain(21);
|
||||
jvm {
|
||||
compilations.all {
|
||||
kotlinOptions.jvmTarget = "1.8"
|
||||
}
|
||||
withJava()
|
||||
testRuns["test"].executionTask.configure {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
}
|
||||
js(BOTH) {
|
||||
browser {
|
||||
commonWebpackConfig {
|
||||
cssSupport.enabled = true
|
||||
kotlinOptions {
|
||||
jvmTarget = "21" // <- was "1.8"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add iOS targets
|
||||
// JS targets (IR) for publishing
|
||||
js(IR) {
|
||||
browser()
|
||||
nodejs()
|
||||
}
|
||||
|
||||
// iOS targets
|
||||
iosX64()
|
||||
iosArm64()
|
||||
iosSimulatorArm64()
|
||||
|
||||
// Native host target
|
||||
val hostOs = System.getProperty("os.name")
|
||||
val isMingwX64 = hostOs.startsWith("Windows")
|
||||
val nativeTarget = when {
|
||||
@@ -153,16 +94,8 @@ kotlin {
|
||||
|
||||
sourceSets {
|
||||
val commonMain by getting
|
||||
val commonTest by getting {
|
||||
dependencies {
|
||||
implementation(kotlin("test"))
|
||||
}
|
||||
}
|
||||
val jvmMain by getting {
|
||||
dependencies {
|
||||
implementation(kotlin("script-runtime"))
|
||||
}
|
||||
}
|
||||
val commonTest by getting { dependencies { implementation(kotlin("test")) } }
|
||||
val jvmMain by getting { dependencies { implementation(kotlin("script-runtime")) } }
|
||||
val jvmTest by getting
|
||||
val jsMain by getting
|
||||
val jsTest by getting
|
||||
@@ -170,12 +103,8 @@ kotlin {
|
||||
val nativeTest by getting
|
||||
|
||||
// Shared iOS source sets
|
||||
val iosMain by creating {
|
||||
dependsOn(commonMain)
|
||||
}
|
||||
val iosTest by creating {
|
||||
dependsOn(commonTest)
|
||||
}
|
||||
val iosMain by creating { dependsOn(commonMain) }
|
||||
val iosTest by creating { dependsOn(commonTest) }
|
||||
val iosX64Main by getting { dependsOn(iosMain) }
|
||||
val iosArm64Main by getting { dependsOn(iosMain) }
|
||||
val iosSimulatorArm64Main by getting { dependsOn(iosMain) }
|
||||
|
Reference in New Issue
Block a user