in codegen/sdk/build.gradle.kts [108:142]
fun awsServiceProjections(): Provider<List<SmithyProjection>> {
val p = project.provider {
println("AWS service projection provider called")
discoveredServices
}.map {
it.map { service ->
SmithyProjection(
service.projectionName,
project.projectionRootDir(service.projectionName)
).apply {
val importPaths = mutableListOf(service.modelFile.absolutePath)
if (file(service.modelExtrasDir).exists()) {
importPaths.add(service.modelExtrasDir)
}
imports = importPaths
transforms = transformsForService(service) ?: emptyList()
smithyKotlinPlugin {
serviceShapeId = service.name
packageName = service.packageName
packageVersion = service.packageVersion
packageDescription = service.description
sdkId = service.sdkId
buildSettings {
generateFullProject = false
generateDefaultBuildFiles = false
}
}
}
}
}
// get around class cast issues, listProperty implements what we need to pass this to `NamedObjectContainer`
return project.objects.listProperty<SmithyProjection>().value(p)
}