blob: 82632a6636e937c287027a6a9547ca39485becd7 [file] [log] [blame]
/*
* Copyright 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import androidx.build.LibraryGroups
import androidx.build.LibraryType
plugins {
id("AndroidXPlugin")
id("com.android.library")
id("org.jetbrains.kotlin.android")
}
dependencies {
api(libs.kotlinStdlib)
implementation(libs.junit)
implementation(libs.googletest)
androidTestImplementation(libs.testExtJunit)
androidTestImplementation(libs.truth)
androidTestImplementation(libs.testCore)
androidTestImplementation(libs.testRunner)
androidTestImplementation(libs.espressoCore)
}
androidx {
name = "AndroidX JUnit GTest"
type = LibraryType.PUBLISHED_LIBRARY
mavenGroup = LibraryGroups.TESTJUNIT
inceptionYear = "2022"
description = "Run GTest tests on Android devices"
}
android {
defaultConfig {
minSdkVersion 18
externalNativeBuild {
cmake {
arguments "-DANDROID_STL=c++_shared"
}
}
}
externalNativeBuild {
cmake {
version libs.versions.cmake.get()
path "src/main/cpp/CMakeLists.txt"
}
}
buildFeatures {
prefab = true
prefabPublishing true
}
prefab {
junitgtest {
name "junit-gtest"
}
}
}
// the following modification to junit-gtest/module.json is required so that the consuming library
// does not need to add the same flags to their CMakeLists.txt. If AGP adds explicit support for
// configuring module.json in the future we should use remove this manual fix. b/214034366
void fixModuleJson(Task task) {
def moduleJson = task.outputs.files.asFileTree.find { it.name == "module.json" }
def newText = moduleJson.text.replace(
"\"export_libraries\": []",
"\"export_libraries\": [\"-uJava_androidx_test_junitgtest_GtestRunner_initialize\", \"-uJava_androidx_test_junitgtest_GtestRunner_run\", \"-uJava_androidx_test_junitgtest_GtestRunner_addTest\"]",
)
moduleJson.write(newText)
}
afterEvaluate {
tasks.named("prefabDebugPackage").configure {task ->
task.doLast { fixModuleJson(task) }
}
tasks.named("prefabReleasePackage").configure {task ->
task.doLast { fixModuleJson(task) }
}
}