Summary: As now we have a single module to publish, I'm removing the build-logic folder and moving everything inside the java/build.gradle file. I've also converted it to Kotlin, Reviewed By: NickGerleman Differential Revision: D47259204 fbshipit-source-id: 2378d9e9598d7816f230db5f763f2b0f4cdf01d0
128 lines
3.4 KiB
Plaintext
128 lines
3.4 KiB
Plaintext
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
plugins {
|
|
id("com.android.library")
|
|
id("maven-publish")
|
|
id("signing")
|
|
}
|
|
|
|
group = "com.facebook.yoga"
|
|
|
|
val compileSdkVersionProperty: Int by rootProject.extra
|
|
val minSdkVersionProperty: Int by rootProject.extra
|
|
val targetSdkVersionProperty: Int by rootProject.extra
|
|
val buildToolsVersionProperty: String by rootProject.extra
|
|
val ndkVersionProperty: String by rootProject.extra
|
|
|
|
android {
|
|
namespace = "com.facebook.yoga"
|
|
compileSdk = 33
|
|
buildToolsVersion = "33.0.0"
|
|
ndkVersion = "23.1.7779620"
|
|
|
|
defaultConfig {
|
|
minSdk = 21
|
|
consumerProguardFiles("proguard-rules.pro")
|
|
|
|
ndk { abiFilters.addAll(setOf("x86", "x86_64", "armeabi-v7a", "arm64-v8a")) }
|
|
}
|
|
|
|
externalNativeBuild { cmake { path("CMakeLists.txt") } }
|
|
|
|
compileOptions {
|
|
targetCompatibility(JavaVersion.VERSION_1_8)
|
|
sourceCompatibility(JavaVersion.VERSION_1_8)
|
|
}
|
|
|
|
sourceSets {
|
|
named("main") {
|
|
java.srcDir("com")
|
|
manifest.srcFile("AndroidManifest.xml")
|
|
res.srcDir("res")
|
|
}
|
|
}
|
|
|
|
publishing {
|
|
multipleVariants {
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
includeBuildTypeValues("debug", "release")
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation("com.google.code.findbugs:jsr305:3.0.2")
|
|
implementation("com.facebook.soloader:soloader:0.10.5")
|
|
testImplementation("junit:junit:4.12")
|
|
}
|
|
|
|
version =
|
|
if ("USE_SNAPSHOT".byProperty.toBoolean()) {
|
|
"${"VERSION_NAME".byProperty}-SNAPSHOT"
|
|
} else {
|
|
"VERSION_NAME".byProperty.toString()
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
register<MavenPublication>("default") {
|
|
groupId = project.group.toString()
|
|
artifactId = project.name
|
|
version = project.version.toString()
|
|
afterEvaluate { from(components["default"]) }
|
|
pom {
|
|
description.set(
|
|
"An embeddable and performant flexbox layout engine with bindings for multiple languages")
|
|
name.set(project.name)
|
|
url.set("https://github.com/facebook/yoga.git")
|
|
licenses {
|
|
license {
|
|
name.set("MIT License")
|
|
url.set("https://github.com/facebook/yoga/blob/main/LICENSE")
|
|
distribution.set("repo")
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
id.set("Meta Open Source")
|
|
name.set("Meta Open Source")
|
|
email.set("opensource@meta.com")
|
|
}
|
|
}
|
|
scm { url.set("scm:git:git@github.com:facebook/yoga.git") }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
val signingKey = "SIGNING_KEY".byProperty
|
|
val signingPwd = "SIGNING_PWD".byProperty
|
|
|
|
if (signingKey.isNullOrBlank() || signingPwd.isNullOrBlank()) {
|
|
logger.info("Signing disabled as the GPG key was not found")
|
|
} else {
|
|
logger.info("GPG Key found - Signing enabled")
|
|
}
|
|
|
|
signing {
|
|
useInMemoryPgpKeys(signingKey, signingPwd)
|
|
sign(publishing.publications)
|
|
isRequired = !(signingKey.isNullOrBlank() || signingPwd.isNullOrBlank())
|
|
}
|
|
|
|
// Fix for https://youtrack.jetbrains.com/issue/KT-46466/
|
|
// On Gradle 8+, the signing task is not correctly wired to the publishing tasks.
|
|
// This requires a fix on KGP that is currently pending.
|
|
val signingTasks = tasks.withType<Sign>()
|
|
|
|
tasks.withType<AbstractPublishToMaven>().configureEach { dependsOn(signingTasks) }
|
|
|
|
val String.byProperty: String?
|
|
get() = providers.gradleProperty(this).orNull
|