blob: f8e959d3702dd7b1fa5affbfca253e8b47ba4711 (
plain)
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
|
buildscript {
ext.kotlin_version = '1.2.21'
ext.serialization_version = '0.4'
ext.production = (findProperty('prod') ?: 'false') == 'true'
ext.npmdeps = new URL("file:///home/rjaros/git/kvision/npm.dependencies").getText()
repositories {
jcenter()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://kotlin.bintray.com/kotlinx" }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-frontend-plugin:0.0.26"
classpath "gradle.plugin.io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.0.RC6-2"
classpath "org.jetbrains.kotlinx:kotlinx-gradle-serialization-plugin:$serialization_version"
}
}
apply plugin: 'kotlin2js'
apply plugin: 'kotlinx-serialization'
apply plugin: 'org.jetbrains.kotlin.frontend'
apply plugin: "io.gitlab.arturbosch.detekt"
repositories {
jcenter()
maven { url 'https://kotlin.bintray.com/kotlinx' }
maven { url 'https://dl.bintray.com/gbaldeck/kotlin' }
maven { url 'https://dl.bintray.com/rjaros/kotlin' }
maven {
url "file:///home/rjaros/kotlin/mvn/"
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
compile "org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serialization_version"
compile "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version" // for now only compile configuration is supported
compile "pl.treksoft:kvision:0.0.1"
}
kotlinFrontend {
npm {
npmdeps.eachLine { line ->
def (name, version) = line.tokenize(" ")
dependency(name, version)
}
dependency("todomvc-app-css", "^2.0.0")
dependency("todomvc-common", "^1.0.0")
devDependency("karma")
}
webpackBundle {
bundleName = "main"
contentPath = file('src/main/web')
}
define "PRODUCTION", production
}
detekt {
version = "1.0.0.RC6-2"
profile("main") {
input = "$projectDir/src/main/kotlin"
config = "$projectDir/detekt.yml"
filters = ".*test.*,.*/resources/.*,.*/tmp/.*"
}
}
compileKotlin2Js {
kotlinOptions.metaInfo = true
kotlinOptions.outputFile = "$project.buildDir.path/js/${project.name}.js"
kotlinOptions.sourceMap = !production
kotlinOptions.moduleKind = 'commonjs'
}
compileTestKotlin2Js {
kotlinOptions.metaInfo = true
kotlinOptions.outputFile = "$project.buildDir.path/js-tests/${project.name}-tests.js"
kotlinOptions.sourceMap = !production
kotlinOptions.moduleKind = 'commonjs'
}
task copyResources(type: Copy) {
from "src/main/resources"
into file(buildDir.path + "/js")
}
task copyResourcesForTests(type: Copy) {
from "src/main/resources"
into file(buildDir.path + "/js-tests/")
}
afterEvaluate {
tasks.getByName("webpack-bundle") { dependsOn(copyResources) }
tasks.getByName("webpack-run") { dependsOn(copyResources, copyResourcesForTests) }
}
|