mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 08:27:12 -07:00
Merge pull request #397 from ethauvin/master
Implementation of compileOnly
This commit is contained in:
commit
d710362af1
6 changed files with 20 additions and 4 deletions
|
@ -13,6 +13,7 @@ interface IDependencyHolder {
|
|||
val compileDependencies : ArrayList<IClasspathDependency>
|
||||
val optionalDependencies : ArrayList<IClasspathDependency>
|
||||
val compileProvidedDependencies : ArrayList<IClasspathDependency>
|
||||
val compileOnlyDependencies : ArrayList<IClasspathDependency>
|
||||
val compileRuntimeDependencies : ArrayList<IClasspathDependency>
|
||||
val excludedDependencies : ArrayList<IClasspathDependency>
|
||||
val nativeDependencies : ArrayList<IClasspathDependency>
|
||||
|
@ -29,6 +30,7 @@ open class DependencyHolder : IDependencyHolder {
|
|||
override val compileDependencies : ArrayList<IClasspathDependency> = arrayListOf()
|
||||
override val optionalDependencies : ArrayList<IClasspathDependency> = arrayListOf()
|
||||
override val compileProvidedDependencies : ArrayList<IClasspathDependency> = arrayListOf()
|
||||
override val compileOnlyDependencies : ArrayList<IClasspathDependency> = arrayListOf()
|
||||
override val compileRuntimeDependencies : ArrayList<IClasspathDependency> = arrayListOf()
|
||||
override val excludedDependencies : ArrayList<IClasspathDependency> = arrayListOf()
|
||||
override val nativeDependencies : ArrayList<IClasspathDependency> = arrayListOf()
|
||||
|
@ -37,7 +39,7 @@ open class DependencyHolder : IDependencyHolder {
|
|||
|
||||
override fun dependencies(init: Dependencies.() -> Unit) : Dependencies {
|
||||
dependencies = Dependencies(project, compileDependencies, optionalDependencies, compileProvidedDependencies,
|
||||
compileRuntimeDependencies, excludedDependencies, nativeDependencies)
|
||||
compileOnlyDependencies, compileRuntimeDependencies, excludedDependencies, nativeDependencies)
|
||||
dependencies!!.init()
|
||||
return dependencies!!
|
||||
}
|
||||
|
|
|
@ -91,7 +91,8 @@ open class Project(
|
|||
@Directive
|
||||
fun dependenciesTest(init: Dependencies.() -> Unit) : Dependencies {
|
||||
dependencies = Dependencies(this, testDependencies, arrayListOf(),
|
||||
testProvidedDependencies, compileRuntimeDependencies, excludedDependencies, nativeDependencies)
|
||||
testProvidedDependencies, compileOnlyDependencies, compileRuntimeDependencies,
|
||||
excludedDependencies, nativeDependencies)
|
||||
dependencies!!.init()
|
||||
return dependencies!!
|
||||
}
|
||||
|
@ -154,6 +155,7 @@ class Dependencies(val project: Project,
|
|||
val dependencies: ArrayList<IClasspathDependency>,
|
||||
val optionalDependencies: ArrayList<IClasspathDependency>,
|
||||
val providedDependencies: ArrayList<IClasspathDependency>,
|
||||
val compileOnlyDependencies: ArrayList<IClasspathDependency>,
|
||||
val runtimeDependencies: ArrayList<IClasspathDependency>,
|
||||
val excludedDependencies: ArrayList<IClasspathDependency>,
|
||||
val nativeDependencies: ArrayList<IClasspathDependency>) {
|
||||
|
@ -244,6 +246,9 @@ class Dependencies(val project: Project,
|
|||
addToDependencies(project, dependencies, arrayOf(dep), excludeConfig = excludeConfig)
|
||||
}
|
||||
|
||||
@Directive
|
||||
fun compileOnly(vararg dep: String) = addToDependencies(project, compileOnlyDependencies, dep)
|
||||
|
||||
@Directive
|
||||
fun compileOptional(vararg dep: String) {
|
||||
addToDependencies(project, optionalDependencies, dep, optional = true)
|
||||
|
|
|
@ -70,7 +70,12 @@ class CompilerUtils @Inject constructor(val files: KFiles, val dependencyManager
|
|||
copyResources(project, context, SourceSet.of(isTest))
|
||||
|
||||
val fullClasspath = dependencyManager.calculateDependencies(project, context,
|
||||
scopes = if (isTest) listOf(Scope.COMPILE, Scope.TEST) else listOf(Scope.COMPILE))
|
||||
scopes = if (isTest) {
|
||||
listOf(Scope.COMPILE, Scope.COMPILEONLY, Scope.TEST)
|
||||
} else {
|
||||
listOf(Scope.COMPILE, Scope.COMPILEONLY)
|
||||
})
|
||||
|
||||
|
||||
File(project.directory, buildDirectory.path).mkdirs()
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ open class JvmCompilerPlugin @Inject constructor(
|
|||
dependencyFilter = dependencyManager.createDependencyFilter(project, project.testDependencies),
|
||||
scopes = listOf(Scope.TEST))
|
||||
val compileDependencies = dependencyManager.calculateDependencies(project, context,
|
||||
scopes = listOf(Scope.COMPILE))
|
||||
scopes = listOf(Scope.COMPILE, Scope.COMPILEONLY))
|
||||
val allDependencies = (testDependencies + compileDependencies).distinct()
|
||||
return testContributor.run(project, context, configName, allDependencies.toList())
|
||||
} else {
|
||||
|
|
|
@ -108,6 +108,9 @@ class DependencyManager @Inject constructor(val executors: KobaltExecutors,
|
|||
addAll(project.compileDependencies)
|
||||
addAll(project.compileProvidedDependencies)
|
||||
}
|
||||
if (scopes.contains(Scope.COMPILEONLY)) {
|
||||
addAll(project.compileOnlyDependencies)
|
||||
}
|
||||
if (scopes.contains(Scope.RUNTIME)) {
|
||||
addAll(project.compileRuntimeDependencies)
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ sealed class Scope(val scope: String, val dependencyLambda: (Project) -> List<IC
|
|||
|
||||
object COMPILE : Scope(JavaScopes.COMPILE, Project::compileDependencies)
|
||||
object PROVIDED : Scope(JavaScopes.PROVIDED, Project::compileProvidedDependencies)
|
||||
object COMPILEONLY : Scope("compileOnly", Project::compileOnlyDependencies)
|
||||
object SYSTEM : Scope(JavaScopes.SYSTEM, { project -> emptyList() })
|
||||
object RUNTIME : Scope(JavaScopes.RUNTIME, Project::compileRuntimeDependencies)
|
||||
object TEST : Scope(JavaScopes.TEST, Project::testDependencies)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue