Я пытаюсь преобразовать файлы gradle для проекта с целями iOS и Android из groovy
У меня есть две строки в файле groovy
val srcFile = kotlin.targets."$target".compilations.main.getBinary("FRAMEWORK", buildType)}
val targetDir = getProperty("configuration.build.dir")
Первая проблема"цели" в качестве атрибута.Target - это свойство, представляющее собой строку, так что это похоже на использование строки в качестве имени атрибута.Но я ожидаю, что targets
- это карта, а также и компиляции?
val srcFile = kotlin.targets[target].compilations[main].getBinary("FRAMEWORK", buildType)}
val targetDir = getProperty("configuration.build.dir")
кажется правильным kotlin, поэтому я предполагаю, что groovy похож на js, и объекты и карты могут быть доступны как с помощью [], так и.нотации.Если предположить, что это правильно, проблема состоит в том, что getBinary
и getProperty
неизвестны.
Любая помощь с этим приветствуется.
Для справки, эти строки являются частью задачи:
task("copyFramework") {
val buildType:String = project.findProperty("kotlin.build.type") as String??: "DEBUG"
val target:String = project.findProperty("kotlin.target")as String? ?: "ios"
dependsOn("link${buildType.toLowerCase().capitalize()}Framework${target.capitalize()}")
doLast {
val srcFile = kotlin.targets[target].compilations["main"].getBinary("FRAMEWORK", buildType)
val targetDir = getProperty("configuration.build.dir")
copy {
from(srcFile.parent)
into(targetDir)
include("app.framework/**")
include("app.framework.dSYM")
}
}
, преобразованный (пока) из заводной:
task copyFramework {
def buildType = project.findProperty("kotlin.build.type") ?: "DEBUG"
def target = project.findProperty("kotlin.target") ?: "ios"
dependsOn "link${buildType.toLowerCase().capitalize()}Framework${target.capitalize()}"
doLast {
def srcFile = kotlin.targets."$target".compilations.main.getBinary("FRAMEWORK", buildType)
def targetDir = getProperty("configuration.build.dir")
copy {
from srcFile.parent
into targetDir
include 'app.framework/**'
include 'app.framework.dSYM'
}
}
}