Rewrite kotlin-native-shared gradle build to kts
This commit is contained in:
committed by
Vasily Levchenko
parent
01fc70a767
commit
9f9609ac0f
+35
-28
@@ -13,56 +13,63 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
@file:Suppress("UnstableApiUsage")
|
||||
|
||||
import org.jetbrains.kotlin.VersionGenerator
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
|
||||
buildscript {
|
||||
ext.rootBuildDirectory = file('..')
|
||||
|
||||
apply from: "$rootBuildDirectory/gradle/loadRootProperties.gradle"
|
||||
apply from: "$rootBuildDirectory/gradle/kotlinGradlePlugin.gradle"
|
||||
plugins {
|
||||
id("kotlin")
|
||||
}
|
||||
|
||||
apply plugin: 'kotlin'
|
||||
val rootBuildDirectory by extra(file(".."))
|
||||
apply(from="../gradle/loadRootProperties.gradle")
|
||||
|
||||
group = 'org.jetbrains.kotlin'
|
||||
val kotlinVersion: String by extra
|
||||
val konanVersion: String by extra
|
||||
val kotlinCompilerRepo: String by extra
|
||||
val buildKotlinCompilerRepo: String by extra
|
||||
|
||||
group = "org.jetbrains.kotlin"
|
||||
version = konanVersion
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url buildKotlinCompilerRepo }
|
||||
maven { url kotlinCompilerRepo }
|
||||
maven("https://cache-redirector.jetbrains.com/maven-central")
|
||||
maven(kotlinCompilerRepo)
|
||||
maven(buildKotlinCompilerRepo)
|
||||
}
|
||||
|
||||
// FIXME(ddol): KLIB-REFACTORING-CLEANUP: drop generation of KonanVersion!
|
||||
task generateCompilerVersion(type: VersionGenerator){}
|
||||
val generateCompilerVersion by tasks.registering(VersionGenerator::class) {}
|
||||
|
||||
sourceSets {
|
||||
main.kotlin {
|
||||
srcDir 'src/main/kotlin'
|
||||
srcDir 'src/library/kotlin'
|
||||
srcDir generateCompilerVersion.versionSourceDirectory
|
||||
}
|
||||
sourceSets["main"].withConvention(KotlinSourceSet::class) {
|
||||
kotlin.srcDir("src/main/kotlin")
|
||||
kotlin.srcDir("src/library/kotlin")
|
||||
kotlin.srcDir(generateCompilerVersion.get().versionSourceDirectory)
|
||||
}
|
||||
|
||||
compileKotlin {
|
||||
dependsOn('generateCompilerVersion')
|
||||
tasks.withType<KotlinCompile> {
|
||||
dependsOn(generateCompilerVersion)
|
||||
kotlinOptions.jvmTarget = "1.8"
|
||||
}
|
||||
|
||||
clean {
|
||||
tasks.clean {
|
||||
doFirst {
|
||||
if (generateCompilerVersion.versionSourceDirectory.exists())
|
||||
generateCompilerVersion.versionSourceDirectory.delete()
|
||||
val versionSourceDirectory = generateCompilerVersion.get().versionSourceDirectory
|
||||
if (versionSourceDirectory.exists()) {
|
||||
versionSourceDirectory.delete()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jar {
|
||||
archiveName = "shared.jar"
|
||||
tasks.jar {
|
||||
archiveFileName.set("shared.jar")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
|
||||
compile "org.jetbrains.kotlin:kotlin-native-utils:$kotlinVersion"
|
||||
compile "org.jetbrains.kotlin:kotlin-util-io:$kotlinVersion"
|
||||
compile "org.jetbrains.kotlin:kotlin-util-klib:$kotlinVersion"
|
||||
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
|
||||
implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
|
||||
api("org.jetbrains.kotlin:kotlin-native-utils:$kotlinVersion")
|
||||
api("org.jetbrains.kotlin:kotlin-util-klib:$kotlinVersion")
|
||||
}
|
||||
|
||||
@@ -3,10 +3,7 @@ package org.jetbrains.kotlin;
|
||||
import groovy.lang.Closure;
|
||||
import org.gradle.api.DefaultTask;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.tasks.Input;
|
||||
import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.api.tasks.OutputDirectory;
|
||||
import org.gradle.api.tasks.OutputFile;
|
||||
import org.gradle.api.tasks.*;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
@@ -56,52 +53,44 @@ public class VersionGenerator extends DefaultTask {
|
||||
"^(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-M(\\p{Digit}))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?$"
|
||||
);
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public Task configure(@SuppressWarnings("NullableProblems") Closure closure) {
|
||||
Task result = super.configure(closure);
|
||||
@TaskAction
|
||||
public void generateVersion() {
|
||||
Matcher matcher = versionPattern.matcher(getKonanVersion());
|
||||
if (!matcher.matches()) {
|
||||
throw new IllegalArgumentException("Cannot parse Kotlin/Native version: $konanVersion");
|
||||
}
|
||||
|
||||
doFirst(task -> {
|
||||
Matcher matcher = versionPattern.matcher(getKonanVersion());
|
||||
if (!matcher.matches()) {
|
||||
throw new IllegalArgumentException("Cannot parse Kotlin/Native version: $konanVersion");
|
||||
}
|
||||
int major = Integer.parseInt(matcher.group(1));
|
||||
int minor = Integer.parseInt(matcher.group(2));
|
||||
|
||||
int major = Integer.parseInt(matcher.group(1));
|
||||
int minor = Integer.parseInt(matcher.group(2));
|
||||
String maintenanceStr = matcher.group(3);
|
||||
int maintenance = maintenanceStr != null ? Integer.parseInt(maintenanceStr) : 0;
|
||||
|
||||
String maintenanceStr = matcher.group(3);
|
||||
int maintenance = maintenanceStr != null ? Integer.parseInt(maintenanceStr) : 0;
|
||||
String milestoneStr = matcher.group(4);
|
||||
int milestone = milestoneStr != null ? Integer.parseInt(milestoneStr) : -1;
|
||||
|
||||
String milestoneStr = matcher.group(4);
|
||||
int milestone = milestoneStr != null ? Integer.parseInt(milestoneStr) : -1;
|
||||
String buildNumber = getBuildNumber();
|
||||
getProject().getLogger().info("BUILD_NUMBER: " + getBuildNumber());
|
||||
int build = -1;
|
||||
if (buildNumber != null) {
|
||||
String[] buildNumberSplit = buildNumber.split("-");
|
||||
build = Integer.parseInt(buildNumberSplit[buildNumberSplit.length - 1]); // //7-dev-buildcount
|
||||
}
|
||||
|
||||
String buildNumber = getBuildNumber();
|
||||
getProject().getLogger().info("BUILD_NUMBER: " + getBuildNumber());
|
||||
int build = -1;
|
||||
if (buildNumber != null) {
|
||||
String[] buildNumberSplit = buildNumber.split("-");
|
||||
build = Integer.parseInt(buildNumberSplit[buildNumberSplit.length - 1]); // //7-dev-buildcount
|
||||
}
|
||||
|
||||
|
||||
try (PrintWriter printWriter = new PrintWriter(getVersionFile())) {
|
||||
printWriter.println(
|
||||
"package org.jetbrains.kotlin.konan\n" +
|
||||
"\n" +
|
||||
"internal val currentCompilerVersion: CompilerVersion =\n" +
|
||||
" CompilerVersionImpl(\n" +
|
||||
getMeta() + ", " + major + ", " + minor + ",\n" +
|
||||
maintenance + ", " + milestone + ", "+ build + ")\n" +
|
||||
"\n" +
|
||||
"val CompilerVersion.Companion.CURRENT: CompilerVersion\n" +
|
||||
" get() = currentCompilerVersion"
|
||||
);
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
try (PrintWriter printWriter = new PrintWriter(getVersionFile())) {
|
||||
printWriter.println(
|
||||
"package org.jetbrains.kotlin.konan\n" +
|
||||
"\n" +
|
||||
"internal val currentCompilerVersion: CompilerVersion =\n" +
|
||||
" CompilerVersionImpl(\n" +
|
||||
getMeta() + ", " + major + ", " + minor + ",\n" +
|
||||
maintenance + ", " + milestone + ", "+ build + ")\n" +
|
||||
"\n" +
|
||||
"val CompilerVersion.Companion.CURRENT: CompilerVersion\n" +
|
||||
" get() = currentCompilerVersion"
|
||||
);
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +1,23 @@
|
||||
rootProject.name = "kotlin-native-shared"
|
||||
pluginManagement {
|
||||
val rootProperties = java.util.Properties().apply {
|
||||
rootDir.resolve("../gradle.properties").reader().use(::load)
|
||||
}
|
||||
|
||||
val kotlinCompilerRepo: String by rootProperties
|
||||
val kotlinVersion: String by rootProperties
|
||||
|
||||
repositories {
|
||||
maven(kotlinCompilerRepo)
|
||||
maven("https://cache-redirector.jetbrains.com/maven-central")
|
||||
}
|
||||
|
||||
resolutionStrategy {
|
||||
eachPlugin {
|
||||
if (requested.id.id == "kotlin") {
|
||||
useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "kotlin-native-shared"
|
||||
Reference in New Issue
Block a user