blob: c3655190ddd39975c763e01b8323f9324aa35be7 [file] [log] [blame]
import com.android.ndkports.AndroidExecutableTestTask
import com.android.ndkports.CMakeCompatibleVersion
import com.android.ndkports.CMakePortTask
val portVersion = "1.11.0"
group = "com.android.ndk.thirdparty"
version = "$portVersion${rootProject.extra.get("snapshotSuffix")}"
plugins {
id("maven-publish")
id("com.android.ndkports.NdkPorts")
}
ndkPorts {
ndkPath.set(File(project.findProperty("ndkPath") as String))
source.set(project.file("src.tar.gz"))
minSdkVersion.set(16)
}
val buildTask = tasks.register<CMakePortTask>("buildPort") {
cmake {
arg("-Dgtest_build_tests=ON")
arg("-Dgmock_build_tests=ON")
}
}
tasks.prefabPackage {
version.set(CMakeCompatibleVersion.parse(portVersion))
modules {
create("gtest") {
static.set(true)
}
create("gtest_main") {
static.set(true)
}
create("gmock") {
static.set(true)
}
create("gmock_main") {
static.set(true)
}
}
}
fun findTests(directory: File) = directory.listFiles()!!.filter {
// There are also many tests that end with test_, but those require running
// Python on the device.
it.name.endsWith("test")
}
tasks.register<AndroidExecutableTestTask>("test") {
push {
val buildDir = buildTask.get().buildDirectoryFor(abi)
findTests(buildDir.resolve("googlemock")).forEach { test ->
push(test, File("googlemock").resolve(test.name))
}
findTests(buildDir.resolve("googletest")).forEach { test ->
push(test, File("googletest").resolve(test.name))
}
}
run {
val buildDir = buildTask.get().buildDirectoryFor(abi)
findTests(buildDir.resolve("googlemock")).forEach { test ->
shellTest(
test.name, listOf(
"cd",
deviceDirectory.resolve("googlemock").toString(),
"&&",
"./${test.name}"
)
)
}
findTests(buildDir.resolve("googletest")).forEach { test ->
shellTest(
test.name, listOf(
"cd",
deviceDirectory.resolve("googletest").toString(),
"&&",
"./${test.name}"
)
)
}
}
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["prefab"])
pom {
name.set("GoogleTest")
description.set("The ndkports AAR for GoogleTest.")
url.set(
"https://android.googlesource.com/platform/tools/ndkports"
)
licenses {
license {
name.set("BSD-3-Clause License")
url.set("https://github.com/google/googletest/blob/master/LICENSE")
distribution.set("repo")
}
}
developers {
developer {
name.set("The Android Open Source Project")
}
}
scm {
url.set("https://android.googlesource.com/platform/tools/ndkports")
connection.set("scm:git:https://android.googlesource.com/platform/tools/ndkports")
}
}
}
}
repositories {
maven {
url = uri("${rootProject.buildDir}/repository")
}
}
}