1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 00:17:11 -07:00

Generate javadocs in {build}/docs/javadoc.

This commit is contained in:
Cedric Beust 2017-01-05 10:13:52 -08:00
parent ffbe5491f2
commit f563d274dd
4 changed files with 19 additions and 15 deletions

View file

@ -22,7 +22,7 @@ class CompilerUtils @Inject constructor(val files: KFiles,
class CompilerResult(val successResults: List<TaskResult>, val failedResult: TaskResult?)
fun invokeCompiler(project: Project, context: KobaltContext, compiler: ICompilerDescription,
sourceDirectories: List<File>, isTest: Boolean): CompilerResult {
sourceDirectories: List<File>, isTest: Boolean, buildDirectory: File): CompilerResult {
val results = arrayListOf<TaskResult>()
var failedResult: TaskResult? = null
val contributedSourceDirs =
@ -37,7 +37,7 @@ class CompilerUtils @Inject constructor(val files: KFiles,
// TODO: createCompilerActionInfo recalculates the source files, only compute them
// once and pass them
val info = createCompilerActionInfo(project, context, compiler, isTest,
sourceDirectories, sourceSuffixes = compiler.sourceSuffixes)
sourceDirectories, sourceSuffixes = compiler.sourceSuffixes, buildDirectory = buildDirectory)
val thisResult = invokeCompiler(project, context, compiler, info)
results.addAll(thisResult.successResults)
if (failedResult == null) {
@ -68,7 +68,8 @@ class CompilerUtils @Inject constructor(val files: KFiles,
* Runs all the contributors and interceptors relevant to that task.
*/
fun createCompilerActionInfo(project: Project, context: KobaltContext, compiler: ICompilerDescription,
isTest: Boolean, sourceDirectories: List<File>, sourceSuffixes: List<String>): CompilerActionInfo {
isTest: Boolean, sourceDirectories: List<File>, sourceSuffixes: List<String>, buildDirectory: File)
: CompilerActionInfo {
copyResources(project, context, SourceSet.of(isTest))
val fullClasspath = dependencyManager2.resolve(project, context, isTest, listOf(Scope.COMPILE, Scope.TEST))
@ -83,11 +84,6 @@ class CompilerUtils @Inject constructor(val files: KFiles,
// val d2 = dependencyManager2.resolve(project, context, isTest, listOf(Scope.COMPILE, Scope.TEST))
// }
// The directory where the classes get compiled
val buildDirectory =
if (isTest) File(project.buildDirectory, KFiles.TEST_CLASSES_DIR)
else File(project.classesDir(context))
File(project.directory, buildDirectory.path).mkdirs()
// Remove all the excluded dependencies from the classpath

View file

@ -177,9 +177,14 @@ open class JvmCompilerPlugin @Inject constructor(
val hasKapt = project.projectProperties.get("kaptConfig") != null
val allCompilersSorted = if (hasKapt) swapJavaAndKotlin(allCompilers) else allCompilers
var done = false
// The directory where the classes get compiled
val buildDirectory =
if (isTest) File(project.buildDirectory, KFiles.TEST_CLASSES_DIR)
else File(project.classesDir(context))
allCompilersSorted.doWhile({ ! done }) { compiler ->
val compilerResults = compilerUtils.invokeCompiler(project, context, compiler,
sourceDirectories(project, context, isTest), isTest)
sourceDirectories(project, context, isTest), isTest, buildDirectory)
results.addAll(compilerResults.successResults)
if (failedResult == null) failedResult = compilerResults.failedResult
compilerResults.failedResult?.let { failedResult ->
@ -216,6 +221,7 @@ open class JvmCompilerPlugin @Inject constructor(
fun taskJavadoc(project: Project): TaskResult {
val docGenerator = ActorUtils.selectAffinityActor(project, context, context.pluginInfo.docContributors)
if (docGenerator != null) {
val buildDirectory = File(project.buildDirectory, KFiles.JAVADOC_DIR)
val contributors =
ActorUtils.selectAffinityActors(project, context, context.pluginInfo.compilerContributors)
var result: TaskResult? = null
@ -224,7 +230,7 @@ open class JvmCompilerPlugin @Inject constructor(
result = docGenerator.generateDoc(project, context,
compilerUtils.createCompilerActionInfo(project, context, compiler,
isTest = false, sourceDirectories = sourceDirectories(project, context, false),
sourceSuffixes = compiler.sourceSuffixes))
sourceSuffixes = compiler.sourceSuffixes, buildDirectory = buildDirectory))
}
}
return result!!

View file

@ -71,6 +71,7 @@ class KFiles {
private val SRC = "src"
val TEST_CLASSES_DIR : String = "test-classes"
val JAVADOC_DIR: String = "docs/javadoc"
val NATIVES_DIR : String = "native"