mirror of https://github.com/smithy-lang/smithy-rs
102 lines
2.8 KiB
Plaintext
102 lines
2.8 KiB
Plaintext
/*
|
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
|
|
|
plugins {
|
|
kotlin("jvm")
|
|
`maven-publish`
|
|
}
|
|
|
|
description = "Generates Rust client code from Smithy models"
|
|
extra["displayName"] = "Smithy :: Rust :: CodegenClient"
|
|
extra["moduleName"] = "software.amazon.smithy.rust.codegen.client"
|
|
|
|
group = "software.amazon.smithy.rust.codegen"
|
|
version = "0.1.0"
|
|
|
|
val smithyVersion: String by project
|
|
|
|
dependencies {
|
|
implementation(project(":codegen-core"))
|
|
implementation(kotlin("stdlib-jdk8"))
|
|
api("software.amazon.smithy:smithy-codegen-core:$smithyVersion")
|
|
implementation("software.amazon.smithy:smithy-aws-traits:$smithyVersion")
|
|
implementation("software.amazon.smithy:smithy-protocol-test-traits:$smithyVersion")
|
|
implementation("software.amazon.smithy:smithy-waiters:$smithyVersion")
|
|
implementation("software.amazon.smithy:smithy-rules-engine:$smithyVersion")
|
|
|
|
// `smithy.framework#ValidationException` is defined here, which is used in event stream
|
|
// marshalling/unmarshalling tests.
|
|
testImplementation("software.amazon.smithy:smithy-validation-model:$smithyVersion")
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
}
|
|
|
|
tasks.compileKotlin {
|
|
kotlinOptions.jvmTarget = "11"
|
|
}
|
|
|
|
// Reusable license copySpec
|
|
val licenseSpec = copySpec {
|
|
from("${project.rootDir}/LICENSE")
|
|
from("${project.rootDir}/NOTICE")
|
|
}
|
|
|
|
// Configure jars to include license related info
|
|
tasks.jar {
|
|
metaInf.with(licenseSpec)
|
|
inputs.property("moduleName", project.name)
|
|
manifest {
|
|
attributes["Automatic-Module-Name"] = project.name
|
|
}
|
|
}
|
|
|
|
val sourcesJar by tasks.creating(Jar::class) {
|
|
group = "publishing"
|
|
description = "Assembles Kotlin sources jar"
|
|
archiveClassifier.set("sources")
|
|
from(sourceSets.getByName("main").allSource)
|
|
}
|
|
|
|
val isTestingEnabled: String by project
|
|
if (isTestingEnabled.toBoolean()) {
|
|
val kotestVersion: String by project
|
|
|
|
dependencies {
|
|
runtimeOnly(project(":rust-runtime"))
|
|
testImplementation("org.junit.jupiter:junit-jupiter:5.6.1")
|
|
testImplementation("io.kotest:kotest-assertions-core-jvm:$kotestVersion")
|
|
}
|
|
|
|
tasks.compileTestKotlin {
|
|
kotlinOptions.jvmTarget = "11"
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
testLogging {
|
|
events("failed")
|
|
exceptionFormat = TestExceptionFormat.FULL
|
|
showCauses = true
|
|
showExceptions = true
|
|
showStackTraces = true
|
|
}
|
|
}
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
create<MavenPublication>("default") {
|
|
from(components["java"])
|
|
artifact(sourcesJar)
|
|
}
|
|
}
|
|
repositories { maven { url = uri(layout.buildDirectory.dir("repository")) } }
|
|
}
|