Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,8 @@ Tapping a library opens its details — inline, in a dialog, or in a bottom shee

## Latest releases 🛠

- Compose 1.11.x | New UI | AGP 9 | Kotlin 2.4 | Compile 37 | [v15.0.4](https://github.com/mikepenz/AboutLibraries/tree/15.0.4)
- Compose 1.11.x | New UI | AGP 9 | Kotlin 2.4 | Compile 37 | [v15.0.4](https://github.com/mikepenz/AboutLibraries/tree/15.0.4) / [v15.1.0-b01](https://github.com/mikepenz/AboutLibraries/tree/15.1.0-b01)
- Compose 1.10.x | AGP 9 | [v14.1.0](https://github.com/mikepenz/AboutLibraries/tree/14.1.0)
- Compose 1.10.x | [v13.2.1](https://github.com/mikepenz/AboutLibraries/tree/13.2.1)

## Gradle Plugin

Expand Down Expand Up @@ -218,6 +217,16 @@ aboutLibraries {

// Enable inclusion of `platform` dependencies in the library report
includePlatform = true

// Enable reporting of the Kotlin targets each library is consumed by, as a `targets` array
// on every library (e.g. ["android", "jvm", "iosX64"]). Target names are taken from the
// Kotlin target model, so a consumer can narrow the rendered list to what the running
// target links against: `libs.libraries.filter { "iosArm64" in it.targets }`.
// Only multiplatform projects report anything — an Android-only or JVM-only project builds
// a single implicit target, so every library reports an empty array.
// Disabled by default; when disabled the `targets` field is omitted from the output entirely.
// It can also be dropped per export via `excludeFields.add("Library.targets")`.
includeTargets = false
}

export {
Expand Down Expand Up @@ -269,6 +278,10 @@ aboutLibraries {
duplicationMode = com.mikepenz.aboutlibraries.plugin.DuplicateMode.MERGE
// Configure the duplication rule, to match "duplicates" with
duplicationRule = com.mikepenz.aboutlibraries.plugin.DuplicateRule.SIMPLE
// Report the per-platform artifacts of a Kotlin Multiplatform publication under the declared
// root coordinate (`androidx.collection:collection`, not `androidx.collection:collection-jvm`).
// Unrelated to Android build variants — see `filterVariants` for those.
mergePlatformArtifacts = true
}
}
```
Expand Down
7 changes: 5 additions & 2 deletions aboutlibraries-core/api/aboutlibraries-core.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ final class com.mikepenz.aboutlibraries.entity/Funding { // com.mikepenz.aboutli
}

final class com.mikepenz.aboutlibraries.entity/Library { // com.mikepenz.aboutlibraries.entity/Library|null[0]
constructor <init>(kotlin/String, kotlin/String?, kotlin/String, kotlin/String?, kotlin/String?, kotlin.collections/List<com.mikepenz.aboutlibraries.entity/Developer>, com.mikepenz.aboutlibraries.entity/Organization?, com.mikepenz.aboutlibraries.entity/Scm?, kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/License> = ..., kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/Funding> = ..., kotlin/String? = ...) // com.mikepenz.aboutlibraries.entity/Library.<init>|<init>(kotlin.String;kotlin.String?;kotlin.String;kotlin.String?;kotlin.String?;kotlin.collections.List<com.mikepenz.aboutlibraries.entity.Developer>;com.mikepenz.aboutlibraries.entity.Organization?;com.mikepenz.aboutlibraries.entity.Scm?;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.License>;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.Funding>;kotlin.String?){}[0]
constructor <init>(kotlin/String, kotlin/String?, kotlin/String, kotlin/String?, kotlin/String?, kotlin.collections/List<com.mikepenz.aboutlibraries.entity/Developer>, com.mikepenz.aboutlibraries.entity/Organization?, com.mikepenz.aboutlibraries.entity/Scm?, kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/License> = ..., kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/Funding> = ..., kotlin/String? = ..., kotlin.collections/Set<kotlin/String> = ...) // com.mikepenz.aboutlibraries.entity/Library.<init>|<init>(kotlin.String;kotlin.String?;kotlin.String;kotlin.String?;kotlin.String?;kotlin.collections.List<com.mikepenz.aboutlibraries.entity.Developer>;com.mikepenz.aboutlibraries.entity.Organization?;com.mikepenz.aboutlibraries.entity.Scm?;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.License>;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.Funding>;kotlin.String?;kotlin.collections.Set<kotlin.String>){}[0]

final val artifactId // com.mikepenz.aboutlibraries.entity/Library.artifactId|{}artifactId[0]
final fun <get-artifactId>(): kotlin/String // com.mikepenz.aboutlibraries.entity/Library.artifactId.<get-artifactId>|<get-artifactId>(){}[0]
Expand All @@ -89,6 +89,8 @@ final class com.mikepenz.aboutlibraries.entity/Library { // com.mikepenz.aboutli
final fun <get-scm>(): com.mikepenz.aboutlibraries.entity/Scm? // com.mikepenz.aboutlibraries.entity/Library.scm.<get-scm>|<get-scm>(){}[0]
final val tag // com.mikepenz.aboutlibraries.entity/Library.tag|{}tag[0]
final fun <get-tag>(): kotlin/String? // com.mikepenz.aboutlibraries.entity/Library.tag.<get-tag>|<get-tag>(){}[0]
final val targets // com.mikepenz.aboutlibraries.entity/Library.targets|{}targets[0]
final fun <get-targets>(): kotlin.collections/Set<kotlin/String> // com.mikepenz.aboutlibraries.entity/Library.targets.<get-targets>|<get-targets>(){}[0]
final val uniqueId // com.mikepenz.aboutlibraries.entity/Library.uniqueId|{}uniqueId[0]
final fun <get-uniqueId>(): kotlin/String // com.mikepenz.aboutlibraries.entity/Library.uniqueId.<get-uniqueId>|<get-uniqueId>(){}[0]
final val website // com.mikepenz.aboutlibraries.entity/Library.website|{}website[0]
Expand All @@ -97,6 +99,7 @@ final class com.mikepenz.aboutlibraries.entity/Library { // com.mikepenz.aboutli
final fun component1(): kotlin/String // com.mikepenz.aboutlibraries.entity/Library.component1|component1(){}[0]
final fun component10(): kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/Funding> // com.mikepenz.aboutlibraries.entity/Library.component10|component10(){}[0]
final fun component11(): kotlin/String? // com.mikepenz.aboutlibraries.entity/Library.component11|component11(){}[0]
final fun component12(): kotlin.collections/Set<kotlin/String> // com.mikepenz.aboutlibraries.entity/Library.component12|component12(){}[0]
final fun component2(): kotlin/String? // com.mikepenz.aboutlibraries.entity/Library.component2|component2(){}[0]
final fun component3(): kotlin/String // com.mikepenz.aboutlibraries.entity/Library.component3|component3(){}[0]
final fun component4(): kotlin/String? // com.mikepenz.aboutlibraries.entity/Library.component4|component4(){}[0]
Expand All @@ -105,7 +108,7 @@ final class com.mikepenz.aboutlibraries.entity/Library { // com.mikepenz.aboutli
final fun component7(): com.mikepenz.aboutlibraries.entity/Organization? // com.mikepenz.aboutlibraries.entity/Library.component7|component7(){}[0]
final fun component8(): com.mikepenz.aboutlibraries.entity/Scm? // com.mikepenz.aboutlibraries.entity/Library.component8|component8(){}[0]
final fun component9(): kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/License> // com.mikepenz.aboutlibraries.entity/Library.component9|component9(){}[0]
final fun copy(kotlin/String = ..., kotlin/String? = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin.collections/List<com.mikepenz.aboutlibraries.entity/Developer> = ..., com.mikepenz.aboutlibraries.entity/Organization? = ..., com.mikepenz.aboutlibraries.entity/Scm? = ..., kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/License> = ..., kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/Funding> = ..., kotlin/String? = ...): com.mikepenz.aboutlibraries.entity/Library // com.mikepenz.aboutlibraries.entity/Library.copy|copy(kotlin.String;kotlin.String?;kotlin.String;kotlin.String?;kotlin.String?;kotlin.collections.List<com.mikepenz.aboutlibraries.entity.Developer>;com.mikepenz.aboutlibraries.entity.Organization?;com.mikepenz.aboutlibraries.entity.Scm?;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.License>;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.Funding>;kotlin.String?){}[0]
final fun copy(kotlin/String = ..., kotlin/String? = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin.collections/List<com.mikepenz.aboutlibraries.entity/Developer> = ..., com.mikepenz.aboutlibraries.entity/Organization? = ..., com.mikepenz.aboutlibraries.entity/Scm? = ..., kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/License> = ..., kotlin.collections/Set<com.mikepenz.aboutlibraries.entity/Funding> = ..., kotlin/String? = ..., kotlin.collections/Set<kotlin/String> = ...): com.mikepenz.aboutlibraries.entity/Library // com.mikepenz.aboutlibraries.entity/Library.copy|copy(kotlin.String;kotlin.String?;kotlin.String;kotlin.String?;kotlin.String?;kotlin.collections.List<com.mikepenz.aboutlibraries.entity.Developer>;com.mikepenz.aboutlibraries.entity.Organization?;com.mikepenz.aboutlibraries.entity.Scm?;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.License>;kotlin.collections.Set<com.mikepenz.aboutlibraries.entity.Funding>;kotlin.String?;kotlin.collections.Set<kotlin.String>){}[0]
final fun equals(kotlin/Any?): kotlin/Boolean // com.mikepenz.aboutlibraries.entity/Library.equals|equals(kotlin.Any?){}[0]
final fun hashCode(): kotlin/Int // com.mikepenz.aboutlibraries.entity/Library.hashCode|hashCode(){}[0]
final fun toString(): kotlin/String // com.mikepenz.aboutlibraries.entity/Library.toString|toString(){}[0]
Expand Down
10 changes: 6 additions & 4 deletions aboutlibraries-core/api/android/aboutlibraries-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,12 @@ public final class com/mikepenz/aboutlibraries/entity/Funding$Companion {

public final class com/mikepenz/aboutlibraries/entity/Library {
public static final field Companion Lcom/mikepenz/aboutlibraries/entity/Library$Companion;
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/String;
public final fun component10 ()Ljava/util/Set;
public final fun component11 ()Ljava/lang/String;
public final fun component12 ()Ljava/util/Set;
public final fun component2 ()Ljava/lang/String;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Ljava/lang/String;
Expand All @@ -106,8 +107,8 @@ public final class com/mikepenz/aboutlibraries/entity/Library {
public final fun component7 ()Lcom/mikepenz/aboutlibraries/entity/Organization;
public final fun component8 ()Lcom/mikepenz/aboutlibraries/entity/Scm;
public final fun component9 ()Ljava/util/Set;
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;)Lcom/mikepenz/aboutlibraries/entity/Library;
public static synthetic fun copy$default (Lcom/mikepenz/aboutlibraries/entity/Library;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;ILjava/lang/Object;)Lcom/mikepenz/aboutlibraries/entity/Library;
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)Lcom/mikepenz/aboutlibraries/entity/Library;
public static synthetic fun copy$default (Lcom/mikepenz/aboutlibraries/entity/Library;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;ILjava/lang/Object;)Lcom/mikepenz/aboutlibraries/entity/Library;
public fun equals (Ljava/lang/Object;)Z
public final fun getArtifactId ()Ljava/lang/String;
public final fun getArtifactVersion ()Ljava/lang/String;
Expand All @@ -120,6 +121,7 @@ public final class com/mikepenz/aboutlibraries/entity/Library {
public final fun getOrganization ()Lcom/mikepenz/aboutlibraries/entity/Organization;
public final fun getScm ()Lcom/mikepenz/aboutlibraries/entity/Scm;
public final fun getTag ()Ljava/lang/String;
public final fun getTargets ()Ljava/util/Set;
public final fun getUniqueId ()Ljava/lang/String;
public final fun getWebsite ()Ljava/lang/String;
public fun hashCode ()I
Expand Down
10 changes: 6 additions & 4 deletions aboutlibraries-core/api/jvm/aboutlibraries-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,12 @@ public final class com/mikepenz/aboutlibraries/entity/Funding$Companion {

public final class com/mikepenz/aboutlibraries/entity/Library {
public static final field Companion Lcom/mikepenz/aboutlibraries/entity/Library$Companion;
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/String;
public final fun component10 ()Ljava/util/Set;
public final fun component11 ()Ljava/lang/String;
public final fun component12 ()Ljava/util/Set;
public final fun component2 ()Ljava/lang/String;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Ljava/lang/String;
Expand All @@ -106,8 +107,8 @@ public final class com/mikepenz/aboutlibraries/entity/Library {
public final fun component7 ()Lcom/mikepenz/aboutlibraries/entity/Organization;
public final fun component8 ()Lcom/mikepenz/aboutlibraries/entity/Scm;
public final fun component9 ()Ljava/util/Set;
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;)Lcom/mikepenz/aboutlibraries/entity/Library;
public static synthetic fun copy$default (Lcom/mikepenz/aboutlibraries/entity/Library;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;ILjava/lang/Object;)Lcom/mikepenz/aboutlibraries/entity/Library;
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)Lcom/mikepenz/aboutlibraries/entity/Library;
public static synthetic fun copy$default (Lcom/mikepenz/aboutlibraries/entity/Library;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mikepenz/aboutlibraries/entity/Organization;Lcom/mikepenz/aboutlibraries/entity/Scm;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;ILjava/lang/Object;)Lcom/mikepenz/aboutlibraries/entity/Library;
public fun equals (Ljava/lang/Object;)Z
public final fun getArtifactId ()Ljava/lang/String;
public final fun getArtifactVersion ()Ljava/lang/String;
Expand All @@ -120,6 +121,7 @@ public final class com/mikepenz/aboutlibraries/entity/Library {
public final fun getOrganization ()Lcom/mikepenz/aboutlibraries/entity/Organization;
public final fun getScm ()Lcom/mikepenz/aboutlibraries/entity/Scm;
public final fun getTag ()Ljava/lang/String;
public final fun getTargets ()Ljava/util/Set;
public final fun getUniqueId ()Ljava/lang/String;
public final fun getWebsite ()Ljava/lang/String;
public fun hashCode ()I
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ actual fun parseData(json: String): Result {
val funding = optJSONArray("funding").forEachObject {
Funding(getString("platform"), getString("url"))
}.toSet()
val targets = optJSONArray("targets").forEachString { this }.toSet()
val id = getString("uniqueId")
Library(
id,
Expand All @@ -56,7 +57,8 @@ actual fun parseData(json: String): Result {
scm,
libLicenses,
funding,
optStringOrNull("tag")
optStringOrNull("tag"),
targets
)
}
return Result(libraries, licenses)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ import kotlinx.serialization.Serializable
* @param scm information, linking to the repository hosting the source
* @param licenses all identified licenses for this artifact
* @param funding all identified funding opportunities for this artifact
* @param targets Kotlin target names this artifact is consumed by (e.g. `android`, `jvm`, `iosX64`).
* Empty unless the `collect.includeTargets` option was enabled when generating the metadata file.
* Lets a consumer narrow the list to what the running target links against, e.g.
* `libs.libraries.filter { "iosArm64" in it.targets }`.
*/
@Serializable
data class Library(
Expand All @@ -30,6 +34,7 @@ data class Library(
@SerialName("licenses") val licenses: Set<License> = emptySet(),
@SerialName("funding") val funding: Set<Funding> = emptySet(),
@SerialName("tag") val tag: String? = null,
@SerialName("targets") val targets: Set<String> = emptySet(),
) {
/**
* defines the [uniqueId]:[artifactVersion] combined
Expand Down
Loading
Loading