forked from icon-project/IBC-Integration
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
128 lines (110 loc) · 4.55 KB
/
build.gradle
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
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath("foundation.icon:gradle-javaee-plugin:$javaeePluginVersion")
classpath 'com.squareup.wire:wire-gradle-plugin:4.5.0'
}
}
def scoreIntegrationTest = new HashMap<String, String>()
subprojects {
repositories {
mavenLocal()
mavenCentral()
}
apply plugin: 'java'
apply plugin: 'foundation.icon.javaee'
apply plugin: 'jacoco'
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
sourceSets {
intTest {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
java {
}
}
}
ext {
deploymentENV = findProperty("deploymentENV") ?: 'local'
ibcCore = findProperty("${deploymentENV}.contracts.ibc-core") as String
tendermint = findProperty("${deploymentENV}.contracts.tendermint") as String
mockClient = findProperty("${deploymentENV}.contracts.mock-client") as String
mockApp = findProperty("${deploymentENV}.contracts.mock-app") as String
mockDApp = findProperty("${deploymentENV}.contracts.mock-dapp") as String
xCall = findProperty("${deploymentENV}.contracts.xcall") as String
xCallMultiProtocol = findProperty("${deploymentENV}.contracts.xcall-multi-protocol") as String
xCallConnection = findProperty("${deploymentENV}.contracts.xcall-connection") as String
}
dependencies {
compileOnly("foundation.icon:javaee-api:$javaeeVersion")
implementation("foundation.icon:javaee-scorex:$scorexVersion")
annotationProcessor("foundation.icon:javaee-score-client:$scoreClientVersion")
compileOnly("foundation.icon:javaee-score-client:$scoreClientVersion")
testImplementation 'com.google.protobuf:protobuf-javalite:3.13.0'
testImplementation 'foundation.icon:javaee-rt:0.9.3'
testImplementation("org.mockito:mockito-core:$mockitoCoreVersion")
testImplementation("org.mockito:mockito-inline:$mockitoCoreVersion")
testImplementation("foundation.icon:javaee-unittest:$javaeeUnittestVersion")
testAnnotationProcessor("foundation.icon:javaee-score-client:$scoreClientVersion")
testImplementation("foundation.icon:javaee-score-client:$scoreClientVersion")
testImplementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")
testImplementation("foundation.icon:icon-sdk:$iconsdkVersion")
testImplementation("org.junit.jupiter:junit-jupiter-api:$jupiterApiVersion")
testImplementation("org.junit.jupiter:junit-jupiter-params:$jupiterParamsVersion")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$jupiterEngineVersion")
}
configurations {
intTestImplementation.extendsFrom testImplementation
intTestAnnotationProcessor.extendsFrom testAnnotationProcessor
intTestRuntimeOnly.extendsFrom testRuntimeOnly
}
scoreIntegrationTest.put('env.props', new File(project(':test-lib').projectDir, 'conf/env.props'))
afterEvaluate { project ->
scoreIntegrationTest.put(project.name, project.getTasks().getByName("optimizedJar").outputJarName)
}
// need to add this option to retrieve formal parameter names
compileJava {
options.compilerArgs += ['-parameters']
}
}
gradle.taskGraph.whenReady { taskGraph ->
taskGraph.getAllTasks().eachWithIndex { task, n ->
if (task.name == 'integrationTest') {
scoreIntegrationTest.each { key, val -> task.systemProperty key, val }
}
}
}
task printOptimizedJarOutputFiles {
doLast {
subprojects.each { subproject ->
def optimizedJarOutputFiles = subproject.tasks.optimizedJar.outputs.files
println "Optimized JAR files for subproject '${subproject.name}':"
optimizedJarOutputFiles.each { file ->
println " ${file}"
}
}
}
}
task collectOptimizedJars(type: Copy) {
from subprojects.collect { subproject ->
subproject.fileTree('build/libs') {
include '**/*-optimized.jar'
}
}
into "$buildDir/output-jars"
}
task zipOutputOptimizedJars(type: Zip) {
dependsOn collectOptimizedJars
from("$buildDir/output-jars") {
include '**/ibc-*.jar'
include '**/tendermint-*.jar'
include '**/xcall-connection-*.jar'
}
archiveFileName = "javascore-contracts.zip"
destinationDirectory = file("$buildDir")
}