| /* |
| * 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.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.TESTEXT |
| inceptionYear = "2022" |
| description = "Run GTest tests on Android devices" |
| // Bypassed to better match existing androidx.test libraries |
| bypassCoordinateValidation = true |
| } |
| |
| 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" |
| } |
| } |
| namespace "androidx.test.ext.junitgtest" |
| } |
| |
| afterEvaluate { |
| tasks.withType(com.android.build.gradle.tasks.PrefabPackageTask).configureEach { task -> |
| task.doLast { |
| // 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 |
| def moduleJson = task.outputs.files.asFileTree.find { it.name == "module.json" } |
| def newText = moduleJson.text.replace( |
| "\"export_libraries\": []", |
| "\"export_libraries\": [\"-uJava_androidx_test_ext_junitgtest_GtestRunner_initialize\", \"-uJava_androidx_test_ext_junitgtest_GtestRunner_run\", \"-uJava_androidx_test_ext_junitgtest_GtestRunner_addTest\"]", |
| ) |
| moduleJson.write(newText) |
| } |
| } |
| } |