mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-27 00:38:11 -07:00
Allow plug-ins to contribute multiple compilers.
This commit is contained in:
parent
c2312a8854
commit
c1185fdf96
5 changed files with 84 additions and 49 deletions
|
@ -41,23 +41,28 @@ class JavaPlugin @Inject constructor(val javaCompiler: JavaCompiler)
|
|||
// ICompilerFlagsContributor
|
||||
override fun flagsFor(project: Project, context: KobaltContext, currentFlags: List<String>,
|
||||
suffixesBeingCompiled: List<String>) =
|
||||
maybeCompilerArgs(sourceSuffixes, suffixesBeingCompiled,
|
||||
maybeCompilerArgs(compiler.sourceSuffixes, suffixesBeingCompiled,
|
||||
configurationFor(project)?.compilerArgs ?: listOf<String>())
|
||||
|
||||
// ICompilerContributor
|
||||
override val sourceSuffixes = listOf("java")
|
||||
val compiler = object: ICompiler {
|
||||
// ICompilerContributor
|
||||
override val sourceSuffixes = listOf("java")
|
||||
|
||||
override fun compile(project: Project, context: KobaltContext, info: CompilerActionInfo) : TaskResult {
|
||||
val result =
|
||||
if (info.sourceFiles.size > 0) {
|
||||
javaCompiler.compile(project, context, info)
|
||||
} else {
|
||||
warn("Couldn't find any source files to compile")
|
||||
TaskResult()
|
||||
}
|
||||
return result
|
||||
override fun compile(project: Project, context: KobaltContext, info: CompilerActionInfo): TaskResult {
|
||||
val result =
|
||||
if (info.sourceFiles.size > 0) {
|
||||
javaCompiler.compile(project, context, info)
|
||||
} else {
|
||||
warn("Couldn't find any source files to compile")
|
||||
TaskResult()
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
override fun compilersFor(project: Project, context: KobaltContext) = arrayListOf(compiler)
|
||||
|
||||
// ITestSourceDirectoryContributor
|
||||
override fun testSourceDirectoriesFor(project: Project, context: KobaltContext)
|
||||
= project.sourceDirectoriesTest.map { File(it) }.toList()
|
||||
|
@ -65,7 +70,7 @@ class JavaPlugin @Inject constructor(val javaCompiler: JavaCompiler)
|
|||
// IBuildConfigContributor
|
||||
override fun affinity(project: Project) = if (project.projectExtra.suffixesFound.contains("java")) 1 else 0
|
||||
|
||||
override val buildConfigSuffix = sourceSuffixes[0]
|
||||
override val buildConfigSuffix = compiler.sourceSuffixes[0]
|
||||
|
||||
override fun generateBuildConfig(project: Project, context: KobaltContext, packageName: String,
|
||||
variant: Variant, buildConfigs: List<BuildConfig>): String {
|
||||
|
|
|
@ -39,7 +39,7 @@ class KotlinPlugin @Inject constructor(val executors: KobaltExecutors)
|
|||
// ICompilerFlagsContributor
|
||||
override fun flagsFor(project: Project, context: KobaltContext, currentFlags: List<String>,
|
||||
suffixesBeingCompiled: List<String>) : List<String> {
|
||||
val result = maybeCompilerArgs(sourceSuffixes, suffixesBeingCompiled,
|
||||
val result = maybeCompilerArgs(compiler.sourceSuffixes, suffixesBeingCompiled,
|
||||
configurationFor(project)?.compilerArgs ?: listOf<String>())
|
||||
return result
|
||||
}
|
||||
|
@ -105,22 +105,26 @@ class KotlinPlugin @Inject constructor(val executors: KobaltExecutors)
|
|||
|
||||
// ICompilerContributor
|
||||
|
||||
override val sourceSuffixes = listOf("kt")
|
||||
val compiler = object: ICompiler {
|
||||
override val sourceSuffixes = listOf("kt")
|
||||
|
||||
override fun compile(project: Project, context: KobaltContext, info: CompilerActionInfo) : TaskResult {
|
||||
val result =
|
||||
if (info.sourceFiles.size > 0) {
|
||||
compilePrivate(project, info.dependencies, info.sourceFiles, info.outputDir, info.compilerArgs)
|
||||
} else {
|
||||
warn("Couldn't find any source files")
|
||||
TaskResult()
|
||||
}
|
||||
override fun compile(project: Project, context: KobaltContext, info: CompilerActionInfo): TaskResult {
|
||||
val result =
|
||||
if (info.sourceFiles.size > 0) {
|
||||
compilePrivate(project, info.dependencies, info.sourceFiles, info.outputDir, info.compilerArgs)
|
||||
} else {
|
||||
warn("Couldn't find any source files")
|
||||
TaskResult()
|
||||
}
|
||||
|
||||
lp(project, "Compilation " + if (result.success) "succeeded" else "failed")
|
||||
return result
|
||||
lp(project, "Compilation " + if (result.success) "succeeded" else "failed")
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
// private val dokkaConfigurations = ArrayListMultimap.create<String, DokkaConfig>()
|
||||
override fun compilersFor(project: Project, context: KobaltContext) = arrayListOf(compiler)
|
||||
|
||||
// private val dokkaConfigurations = ArrayListMultimap.create<String, DokkaConfig>()
|
||||
//
|
||||
// fun addDokkaConfiguration(project: Project, dokkaConfig: DokkaConfig) {
|
||||
// dokkaConfigurations.put(project.name, dokkaConfig)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue