@@ -6,7 +6,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
6
6
import org.jetbrains.kotlin.gradle.plugin.mpp.TestExecutable
7
7
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
8
8
import org.jetbrains.kotlin.konan.target.Family
9
- import org.jetbrains.kotlin.konan.target.KonanTarget
10
9
11
10
12
11
plugins {
@@ -82,15 +81,22 @@ val downloadPowersyncFramework by tasks.registering(Download::class) {
82
81
onlyIfModified(true )
83
82
}
84
83
85
- val unzipPowersyncFramework by tasks.registering(Copy ::class ) {
84
+ val unzipPowersyncFramework by tasks.registering(Exec ::class ) {
86
85
dependsOn(downloadPowersyncFramework)
87
86
88
- from(
89
- zipTree(downloadPowersyncFramework.get().dest).matching {
90
- include(" powersync-sqlite-core.xcframework/**" )
91
- },
92
- )
93
- into(binariesFolder.map { it.dir(" framework" ) })
87
+ val zipfile = downloadPowersyncFramework.get().dest
88
+ inputs.file(zipfile)
89
+ val destination = File (zipfile.parentFile, " extracted" )
90
+ doFirst {
91
+ destination.deleteRecursively()
92
+ destination.mkdir()
93
+ }
94
+
95
+ // We're using unzip here because the Gradle copy task doesn't support symlinks.
96
+ executable = " unzip"
97
+ args(zipfile.absolutePath)
98
+ workingDir(destination)
99
+ outputs.dir(destination)
94
100
}
95
101
96
102
val sqliteJDBCFolder =
@@ -164,7 +170,7 @@ kotlin {
164
170
linkerOpts(" -framework" , " powersync-sqlite-core" )
165
171
val frameworkRoot =
166
172
binariesFolder
167
- .map { it.dir(" framework/powersync-sqlite-core.xcframework/ios-arm64_x86_64-simulator" ) }
173
+ .map { it.dir(" framework/extracted/ powersync-sqlite-core.xcframework/ios-arm64_x86_64-simulator" ) }
168
174
.get()
169
175
.asFile.path
170
176
@@ -177,9 +183,9 @@ kotlin {
177
183
binaries.withType<TestExecutable >().configureEach {
178
184
linkTaskProvider.configure { dependsOn(unzipPowersyncFramework) }
179
185
linkerOpts(" -framework" , " powersync-sqlite-core" )
180
- val frameworkRoot =
186
+ var frameworkRoot =
181
187
binariesFolder
182
- .map { it.dir(" framework/powersync-sqlite-core.xcframework/macos-arm64_x86_64" ) }
188
+ .map { it.dir(" framework/extracted/ powersync-sqlite-core.xcframework/macos-arm64_x86_64" ) }
183
189
.get()
184
190
.asFile.path
185
191
0 commit comments