forked from DataDog/dd-trace-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtries.gradle
More file actions
34 lines (28 loc) · 1.23 KB
/
Copy pathtries.gradle
File metadata and controls
34 lines (28 loc) · 1.23 KB
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
// generates Java source code from .trie resource files
def configureClassNameTrieTask(exec, sourceSetName) {
def trieFiles = fileTree(dir: "src/${sourceSetName}/resources", include: '**/*.trie')
def trieDir = trieFiles.dir.toPath()
def javaDir = buildDir.toPath().resolve("generated/sources/tries/java/${sourceSetName}")
sourceSets."$sourceSetName".java.srcDirs += [javaDir]
// declare expected output path(s) so we can support incremental builds
def javaFiles = trieFiles.collect {
file(javaDir.resolve(trieDir.relativize(it.toPath())).resolveSibling(
it.name.capitalize().replaceAll('_([a-z])') {
it[1].toUpperCase()
}
.replace('.trie', 'Trie.java') as String))
}
exec.group = 'Build'
exec.description = "Generate $sourceSetName ClassNameTries from .trie files"
exec.inputs.files(trieFiles)
exec.outputs.files(javaFiles)
exec.mainClass = 'datadog.instrument.utils.ClassNameTrie$JavaGenerator'
exec.classpath = sourceSets."$sourceSetName".compileClasspath
exec.args = [trieDir, javaDir] + trieFiles
}
tasks.register('generateClassNameTries', JavaExec) {
configureClassNameTrieTask(it, 'main')
}
tasks.register('generateTestClassNameTries', JavaExec) {
configureClassNameTrieTask(it, 'test')
}