diff --git a/README.md b/README.md index 6222425..7592d33 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # XMP Core for Kotlin Multiplatform -[![Kotlin](https://img.shields.io/badge/kotlin-2.1.21-blue.svg?logo=kotlin)](httpw://kotlinlang.org) +[![Kotlin](https://img.shields.io/badge/kotlin-2.2.0-blue.svg?logo=kotlin)](httpw://kotlinlang.org) ![JVM](https://img.shields.io/badge/-JVM-gray.svg?style=flat) ![Android](https://img.shields.io/badge/-Android-gray.svg?style=flat) ![iOS](https://img.shields.io/badge/-iOS-gray.svg?style=flat) @@ -19,7 +19,7 @@ It's part of [Ashampoo Photo Organizer](https://ashampoo.com/photo-organizer). ## Installation ``` -implementation("com.ashampoo:xmpcore:1.5.2") +implementation("com.ashampoo:xmpcore:1.6.0") ``` ## How to use diff --git a/build.gradle.kts b/build.gradle.kts index 4426f85..b834ccc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,17 +1,18 @@ import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework plugins { - kotlin("multiplatform") version "2.1.21" - id("com.android.library") version "8.9.2" - id("io.gitlab.arturbosch.detekt") version "1.23.8" - id("org.jetbrains.kotlinx.kover") version "0.9.1" - id("com.asarkar.gradle.build-time-tracker") version "5.0.1" - id("me.qoomon.git-versioning") version "6.4.4" - id("com.goncalossilva.resources") version "0.10.0" - id("com.github.ben-manes.versions") version "0.52.0" - id("com.vanniktech.maven.publish") version "0.34.0" + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.android.library) + alias(libs.plugins.detekt) + alias(libs.plugins.kover) + alias(libs.plugins.build.time.tracker) + alias(libs.plugins.git.versioning) + alias(libs.plugins.resources) + alias(libs.plugins.gradle.versions) + alias(libs.plugins.maven.publish) } repositories { @@ -21,9 +22,6 @@ repositories { val productName = "Ashampoo XMP Core" -val xmlUtilVersion: String = "0.91.1" -val kotlinxIoVersion: String = "0.7.0" - description = productName group = "com.ashampoo" version = "0.0.0" @@ -66,7 +64,7 @@ kover { } dependencies { - detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.23.8") + detektPlugins(libs.detekt.formatting) } kotlin { @@ -75,10 +73,8 @@ kotlin { androidTarget { - compilations.all { - kotlinOptions { - jvmTarget = "11" - } + compilerOptions { + jvmTarget = JvmTarget.JVM_11 } publishLibraryVariants("release") @@ -130,7 +126,7 @@ kotlin { dependencies { /* Needed to parse XML and create a DOM Document */ - implementation("io.github.pdvrieze.xmlutil:core:$xmlUtilVersion") + implementation(libs.xmlutil.core) } } @@ -142,7 +138,7 @@ kotlin { implementation(kotlin("test")) /* Multiplatform file access */ - implementation("org.jetbrains.kotlinx:kotlinx-io-core:$kotlinxIoVersion") + implementation(libs.kotlinx.io.core) } } @@ -257,12 +253,12 @@ android { namespace = "com.ashampoo.xmpcore" - compileSdk = 35 + compileSdk = libs.versions.android.compile.sdk.get().toInt() sourceSets["main"].res.srcDirs("src/commonMain/resources") defaultConfig { - minSdk = 21 + minSdk = libs.versions.android.min.sdk.get().toInt() } compileOptions { @@ -304,25 +300,25 @@ mavenPublishing { name = productName description = "XMP Core for Kotlin Multiplatform" - url = "https://github.com/Ashampoo/xmpcore" + url = "https://github.com/Software-Rangers/xmpcore" licenses { license { name = "The BSD License" - url = "https://github.com/Ashampoo/xmpcore/blob/main/original_source/original_license.txt" + url = "https://github.com/Software-Rangers/xmpcore/blob/main/original_source/original_license.txt" } } developers { developer { - name = "Ashampoo GmbH & Co. KG" - url = "https://www.ashampoo.com/" + name = "Software Rangers GmbH" + url = "https://software-rangers.com/" } } scm { - url = "https://github.com/Ashampoo/xmpcore" - connection = "scm:git:git://github.com/Ashampoo/xmpcore.git" + url = "https://github.com/Software-Rangers/xmpcore" + connection = "scm:git:git://github.com/Software-Rangers/xmpcore.git" } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..d8a0ce0 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,51 @@ +[versions] +# Kotlin and Android +kotlin = "2.2.0" +android-gradle-plugin = "8.9.2" +android-compile-sdk = "36" +android-min-sdk = "21" + +# Build and Analysis Tools +detekt = "1.23.8" +kover = "0.9.1" +build-time-tracker = "5.0.1" +git-versioning = "6.4.4" +gradle-versions = "0.52.0" +maven-publish = "0.34.0" + +# Resources +resources = "0.10.1" + +# Libraries +xmlutil = "0.91.1" +kotlinx-io = "0.8.0" + +[libraries] +# XML Processing +xmlutil-core = { module = "io.github.pdvrieze.xmlutil:core", version.ref = "xmlutil" } + +# Kotlin Extensions +kotlinx-io-core = { module = "org.jetbrains.kotlinx:kotlinx-io-core", version.ref = "kotlinx-io" } + +# Code Analysis +detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } + +[plugins] +# Kotlin +kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } + +# Android +android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } + +# Code Analysis and Quality +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } + +# Build Tools +build-time-tracker = { id = "com.asarkar.gradle.build-time-tracker", version.ref = "build-time-tracker" } +git-versioning = { id = "me.qoomon.git-versioning", version.ref = "git-versioning" } +gradle-versions = { id = "com.github.ben-manes.versions", version.ref = "gradle-versions" } + +# Resources and Publishing +resources = { id = "com.goncalossilva.resources", version.ref = "resources" } +maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "maven-publish" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3c44eb1..aa02b02 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt index 512d434..514cd11 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 public object XMPVersionInfo { public const val MAJOR: Int = 1 - public const val MINOR: Int = 5 - public const val PATCH: Int = 2 + public const val MINOR: Int = 6 + public const val PATCH: Int = 0 public const val VERSION_MESSAGE: String = "Ashampoo XMP Core $MAJOR.$MINOR.$PATCH" diff --git a/src/commonTest/resources/com/ashampoo/xmp/sample_100_formatted_canonical.xmp b/src/commonTest/resources/com/ashampoo/xmp/sample_100_formatted_canonical.xmp index dc0ede9..1119b79 100644 --- a/src/commonTest/resources/com/ashampoo/xmp/sample_100_formatted_canonical.xmp +++ b/src/commonTest/resources/com/ashampoo/xmp/sample_100_formatted_canonical.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 c63ae80..181bbd0 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 9abdf72..8c758af 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 9a22270..57a1cf1 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 9abdf72..8c758af 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 9abdf72..8c758af 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 c63ae80..181bbd0 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 c63ae80..181bbd0 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 c5fe667..cdfb58f 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 67bc94c..51c36ba 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 9abdf72..8c758af 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 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +