Guilherme Delgado
06/27/2024, 6:40 PMcompilerArgs
in SymbolProcessorEnvironment
, it’s always empty 🤦♂️
More in 🧵Guilherme Delgado
06/27/2024, 6:44 PMprivate fun Project.configureCompileArgs() {
val kotlin = extensions.getByType(KotlinMultiplatformExtension::class.java)
kotlin.targets.configureEach { target ->
if (target.fromIosFamily()) {
tasks.withType(KspTaskNative::class.java).configureEach { compileTask ->
compileTask.compilerOptions {
freeCompilerArgs.addAll(
"-P",
"plugin:com.google.devtools.ksp:myCustomParameter=Something"
)
println(">>>>>> ${freeCompilerArgs.get()}")
}
}
}
}
}
running build:
> Configure project :shared
> MyPlugin:
>>>>>> [-P, plugin:com.google.devtools.ksp.myCustomParameter=Something, ....
but when the task (for instance kspKotlinIosArm64 ) runs, there are no params:
> Task :shared:kspKotlinIosArm64
>>>>>>>>>>>>> {}
public class ProcessorProvider : SymbolProcessorProvider {
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
println(">>>>>>>>>>>>>>>>> ${environment.options}")
return Processor(environment.codeGenerator, environment.logger, environment.options)
}
}
Guilherme Delgado
06/27/2024, 6:44 PMGuilherme Delgado
06/28/2024, 2:21 AMval ksp = extensions.getByType(KspExtension::class.java)
ksp.apply {
arg("someVar", "blah")
}
println(">>>>>> ${ksp.arguments}")
worked 😎twisterrob
06/28/2024, 12:22 PMproject.configure<KspExtension> { arg(...) }