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