• Sebastian Sellmair's avatar
    Publish 'skiko-awt-runtime' (#1119) · f0d0baa1
    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: 's avatarIgor Demin <igor.demin@jetbrains.com>
    f0d0baa1
Name
Last commit
Last update
.github Loading commit data...
.run Loading commit data...
gradle/wrapper Loading commit data...
samples Loading commit data...
skiko Loading commit data...
.gitignore Loading commit data...
DEVELOPMENT.md Loading commit data...
LICENSE Loading commit data...
NOTICE Loading commit data...
README.md Loading commit data...
dependencies.toml Loading commit data...
gradle.properties Loading commit data...
gradlew Loading commit data...
gradlew.bat Loading commit data...
settings.gradle.kts Loading commit data...