Skip to content

Compile Kotlin code and run Kapt annotation processing directly from Kotlin

License

Notifications You must be signed in to change notification settings

fluidsonic/fluid-compiler

Repository files navigation

fluid-compiler

Maven Central Kotlin #fluid-libraries Slack Channel

Compile Kotlin code and run Kapt annotation processing directly from Kotlin, for example to unit test your annotation processors!

Installation

build.gradle.kts:

dependencies {
	implementation("io.fluidsonic.compiler:fluid-compiler:0.13.0")
}

Example

import io.fluidsonic.compiler.*

val result = KotlinCompiler()
	.includesCurrentClasspath()
	.jvmTarget(KotlinJvmTarget.v1_8)
	.processors(MyAnnotationProcessor())
	.sources("sources", "more-sources/Example.kt")
	.compile()

// result.exitCode contains the exit code of the compiler
// result.messages contains all messages printed during compilation and annotation processing
// result.generatedFiles contains all files generated by annotation processors

Additional configuration

.destination("output")
	.kotlinHome("/path/to/kotlin/home")
	.moduleName("my-module")

Manually setting compiler arguments

.arguments {
	apiVersion = "1.4"
	languageVersion = "1.6"
	newInference = true
}

For a complete list of all compiler arguments check out K2JVMCompilerArguments .

Manually setting Kapt options

.kaptOptions {
	flags += KaptFlag.CORRECT_ERROR_TYPES
	mode = AptMode.STUBS_AND_APT
}

For a complete list of all Kapt options check out KaptOptions.

License

Apache 2.0

About

Compile Kotlin code and run Kapt annotation processing directly from Kotlin

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages