File: build.gradle

package info (click to toggle)
kotlin 1.3.31%2Bds1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 109,908 kB
  • sloc: java: 454,756; xml: 18,599; javascript: 10,452; sh: 513; python: 97; makefile: 69; ansic: 4
file content (109 lines) | stat: -rw-r--r-- 3,614 bytes parent folder | download | duplicates (2)
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
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import proguard.gradle.ProGuardTask

plugins {
    id("org.jetbrains.kotlin.jvm")
    id("jps-compatible")
}

description = "Kotlin \"main\" script definition"

// You can run Gradle with "-Pkotlin.build.proguard=true" to enable ProGuard run on the jar (on TeamCity, ProGuard always runs)
ext.shrink =findProperty("kotlin.build.proguard")?.toString()?.toBoolean() ?: hasProperty("teamcity")

ext.jarBaseName = property("archivesBaseName") as String

configurations.create("fatJarContents")
configurations.create("proguardLibraryJars")
configurations.create("fatJar")
configurations.create("runtimeJar")

configurations.default.extendsFrom(configurations.runtimeJar)


ext.projectsDependencies = [
    ":kotlin-scripting-common",
    ":kotlin-scripting-jvm",
    ":kotlin-script-util",
    ":kotlin-script-runtime"]

dependencies {
    projectsDependencies.each {
        compileOnly(project(it))
        fatJarContents(project(it)) { setTransitive(false) }
        testCompile(project(it))
    }
    compileOnly("org.apache.ivy:ivy:2.4.0")
    runtime(project(":kotlin-compiler"))
    runtime(project(":kotlin-reflect"))
    fatJarContents("org.apache.ivy:ivy:2.4.0")
    fatJarContents(DependenciesKt.customCommonDep(project,"org.jetbrains.kotlinx", "kotlinx-coroutines-core",[])) { setTransitive(false) }
    proguardLibraryJars(files(DependenciesKt.customFirstFromJavaHomeThatExists(project,["jre/lib/rt.jar", "../Classes/classes.jar"],new File(project.property("JDK_18") as String)),
                              DependenciesKt.customFirstFromJavaHomeThatExists(project,["jre/lib/jsse.jar", "../Classes/jsse.jar"],new File(project.property("JDK_18") as String)),
                              DependenciesKt.customToolsJar(project)))
    proguardLibraryJars(DependenciesKt.customKotlinStdlib(project,null))
    proguardLibraryJars(project(":kotlin-reflect"))
}

sourceSets {
    "main" {
    	java.srcDirs("src")
		resources.srcDir("resources")
	}
    "test" { }
}

//publish()

ArtifactsKt.customNoDefaultJar(project)

ext.mainKtsRootPackage = "org.jetbrains.kotlin.mainKts"
ext.mainKtsRelocatedDepsRootPackage = "${mainKtsRootPackage}.relocatedDeps".toString()

task("packJar",type:ShadowJar) {
    configurations = [project.configurations.fatJar]
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    destinationDir = new File(buildDir, "libs")

     ArtifactsKt.customSetupPublicJar(it,CommonUtilKt.customGetBaseConvention(project).archivesBaseName, "before-proguard")

    from(SourceSetsKt.customMainSourceSet(project).output)
    from(project.configurations.fatJarContents)

    EmbeddableKt.packagesToRelocate.each {
        relocate(it, "${mainKtsRelocatedDepsRootPackage}.${it}".toString())
    }
}

task("proguard",type:ProGuardTask) {
    dependsOn(packJar)
    configuration("main-kts.pro")

    injars(filter : "!META-INF/versions/**", packJar.outputs.files)

    def outputJar = CommonUtilKt.customFileFrom(buildDir, ["libs", "${jarBaseName}-${version}-after-proguard.jar".toString()])

    outjars(outputJar)

    inputs.files(packJar.outputs.files.singleFile)
    outputs.file(outputJar)

    libraryjars(filter : "!META-INF/versions/**", project.configurations.proguardLibraryJars)
}

Task pack;
if(shrink){
	pack=proguard
}else{
	pack=packJar
}

ArtifactsKt.customRuntimeJarArtifactBy(project,pack, pack.outputs.files.getSingleFile()) {
    it.name = jarBaseName
    it.classifier = ""
}

ArtifactsKt.customDist(project,null,"${name}.jar".toString(),pack){}

ArtifactsKt.customSourcesJar(project,"main") {}
//javadocJar()