-
Notifications
You must be signed in to change notification settings - Fork 78
/
Copy pathbuild.gradle.kts
141 lines (135 loc) · 6.93 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
plugins {
id("java")
id("idea")
id("com.palantir.graal") version "0.10.0"
id("com.diffplug.spotless") version "6.19.0"
}
java {
toolchain { languageVersion.set(JavaLanguageVersion.of(17)) }
withJavadocJar()
withSourcesJar()
}
configurations { runtimeClasspath { resolutionStrategy.activateDependencyLocking() } }
val CALCITE_VERSION = properties.get("calcite.version")
val GUAVA_VERSION = properties.get("guava.version")
val IMMUTABLES_VERSION = properties.get("immutables.version")
val JACKSON_VERSION = properties.get("jackson.version")
val JUNIT_VERSION = properties.get("junit.version")
val PROTOBUF_VERSION = properties.get("protobuf.version")
val SLF4J_VERSION = properties.get("slf4j.version")
dependencies {
implementation(project(":core"))
implementation(project(":isthmus"))
implementation("org.apache.calcite:calcite-core:${CALCITE_VERSION}")
implementation("org.apache.calcite:calcite-server:${CALCITE_VERSION}")
testImplementation("org.junit.jupiter:junit-jupiter:${JUNIT_VERSION}")
implementation("org.reflections:reflections:0.9.12")
implementation("com.google.guava:guava:${GUAVA_VERSION}")
implementation("org.graalvm.sdk:graal-sdk:22.1.0")
implementation("info.picocli:picocli:4.7.5")
annotationProcessor("info.picocli:picocli-codegen:4.7.5")
implementation("com.fasterxml.jackson.core:jackson-databind:${JACKSON_VERSION}")
implementation("com.google.protobuf:protobuf-java-util:${PROTOBUF_VERSION}") {
exclude("com.google.guava", "guava")
.because("Brings in Guava for Android, which we don't want (and breaks multimaps).")
}
implementation("org.immutables:value-annotations:${IMMUTABLES_VERSION}")
annotationProcessor("org.immutables:value:${IMMUTABLES_VERSION}")
testImplementation("org.apache.calcite:calcite-plus:${CALCITE_VERSION}")
annotationProcessor("com.github.bsideup.jabel:jabel-javac-plugin:0.4.2")
compileOnly("com.github.bsideup.jabel:jabel-javac-plugin:0.4.2")
runtimeOnly("org.slf4j:slf4j-jdk14:${SLF4J_VERSION}")
}
val initializeAtBuildTime =
listOf(
"com.google.common.base.Platform",
"com.google.common.base.Preconditions",
"com.google.common.cache.CacheBuilder",
"com.google.common.cache.LocalCache",
"com.google.common.collect.CollectCollectors",
"com.google.common.collect.ImmutableRangeSet",
"com.google.common.collect.ImmutableSortedMap",
"com.google.common.collect.Platform",
"com.google.common.collect.Range",
"com.google.common.collect.RegularImmutableMap",
"com.google.common.collect.RegularImmutableSortedSet",
"com.google.common.math.IntMath",
"com.google.common.math.IntMath\$1",
"com.google.common.primitives.Primitives",
"com.google.common.util.concurrent.AbstractFuture",
"com.google.common.util.concurrent.AbstractFuture\$UnsafeAtomicHelper",
"com.google.common.util.concurrent.SettableFuture",
"io.substrait.isthmus.cli.InitializeAtBuildTime",
"io.substrait.isthmus.metadata.LambdaHandlerCache",
"io.substrait.isthmus.metadata.LambdaMetadataSupplier",
"io.substrait.isthmus.metadata.LegacyToLambdaGenerator",
"org.apache.calcite.config.CalciteSystemProperty",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$AllPredicates",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$Collation",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$ColumnOrigin",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$ColumnUniqueness",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$CumulativeCost",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$DistinctRowCount",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$Distribution",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$ExplainVisibility",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$ExpressionLineage",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$LowerBoundCost",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$MaxRowCount",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$Memory",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$MinRowCount",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$NodeTypes",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$NonCumulativeCost",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$Parallelism",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$PercentageOriginalRows",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$PopulationSize",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$Predicates",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$RowCount",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$Selectivity",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$Size",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$TableReferences",
"org.apache.calcite.rel.metadata.BuiltInMetadata\$UniqueKeys",
"org.apache.calcite.rel.metadata.RelMdAllPredicates",
"org.apache.calcite.rel.metadata.RelMdCollation",
"org.apache.calcite.rel.metadata.RelMdColumnOrigins",
"org.apache.calcite.rel.metadata.RelMdColumnUniqueness",
"org.apache.calcite.rel.metadata.RelMdDistinctRowCount",
"org.apache.calcite.rel.metadata.RelMdDistribution",
"org.apache.calcite.rel.metadata.RelMdExplainVisibility",
"org.apache.calcite.rel.metadata.RelMdExpressionLineage",
"org.apache.calcite.rel.metadata.RelMdLowerBoundCost",
"org.apache.calcite.rel.metadata.RelMdMaxRowCount",
"org.apache.calcite.rel.metadata.RelMdMemory",
"org.apache.calcite.rel.metadata.RelMdMinRowCount",
"org.apache.calcite.rel.metadata.RelMdNodeTypes",
"org.apache.calcite.rel.metadata.RelMdParallelism",
"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows",
"org.apache.calcite.rel.metadata.RelMdPopulationSize",
"org.apache.calcite.rel.metadata.RelMdPredicates",
"org.apache.calcite.rel.metadata.RelMdRowCount",
"org.apache.calcite.rel.metadata.RelMdSelectivity",
"org.apache.calcite.rel.metadata.RelMdSize",
"org.apache.calcite.rel.metadata.RelMdTableReferences",
"org.apache.calcite.rel.metadata.RelMdUniqueKeys",
"org.apache.calcite.util.Pair",
"org.apache.calcite.util.ReflectUtil",
"org.apache.calcite.util.Util",
"org.apache.commons.codec.language.Soundex",
"org.slf4j.LoggerFactory",
"org.slf4j.impl.JDK14LoggerAdapter",
"org.slf4j.impl.StaticLoggerBinder",
)
.joinToString(",")
graal {
mainClass("io.substrait.isthmus.cli.IsthmusEntryPoint")
outputName("isthmus")
graalVersion("22.1.0")
javaVersion("17")
option("--no-fallback")
option("--initialize-at-build-time=${initializeAtBuildTime}")
option("-H:IncludeResources=.*yaml")
option("--report-unsupported-elements-at-runtime")
option("-H:+ReportExceptionStackTraces")
option("-H:DynamicProxyConfigurationFiles=${project.file("proxies.json")}")
option("--features=io.substrait.isthmus.cli.RegisterAtRuntime")
option("-J--enable-preview")
}