Skip to content

Commit f7bd2da

Browse files
committed
tidying...
1 parent 049044a commit f7bd2da

File tree

2 files changed

+45
-32
lines changed

2 files changed

+45
-32
lines changed

modules/bcv-gradle-plugin/src/main/kotlin/tasks/BCVApiCheckTask.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ constructor(
6969
val projectApiDir = projectApiDir.orNull
7070
?: error(
7171
"""
72-
Expected folder with API declarations '${expectedApiDirPath.get()}' does not exist.
73-
Please ensure that task '$apiDumpTaskPath' was executed in order to get API dump to compare the build against.
72+
Expected folder with API declarations '${expectedApiDirPath.get()}' does not exist.
73+
Please ensure that task '$apiDumpTaskPath' was executed in order to get API dump to compare the build against.
7474
""".trimIndent()
7575
)
7676

modules/bcv-gradle-plugin/src/main/kotlin/tasks/BCVApiGenerateTask.kt

Lines changed: 43 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import java.io.File
99
import javax.inject.Inject
1010
import org.gradle.api.NamedDomainObjectContainer
1111
import org.gradle.api.file.ConfigurableFileCollection
12-
import org.gradle.api.file.Directory
1312
import org.gradle.api.file.DirectoryProperty
1413
import org.gradle.api.file.FileSystemOperations
1514
import org.gradle.api.model.ObjectFactory
@@ -58,24 +57,20 @@ constructor(
5857
abstract val outputApiBuildDir: DirectoryProperty
5958

6059
@get:LocalState
61-
val supportedTargetsDir: File get() = temporaryDir.resolve("klib-supported")
60+
internal val workDir: File get() = temporaryDir
6261

63-
@get:LocalState
64-
val unsupportedTargetsDir: File get() = temporaryDir.resolve("klib-unsupported")
62+
private val klibTargetsDir = object {
63+
private val klibDir: File get() = workDir.resolve("klib")
64+
val supported: File get() = klibDir.resolve("supported")
65+
val unsupported: File get() = klibDir.resolve("unsupported")
66+
val extracted: File get() = klibDir.resolve("extracted")
67+
}
6568

6669
@TaskAction
6770
fun generate() {
6871
val workQueue = prepareWorkQueue()
6972

70-
val outputApiBuildDir = outputApiBuildDir.get()
71-
fs.delete { delete(outputApiBuildDir) }
72-
outputApiBuildDir.asFile.mkdirs()
73-
74-
fs.delete { delete(supportedTargetsDir) }
75-
supportedTargetsDir.mkdirs()
76-
77-
fs.delete { delete(unsupportedTargetsDir) }
78-
unsupportedTargetsDir.mkdirs()
73+
prepareDirectories()
7974

8075
logger.lifecycle("[$path] got ${targets.size} targets : ${targets.joinToString { it.name }}")
8176

@@ -84,7 +79,7 @@ constructor(
8479
generateJvmTargets(
8580
workQueue = workQueue,
8681
jvmTargets = enabledTargets.withType<BCVJvmTarget>(),
87-
outputApiBuildDir = outputApiBuildDir,
82+
outputApiBuildDir = outputApiBuildDir.get().asFile,
8883
)
8984

9085
// TODO log when klib file doesn't exist
@@ -96,7 +91,7 @@ constructor(
9691
generateKLibTargets(
9792
workQueue = workQueue,
9893
klibTargets = klibTargets,
99-
outputApiBuildDir = outputApiBuildDir,
94+
outputApiBuildDir = outputApiBuildDir.get().asFile,
10095
)
10196

10297
// The worker queue is asynchronous, so any code here won't wait for the workers to finish.
@@ -113,11 +108,26 @@ constructor(
113108
}
114109
}
115110

111+
private fun prepareDirectories() {
112+
val outputApiBuildDir = outputApiBuildDir.get()
113+
fs.delete { delete(outputApiBuildDir) }
114+
outputApiBuildDir.asFile.mkdirs()
115+
116+
fs.delete { delete(klibTargetsDir.supported) }
117+
klibTargetsDir.supported.mkdirs()
118+
119+
fs.delete { delete(klibTargetsDir.unsupported) }
120+
klibTargetsDir.unsupported.mkdirs()
121+
122+
fs.delete { delete(klibTargetsDir.extracted) }
123+
klibTargetsDir.extracted.mkdirs()
124+
}
125+
116126
//region JVM
117127

118128
private fun generateJvmTargets(
119129
workQueue: WorkQueue,
120-
outputApiBuildDir: Directory,
130+
outputApiBuildDir: File,
121131
jvmTargets: Collection<BCVJvmTarget>,
122132
) {
123133
if (jvmTargets.isEmpty()) {
@@ -131,12 +141,12 @@ constructor(
131141
val outputDir = if (jvmTargets.size == 1) {
132142
outputApiBuildDir
133143
} else {
134-
outputApiBuildDir.dir(target.platformType)
144+
outputApiBuildDir.resolve(target.platformType)
135145
}
136146

137147
workQueue.submit(
138148
target = target,
139-
outputDir = outputDir.asFile,
149+
outputDir = outputDir,
140150
)
141151
}
142152
}
@@ -173,10 +183,13 @@ constructor(
173183

174184
private fun generateKLibTargets(
175185
workQueue: WorkQueue,
176-
outputApiBuildDir: Directory,
186+
outputApiBuildDir: File,
177187
klibTargets: Collection<BCVKLibTarget>,
178188
) {
179-
if (klibTargets.isEmpty()) return
189+
if (klibTargets.isEmpty()) {
190+
logger.info("[$path] No enabled KLib targets")
191+
return
192+
}
180193
logger.lifecycle("[$path] generating ${klibTargets.size} KLib targets : ${klibTargets.joinToString { it.name }}")
181194

182195
val (supportedKLibTargets, unsupportedKLibTargets) =
@@ -188,10 +201,10 @@ constructor(
188201
workQueue.await()
189202

190203
val allTargetDumpFiles =
191-
supportedTargetsDir.walk().filter { it.isFile }.toSet() union
192-
unsupportedTargetsDir.walk().filter { it.isFile }.toSet()
204+
klibTargetsDir.supported.walk().filter { it.isFile }.toSet() union
205+
klibTargetsDir.unsupported.walk().filter { it.isFile }.toSet()
193206

194-
mergeDumpFiles(workQueue, allTargetDumpFiles, outputApiBuildDir.asFile)
207+
mergeDumpFiles(workQueue, allTargetDumpFiles, outputApiBuildDir)
195208
}
196209

197210
private fun generateSupportedKLibTargets(
@@ -200,17 +213,17 @@ constructor(
200213
) {
201214
logger.lifecycle("[$path] generating ${supportedKLibTargets.size} supported KLib targets : ${supportedKLibTargets.joinToString { it.name }}")
202215

203-
val supportedKLibGenDuration = measureTime {
216+
val duration = measureTime {
204217
supportedKLibTargets.forEach { target ->
205218
workQueue.submit(
206219
target = target,
207-
outputDir = supportedTargetsDir,
220+
outputDir = klibTargetsDir.supported,
208221
)
209222
}
210223
workQueue.await()
211224
}
212225

213-
logger.lifecycle("[$path] finished generating supported KLib targets in $supportedKLibGenDuration")
226+
logger.lifecycle("[$path] finished generating supported KLib targets in $duration")
214227
}
215228

216229
private fun generateUnsupportedKLibTargets(
@@ -219,19 +232,19 @@ constructor(
219232
) {
220233
logger.lifecycle("[$path] generating ${unsupportedKLibTargets.size} unsupported KLib targets : ${unsupportedKLibTargets.joinToString { it.name }}")
221234

222-
val unsupportedKLibGenDuration = measureTime {
235+
val duration = measureTime {
223236
unsupportedKLibTargets.forEach { target ->
224237
workQueue.inferKLib(
225238
target = target,
226-
supportedTargetDumpFiles = supportedTargetsDir.walk().filter { it.isFile }.toSet(),
239+
supportedTargetDumpFiles = klibTargetsDir.supported.walk().filter { it.isFile }.toSet(),
227240
extantApiDumpFile = extantApiDumpDir.asFile.orNull?.walk()?.filter { it.isFile }
228241
?.firstOrNull(),
229-
outputDir = unsupportedTargetsDir,
242+
outputDir = klibTargetsDir.unsupported,
230243
)
231244
}
232245
}
233246

234-
logger.lifecycle("[$path] finished generating unsupported KLib targets in $unsupportedKLibGenDuration")
247+
logger.lifecycle("[$path] finished generating unsupported KLib targets in $duration")
235248
}
236249

237250

0 commit comments

Comments
 (0)