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