/
build.gradle
137 lines (108 loc) · 3.28 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
126
127
128
129
130
131
132
133
134
135
136
137
//noinspection GroovyAssignabilityCheck
group 'org.bh'
//noinspection GroovyAssignabilityCheck
version '0.0.1-lambda.1'
buildscript {
ext.kotlin_version = '1.3.10'
ext.web_dir = 'web'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin2js'
sourceSets {
main {
kotlin {
//noinspection GroovyAssignabilityCheck
srcDirs += "src/main/kotlin"
//noinspection GroovyAssignabilityCheck
srcDirs 'lib/Blue-Base/src/main/kotlin'
//noinspection GroovyAssignabilityCheck
srcDirs 'lib/Blue-Base-JS/src/main/kotlin'
//noinspection GroovyAssignabilityCheck
srcDirs 'lib/Husky-UI/src/main/kotlin'
//noinspection GroovyAssignabilityCheck
srcDirs 'lib/Husky-UI-JS/src/main/kotlin'
}
}
}
repositories {
mavenCentral()
}
dependencies {
//noinspection GroovyAssignabilityCheck
compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
//noinspection GroovyAssignabilityCheck
testCompile "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version"
}
clean.doFirst() {
delete("${web_dir}")
}
compileKotlin2Js {
//
// kotlinOptions {
// metaInfo = true
// outputFile = "${projectDir}/_js/Decision-Cruncher.js"
// sourceMap = true
// moduleKind = 'commonjs'
// main = "call"
// }
//noinspection GrUnresolvedAccess
kotlinOptions.outputFile = "${projectDir}/_js/Decision-Cruncher.js"
//noinspection GrUnresolvedAccess
kotlinOptions.moduleKind = "umd"
//noinspection GrUnresolvedAccess
kotlinOptions.sourceMap = true
}
compileTestKotlin2Js {
//noinspection GrUnresolvedAccess
kotlinOptions.moduleKind = "umd"
//noinspection GrUnresolvedAccess
kotlinOptions.sourceMap = true
}
//noinspection GrUnresolvedAccess
build.doLast() {
// Copy kotlin.js and kotlin-meta.js from jar into web directory
configurations.compile.each { File file ->
copy {
includeEmptyDirs = false
from zipTree(file.absolutePath)
into "${projectDir}/${web_dir}/lib"
include { fileTreeElement ->
def path = fileTreeElement.path
path.endsWith(".js") && (path.startsWith("META-INF/resources/") || !path.startsWith("META-INF/"))
}
}
}
// Unpack build contents
// TODO Remove this step when a CDN link is available.
copy {
File artifact = new File("build/libs/${project.name}-${project.version}.jar")
includeEmptyDirs = false
from zipTree(artifact)
into "${web_dir}"
include { fileTreeElement ->
def path = fileTreeElement.path
!(path.startsWith("META-INF/") || path.startsWith("${project.name}"))
}
}
// Copy scripts to web directory
copy {
includeEmptyDirs = false
from new File("build/classes/main")
into "${web_dir}/lib"
}
copy {
includeEmptyDirs = false
from new File("build/classes/test")
into "${web_dir}/lib"
}
copy {
includeEmptyDirs = false
from new File("build/resources/test")
into "${web_dir}"
}
}