Skip to content

Latest commit

 

History

History
80 lines (57 loc) · 2.07 KB

README.md

File metadata and controls

80 lines (57 loc) · 2.07 KB

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