diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2482f19..85c76fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -112,6 +112,18 @@ jobs: if-no-files-found: error name: xmpcore-macosArm64.kexe path: build/bin/macosArm64/releaseExecutable/xmpcore.kexe + - name: Upload xmpcore-linuxArm64.kexe + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore-linuxArm64.kexe + path: build/bin/linuxArm64/releaseExecutable/xmpcore.kexe + - name: Upload xmpcore-linuxX64.kexe + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore-linuxX64.kexe + path: build/bin/linuxX64/releaseExecutable/xmpcore.kexe - name: Export secring.pgp if: startsWith(github.ref, 'refs/tags/') # Only for releases run: | diff --git a/README.md b/README.md index 2d4ac47..c7f91b0 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ ![macOS](https://img.shields.io/badge/-macOS-gray.svg?style=flat) ![iOS](https://img.shields.io/badge/-iOS-gray.svg?style=flat) ![Windows](https://img.shields.io/badge/-Windows-gray.svg?style=flat) +![Linux](https://img.shields.io/badge/-Linux-gray.svg?style=flat) ![WASM](https://img.shields.io/badge/-WASM-gray.svg?style=flat) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=xmpcore&metric=coverage)](https://sonarcloud.io/summary/new_code?id=xmpcore) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.ashampoo/xmpcore/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.ashampoo/xmpcore) @@ -17,7 +18,7 @@ It's part of [Ashampoo Photos](https://ashampoo.com/photos). ## Installation ``` -implementation("com.ashampoo:xmpcore:1.0.1") +implementation("com.ashampoo:xmpcore:1.1.0") ``` ## How to use diff --git a/build.gradle.kts b/build.gradle.kts index 55597cd..d3baefa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -127,6 +127,22 @@ kotlin { } } + linuxX64 { + binaries { + executable(setOf(NativeBuildType.RELEASE)) { + entryPoint = "com.ashampoo.xmp.main" + } + } + } + + linuxArm64 { + binaries { + executable(setOf(NativeBuildType.RELEASE)) { + entryPoint = "com.ashampoo.xmp.main" + } + } + } + jvm { java { @@ -180,6 +196,8 @@ kotlin { listOf( /* App Store */ iosArm64(), + /* Apple Intel iOS Simulator */ + iosX64(), /* Apple Silicon iOS Simulator */ iosSimulatorArm64(), /* macOS Devices */ @@ -215,7 +233,18 @@ kotlin { dependsOn(posixMain) } + @Suppress("UnusedPrivateMember", "UNUSED_VARIABLE") // False positive + val linuxX64Main by sourceSets.getting { + dependsOn(posixMain) + } + + @Suppress("UnusedPrivateMember", "UNUSED_VARIABLE") // False positive + val linuxArm64Main by sourceSets.getting { + dependsOn(posixMain) + } + val iosArm64Main by sourceSets.getting + val iosX64Main by sourceSets.getting val iosSimulatorArm64Main by sourceSets.getting val macosX64Main by sourceSets.getting val macosArm64Main by sourceSets.getting @@ -227,12 +256,14 @@ kotlin { dependsOn(posixMain) iosArm64Main.dependsOn(this) + iosX64Main.dependsOn(this) iosSimulatorArm64Main.dependsOn(this) macosX64Main.dependsOn(this) macosArm64Main.dependsOn(this) } val iosArm64Test by sourceSets.getting + val iosX64Test by sourceSets.getting val iosSimulatorArm64Test by sourceSets.getting val macosX64Test by sourceSets.getting val macosArm64Test by sourceSets.getting @@ -243,6 +274,7 @@ kotlin { dependsOn(commonTest) iosArm64Test.dependsOn(this) + iosX64Test.dependsOn(this) iosSimulatorArm64Test.dependsOn(this) macosX64Test.dependsOn(this) macosArm64Test.dependsOn(this) @@ -264,12 +296,12 @@ android { namespace = "com.ashampoo.xmpcore" - compileSdk = 33 + compileSdk = 34 sourceSets["main"].res.srcDirs("src/commonMain/resources") defaultConfig { - minSdk = 23 + minSdk = 21 } compileOptions { @@ -312,10 +344,13 @@ afterEvaluate { val signJvmPublication by tasks.getting val signAndroidReleasePublication by tasks.getting val signIosArm64Publication by tasks.getting + val signIosX64Publication by tasks.getting val signIosSimulatorArm64Publication by tasks.getting val signMacosArm64Publication by tasks.getting val signMacosX64Publication by tasks.getting val signWinPublication by tasks.getting + val signLinuxX64Publication by tasks.getting + val signLinuxArm64Publication by tasks.getting val signWasmJsPublication by tasks.getting val signWasmWasiPublication by tasks.getting val signKotlinMultiplatformPublication by tasks.getting @@ -323,10 +358,13 @@ afterEvaluate { val publishJvmPublicationToSonatypeRepository by tasks.getting val publishAndroidReleasePublicationToSonatypeRepository by tasks.getting val publishIosArm64PublicationToSonatypeRepository by tasks.getting + val publishIosX64PublicationToSonatypeRepository by tasks.getting val publishIosSimulatorArm64PublicationToSonatypeRepository by tasks.getting val publishMacosArm64PublicationToSonatypeRepository by tasks.getting val publishMacosX64PublicationToSonatypeRepository by tasks.getting val publishWinPublicationToSonatypeRepository by tasks.getting + val publishLinuxX64PublicationToSonatypeRepository by tasks.getting + val publishLinuxArm64PublicationToSonatypeRepository by tasks.getting val publishWasmJsPublicationToSonatypeRepository by tasks.getting val publishWasmWasiPublicationToSonatypeRepository by tasks.getting val publishKotlinMultiplatformPublicationToSonatypeRepository by tasks.getting @@ -334,20 +372,23 @@ afterEvaluate { val signTasks = listOf( signJvmPublication, signAndroidReleasePublication, - signIosArm64Publication, signIosSimulatorArm64Publication, - signMacosArm64Publication, signMacosX64Publication, - signWinPublication, signWasmJsPublication, signWasmWasiPublication, - signKotlinMultiplatformPublication + signIosArm64Publication, signIosX64Publication, signIosSimulatorArm64Publication, + signMacosArm64Publication, signMacosX64Publication, signWinPublication, + signLinuxX64Publication, signLinuxArm64Publication, + signWasmJsPublication, signWasmWasiPublication, signKotlinMultiplatformPublication ) val publishTasks = listOf( publishJvmPublicationToSonatypeRepository, publishAndroidReleasePublicationToSonatypeRepository, publishIosArm64PublicationToSonatypeRepository, + publishIosX64PublicationToSonatypeRepository, publishIosSimulatorArm64PublicationToSonatypeRepository, publishMacosArm64PublicationToSonatypeRepository, publishMacosX64PublicationToSonatypeRepository, publishWinPublicationToSonatypeRepository, + publishLinuxX64PublicationToSonatypeRepository, + publishLinuxArm64PublicationToSonatypeRepository, publishWasmJsPublicationToSonatypeRepository, publishWasmWasiPublicationToSonatypeRepository, publishKotlinMultiplatformPublicationToSonatypeRepository, diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt index 8de698e..170f878 100644 --- a/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt @@ -8,8 +8,8 @@ package com.ashampoo.xmp object XMPVersionInfo { const val MAJOR: Int = 1 - const val MINOR: Int = 0 - const val PATCH: Int = 1 + const val MINOR: Int = 1 + const val PATCH: Int = 0 const val VERSION_MESSAGE = "Ashampoo XMP Core $MAJOR.$MINOR.$PATCH" diff --git a/src/commonTest/resources/com/ashampoo/xmp/empty.xmp b/src/commonTest/resources/com/ashampoo/xmp/empty.xmp index 42538ef..3900b8c 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/empty.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/empty.xmp @@ -1,5 +1,5 @@ - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/new.xmp b/src/commonTest/resources/com/ashampoo/xmp/new.xmp index d7d04af..1038c04 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/new.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/new.xmp @@ -1,5 +1,5 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_13_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_13_formatted_compact.xmp index 0572871..32a1b62 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_13_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_13_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_14_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_14_formatted_compact.xmp index b811be5..139b7bb 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_14_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_14_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_15_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_15_formatted_compact.xmp index 5585a53..6e22b0e 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_15_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_15_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_31_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_31_formatted_compact.xmp index b811be5..139b7bb 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_31_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_31_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + - + - + - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_34_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_34_formatted_compact.xmp index b811be5..139b7bb 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_34_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_34_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + - + - + - + - + - + - + - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_39_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_39_formatted_compact.xmp index 0572871..32a1b62 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_39_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_39_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + - + - + - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_41_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_41_formatted_compact.xmp index 0572871..32a1b62 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_41_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_41_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_43_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_43_formatted_compact.xmp index fa8f1a1..cc23945 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_43_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_43_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_44_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_44_formatted_compact.xmp index b298018..58500c7 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_44_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_44_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + - + - + - + - + - + - + - + - + diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_49_formatted_compact.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_49_formatted_compact.xmp index b811be5..139b7bb 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_49_formatted_compact.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_49_formatted_compact.xmp @@ -1,5 +1,5 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +