-
Sebastian Sellmair authored
This publication creates one variant for each native platform. It allows depending (and exposing) a single dependency, which can later be resolved to platform-specific artifacts. <details> <summary>skiko-awt-runtime.module</summary> ```json { "formatVersion": "1.1", "component": { "group": "org.jetbrains.skiko", "module": "skiko-awt-runtime", "version": "1.0-SNAPSHOT", "attributes": { "org.gradle.status": "integration" } }, "createdBy": { "gradle": { "version": "8.13" } }, "variants": [ { "name": "jvmRuntimeElements-macos-x64", "attributes": { "org.gradle.category": "library", "org.gradle.dependency.bundling": "external", "org.gradle.jvm.environment": "standard-jvm", "org.gradle.libraryelements": "jar", "org.gradle.native.architecture": "x86-64", "org.gradle.native.operatingSystem": "macos", "org.gradle.usage": "java-runtime", "org.jetbrains.kotlin.platform.type": "jvm" }, "dependencies": [ { "group": "org.jetbrains.skiko", "module": "skiko-awt-runtime-macos-x64", "version": { "requires": "1.0-SNAPSHOT" } } ] }, { "name": "jvmRuntimeElements-macos-arm64", "attributes": { "org.gradle.category": "library", "org.gradle.dependency.bundling": "external", "org.gradle.jvm.environment": "standard-jvm", "org.gradle.libraryelements": "jar", "org.gradle.native.architecture": "aarch64", "org.gradle.native.operatingSystem": "macos", "org.gradle.usage": "java-runtime", "org.jetbrains.kotlin.platform.type": "jvm" }, "dependencies": [ { "group": "org.jetbrains.skiko", "module": "skiko-awt-runtime-macos-arm64", "version": { "requires": "1.0-SNAPSHOT" } } ] } ] } ``` </details> <details> <summary>skiko-awt-runtime.pom</summary> ```xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- This module was also published with a richer model, Gradle metadata, --> <!-- which should be used instead. Do not delete the following line which --> <!-- is to indicate to Gradle or any Gradle module metadata file consumer --> <!-- that they should prefer consuming it instead. --> <!-- do_not_remove: published-with-gradle-metadata --> <modelVersion>4.0.0</modelVersion> <groupId>org.jetbrains.skiko</groupId> <artifactId>skiko-awt-runtime</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Skiko JVM Runtime</name> <description>Kotlin Skia bindings</description> <url>https://www.github.com/JetBrains/skiko</url> <licenses> <license> <name>The Apache License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> <developers> <developer> <name>Compose Multiplatform Team</name> <organization>JetBrains</organization> <organizationUrl>https://www.jetbrains.com</organizationUrl> </developer> </developers> <scm> <connection>scm:git:https://www.github.com/JetBrains/skiko.git</connection> <developerConnection>scm:git:https://www.github.com/JetBrains/skiko.git</developerConnection> <url>https://www.github.com/JetBrains/skiko</url> </scm> </project> ``` </details> Simple example usage: ```kotlin kotlin { target.attributes { attribute(ARCHITECTURE_ATTRIBUTE, objects.named(DefaultNativePlatform.getCurrentArchitecture().name)) attribute(OPERATING_SYSTEM_ATTRIBUTE, objects.named(DefaultNativePlatform.getCurrentOperatingSystem().toFamilyName())) } } dependencies { implementation("org.jetbrains.skiko:skiko-awt:1.0-SNAPSHOT") implementation("org.jetbrains.skiko:skiko-awt-runtime:1.0-SNAPSHOT") } ``` ## Motivation This allows 'intermediate' libraries to express that this dependency exists (in a single publication) and push down the artifact selection to consumers. This is an advanced feature and can be leveraged by more complex builds. --------- Co-authored-by:Igor Demin <igor.demin@jetbrains.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .github | ||
| .run | ||
| gradle/wrapper | ||
| samples | ||
| skiko | ||
| .gitignore | ||
| DEVELOPMENT.md | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
| dependencies.toml | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| settings.gradle.kts |