xref: /aosp_15_r20/external/aws-crt-java/build.gradle.kts (revision 3c7ae9de214676c52d19f01067dc1a404272dc11)
1*3c7ae9deSAndroid Build Coastguard Worker /*
2*3c7ae9deSAndroid Build Coastguard Worker  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3*3c7ae9deSAndroid Build Coastguard Worker  * SPDX-License-Identifier: Apache-2.0.
4*3c7ae9deSAndroid Build Coastguard Worker  *
5*3c7ae9deSAndroid Build Coastguard Worker  * Helpful resources/examples:
6*3c7ae9deSAndroid Build Coastguard Worker  * http://gradle.monochromeroad.com/docs/userguide/nativeBinaries.html
7*3c7ae9deSAndroid Build Coastguard Worker  * https://github.com/NationalSecurityAgency/ghidra/blob/master/Ghidra/Features/Decompiler/build.gradle
8*3c7ae9deSAndroid Build Coastguard Worker  */
9*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null10*3c7ae9deSAndroid Build Coastguard Worker plugins {
11*3c7ae9deSAndroid Build Coastguard Worker     `java-library`
12*3c7ae9deSAndroid Build Coastguard Worker     `maven-publish`
13*3c7ae9deSAndroid Build Coastguard Worker }
14*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null15*3c7ae9deSAndroid Build Coastguard Worker repositories {
16*3c7ae9deSAndroid Build Coastguard Worker     mavenLocal()
17*3c7ae9deSAndroid Build Coastguard Worker     maven {
18*3c7ae9deSAndroid Build Coastguard Worker         url = uri("https://repo.maven.apache.org/maven2")
19*3c7ae9deSAndroid Build Coastguard Worker     }
20*3c7ae9deSAndroid Build Coastguard Worker }
21*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null22*3c7ae9deSAndroid Build Coastguard Worker dependencies {
23*3c7ae9deSAndroid Build Coastguard Worker     testImplementation("junit:junit:4.13.2")
24*3c7ae9deSAndroid Build Coastguard Worker     testImplementation("commons-cli:commons-cli:1.5.0")
25*3c7ae9deSAndroid Build Coastguard Worker     testImplementation("org.mockito:mockito-core:3.11.2")
26*3c7ae9deSAndroid Build Coastguard Worker }
27*3c7ae9deSAndroid Build Coastguard Worker 
28*3c7ae9deSAndroid Build Coastguard Worker group = "software.amazon.awssdk.crt"
29*3c7ae9deSAndroid Build Coastguard Worker version = "1.0.0-SNAPSHOT"
30*3c7ae9deSAndroid Build Coastguard Worker description = "software.amazon.awssdk.crt:aws-crt"
31*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null32*3c7ae9deSAndroid Build Coastguard Worker sourceSets {
33*3c7ae9deSAndroid Build Coastguard Worker     main {
34*3c7ae9deSAndroid Build Coastguard Worker         java {
35*3c7ae9deSAndroid Build Coastguard Worker             setSrcDirs(listOf("src/main/java"))
36*3c7ae9deSAndroid Build Coastguard Worker         }
37*3c7ae9deSAndroid Build Coastguard Worker         // include shared libraries built by cmake/CI/CD in the lib folder
38*3c7ae9deSAndroid Build Coastguard Worker         resources {
39*3c7ae9deSAndroid Build Coastguard Worker             srcDir("${buildDir}/cmake-build/lib")
40*3c7ae9deSAndroid Build Coastguard Worker         }
41*3c7ae9deSAndroid Build Coastguard Worker     }
42*3c7ae9deSAndroid Build Coastguard Worker     test {
43*3c7ae9deSAndroid Build Coastguard Worker         java {
44*3c7ae9deSAndroid Build Coastguard Worker             setSrcDirs(listOf("src/test/java"))
45*3c7ae9deSAndroid Build Coastguard Worker         }
46*3c7ae9deSAndroid Build Coastguard Worker     }
47*3c7ae9deSAndroid Build Coastguard Worker }
48*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null49*3c7ae9deSAndroid Build Coastguard Worker java {
50*3c7ae9deSAndroid Build Coastguard Worker     withJavadocJar()
51*3c7ae9deSAndroid Build Coastguard Worker     withSourcesJar()
52*3c7ae9deSAndroid Build Coastguard Worker     sourceCompatibility = JavaVersion.VERSION_1_8
53*3c7ae9deSAndroid Build Coastguard Worker     targetCompatibility = JavaVersion.VERSION_1_8
54*3c7ae9deSAndroid Build Coastguard Worker }
55*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null56*3c7ae9deSAndroid Build Coastguard Worker tasks.compileJava {
57*3c7ae9deSAndroid Build Coastguard Worker     dependsOn(":native:cmakeBuild")
58*3c7ae9deSAndroid Build Coastguard Worker }
59*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null60*3c7ae9deSAndroid Build Coastguard Worker tasks.processResources {
61*3c7ae9deSAndroid Build Coastguard Worker     // sourceSets includes the compiled libs, so declare the dependency
62*3c7ae9deSAndroid Build Coastguard Worker     dependsOn(":native:cmakeBuild")
63*3c7ae9deSAndroid Build Coastguard Worker }
64*3c7ae9deSAndroid Build Coastguard Worker 
65*3c7ae9deSAndroid Build Coastguard Worker // withSourcesJar uses output of task :native:cmakeBuild so explicitly declaring dependency:
<lambda>null66*3c7ae9deSAndroid Build Coastguard Worker tasks.named("sourcesJar") {
67*3c7ae9deSAndroid Build Coastguard Worker     dependsOn(":native:cmakeBuild")
68*3c7ae9deSAndroid Build Coastguard Worker }
69*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null70*3c7ae9deSAndroid Build Coastguard Worker tasks.test {
71*3c7ae9deSAndroid Build Coastguard Worker     useJUnit()
72*3c7ae9deSAndroid Build Coastguard Worker     testLogging {
73*3c7ae9deSAndroid Build Coastguard Worker         events("passed", "skipped", "failed")
74*3c7ae9deSAndroid Build Coastguard Worker         showExceptions = true
75*3c7ae9deSAndroid Build Coastguard Worker         showCauses = true
76*3c7ae9deSAndroid Build Coastguard Worker     }
77*3c7ae9deSAndroid Build Coastguard Worker     for (prop in listOf("certificate", "privatekey", "endpoint", "rootca", "privatekey_p8")) {
78*3c7ae9deSAndroid Build Coastguard Worker         if (project.hasProperty(prop)) {
79*3c7ae9deSAndroid Build Coastguard Worker             systemProperty(prop, project.property(prop).toString())
80*3c7ae9deSAndroid Build Coastguard Worker         }
81*3c7ae9deSAndroid Build Coastguard Worker     }
82*3c7ae9deSAndroid Build Coastguard Worker     //uncomment the next line to attach the debugger to the JNI layer.
83*3c7ae9deSAndroid Build Coastguard Worker     // systemProperty("aws.crt.debugwait", "1")
84*3c7ae9deSAndroid Build Coastguard Worker }
85*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null86*3c7ae9deSAndroid Build Coastguard Worker tasks.compileTestJava {
87*3c7ae9deSAndroid Build Coastguard Worker     dependsOn(tasks.compileJava)
88*3c7ae9deSAndroid Build Coastguard Worker }
89*3c7ae9deSAndroid Build Coastguard Worker 
<lambda>null90*3c7ae9deSAndroid Build Coastguard Worker publishing {
91*3c7ae9deSAndroid Build Coastguard Worker 
92*3c7ae9deSAndroid Build Coastguard Worker     repositories {
93*3c7ae9deSAndroid Build Coastguard Worker         maven { name = "testLocal"; url = file("${rootProject.buildDir}/m2").toURI() }
94*3c7ae9deSAndroid Build Coastguard Worker     }
95*3c7ae9deSAndroid Build Coastguard Worker 
96*3c7ae9deSAndroid Build Coastguard Worker     publications {
97*3c7ae9deSAndroid Build Coastguard Worker         create<MavenPublication>("maven") {
98*3c7ae9deSAndroid Build Coastguard Worker             artifactId = project.name
99*3c7ae9deSAndroid Build Coastguard Worker             from(components["java"])
100*3c7ae9deSAndroid Build Coastguard Worker             pom {
101*3c7ae9deSAndroid Build Coastguard Worker                 name.set(project.name)
102*3c7ae9deSAndroid Build Coastguard Worker                 description.set(project.description)
103*3c7ae9deSAndroid Build Coastguard Worker                 url.set("https://github.com/awslabs/aws-crt-java")
104*3c7ae9deSAndroid Build Coastguard Worker                 licenses {
105*3c7ae9deSAndroid Build Coastguard Worker                     license {
106*3c7ae9deSAndroid Build Coastguard Worker                         name.set("The Apache License, Version 2.0")
107*3c7ae9deSAndroid Build Coastguard Worker                         url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
108*3c7ae9deSAndroid Build Coastguard Worker                     }
109*3c7ae9deSAndroid Build Coastguard Worker                 }
110*3c7ae9deSAndroid Build Coastguard Worker                 developers {
111*3c7ae9deSAndroid Build Coastguard Worker                     developer {
112*3c7ae9deSAndroid Build Coastguard Worker                         id.set("aws-sdk-common-runtime")
113*3c7ae9deSAndroid Build Coastguard Worker                         name.set("AWS SDK Common Runtime Team")
114*3c7ae9deSAndroid Build Coastguard Worker                         email.set("[email protected]")
115*3c7ae9deSAndroid Build Coastguard Worker                     }
116*3c7ae9deSAndroid Build Coastguard Worker                 }
117*3c7ae9deSAndroid Build Coastguard Worker                 scm {
118*3c7ae9deSAndroid Build Coastguard Worker                     connection.set("scm:git:git://github.com/awslabs/aws-crt-java.git")
119*3c7ae9deSAndroid Build Coastguard Worker                     developerConnection.set("scm:git:ssh://github.com/awslabs/aws-crt-java.git")
120*3c7ae9deSAndroid Build Coastguard Worker                     url.set("https://github.com/awslabs/aws-crt-java")
121*3c7ae9deSAndroid Build Coastguard Worker                 }
122*3c7ae9deSAndroid Build Coastguard Worker             }
123*3c7ae9deSAndroid Build Coastguard Worker         }
124*3c7ae9deSAndroid Build Coastguard Worker     }
125*3c7ae9deSAndroid Build Coastguard Worker     repositories {
126*3c7ae9deSAndroid Build Coastguard Worker         maven {
127*3c7ae9deSAndroid Build Coastguard Worker             val releasesRepo = uri("https://aws.oss.sonatype.org/")
128*3c7ae9deSAndroid Build Coastguard Worker             val snapshotRepo = uri("https://aws.oss.sonatype.org/content/repositories/snapshots")
129*3c7ae9deSAndroid Build Coastguard Worker             url = if (version.toString().endsWith("SNAPSHOT")) snapshotRepo else releasesRepo
130*3c7ae9deSAndroid Build Coastguard Worker         }
131*3c7ae9deSAndroid Build Coastguard Worker     }
132*3c7ae9deSAndroid Build Coastguard Worker }
133