You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.6 KiB
56 lines
1.6 KiB
10 months ago
|
/*
|
||
|
* Copyright 2020-2023 JetBrains s.r.o. and respective authors and developers.
|
||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file.
|
||
|
*/
|
||
|
|
||
6 months ago
|
package org.jetbrains.compose.resources.ios
|
||
10 months ago
|
|
||
|
import org.gradle.api.provider.Property
|
||
|
import org.gradle.api.provider.SetProperty
|
||
|
import org.gradle.api.tasks.Input
|
||
|
import java.io.ObjectInputStream
|
||
|
import java.io.ObjectOutputStream
|
||
|
import java.io.Serializable
|
||
|
|
||
|
internal abstract class IosTargetResources : Serializable {
|
||
|
@get:Input
|
||
|
abstract val name: Property<String>
|
||
|
|
||
|
@get:Input
|
||
|
abstract val konanTarget: Property<String>
|
||
|
|
||
|
@get:Input
|
||
|
abstract val dirs: SetProperty<String>
|
||
|
|
||
|
@Suppress("unused") // used by Gradle Configuration Cache
|
||
|
fun readObject(input: ObjectInputStream) {
|
||
|
name.set(input.readUTF())
|
||
|
konanTarget.set(input.readUTF())
|
||
|
dirs.set(input.readUTFStrings())
|
||
|
}
|
||
|
|
||
|
@Suppress("unused") // used by Gradle Configuration Cache
|
||
|
fun writeObject(output: ObjectOutputStream) {
|
||
|
output.writeUTF(name.get())
|
||
|
output.writeUTF(konanTarget.get())
|
||
|
output.writeUTFStrings(dirs.get())
|
||
|
}
|
||
|
|
||
|
private fun ObjectOutputStream.writeUTFStrings(collection: Collection<String>) {
|
||
|
writeInt(collection.size)
|
||
|
collection.forEach { writeUTF(it) }
|
||
|
}
|
||
|
|
||
|
private fun ObjectInputStream.readUTFStrings(): Set<String> {
|
||
|
val size = readInt()
|
||
|
return LinkedHashSet<String>(size).apply {
|
||
|
repeat(size) {
|
||
|
add(readUTF())
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
companion object {
|
||
|
private const val serialVersionUID: Long = 0
|
||
|
}
|
||
|
}
|