[go: nahoru, domu]

blob: af66549e7ea3ce98a47672b5d392f1fe310da766 [file] [log] [blame]
/*
* Copyright (C) 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.
*/
/**
* This file was created using the `create_project.py` script located in the
* `<AndroidX root>/development/project-creator` directory.
*
* Please use that script when creating a new project, rather than copying an existing project and
* modifying its settings.
*/
import androidx.build.LibraryType
import javax.inject.Inject
plugins {
id("AndroidXPlugin")
id("com.android.library")
id("org.jetbrains.kotlin.android")
}
abstract class BundleTestSdkDexTask extends DefaultTask {
@InputFiles
@PathSensitive(PathSensitivity.NAME_ONLY)
abstract ConfigurableFileCollection getTestSdkApkFolders()
@OutputDirectory
abstract DirectoryProperty getOutputDir()
@Inject
abstract FileSystemOperations getFileSystemOperations()
@Inject
abstract ArchiveOperations getArchiveOperations()
@TaskAction
def exec() {
for (File folder : testSdkApkFolders.files) {
for (File file : folder.listFiles()) {
String fileName = file.name
if (!fileName.endsWith(".apk")) {
continue
}
int projectNameEnd = fileName.indexOf("-")
String projectName = projectNameEnd > 0 ? fileName.substring(0, projectNameEnd) : fileName
fileSystemOperations.copy {
from(archiveOperations.zipTree(file))
into(outputDir.dir("test-sdks/$projectName/"))
include('*.dex')
}
}
}
}
}
def bundleTestSdkDexTaskProvider = tasks.register("bundleTestSdkDexTask", BundleTestSdkDexTask) {
description("Bundle DEX from the androidTestBundleDex configuration into assets folder")
def configuration = configurations.getByName("androidTestBundleDex")
testSdkApkFolders.from(configuration.incoming.artifactView {}.files)
}
androidComponents {
onVariants(selector().withBuildType("debug")) {
androidTest.sources.assets.addGeneratedSourceDirectory(
bundleTestSdkDexTaskProvider,
BundleTestSdkDexTask::getOutputDir
)
}
}
configurations {
androidTestBundleDex {
canBeConsumed = false
canBeResolved = true
attributes {
attribute(
LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE,
objects.named(LibraryElements, "testSdkApk")
)
}
}
}
dependencies {
api(libs.kotlinStdlib)
api(libs.kotlinCoroutinesCore)
implementation("androidx.core:core-ktx:1.12.0")
api project(path: ':privacysandbox:sdkruntime:sdkruntime-core')
implementation("androidx.core:core:1.12.0")
implementation("androidx.activity:activity:1.8.0")
testImplementation(libs.junit)
testImplementation(libs.truth)
testImplementation project(":room:room-compiler-processing-testing")
// TODO(b/249982004): cleanup dependencies
androidTestImplementation(libs.testCore)
androidTestImplementation(libs.testExtJunit)
androidTestImplementation(libs.testRunner)
androidTestImplementation(libs.testRules)
androidTestImplementation(libs.truth)
androidTestImplementation(libs.junit)
androidTestImplementation(project(':internal-testutils-runtime'))
androidTestImplementation(project(":internal-testutils-truth")) // for assertThrows
androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
androidTestImplementation(libs.dexmakerMockitoInline, excludes.bytebuddy) // DexMaker has it"s own MockMaker
androidTestBundleDex(project(":privacysandbox:sdkruntime:test-sdks:current"))
androidTestBundleDex(project(":privacysandbox:sdkruntime:test-sdks:v1"))
androidTestBundleDex(project(":privacysandbox:sdkruntime:test-sdks:v2"))
// V3 was released as V4 (original release postponed)
androidTestBundleDex(project(":privacysandbox:sdkruntime:test-sdks:v4"))
androidTestBundleDex(project(":privacysandbox:sdkruntime:test-sdks:v5"))
}
android {
sourceSets {
androidTest {
assets {
srcDirs += "src/androidTest/assets"
}
}
}
namespace "androidx.privacysandbox.sdkruntime.client"
compileSdk = 34
compileSdkExtension = 10
}
androidx {
name = "SdkRuntime Client"
type = LibraryType.PUBLISHED_LIBRARY
inceptionYear = "2022"
description = "Provides components for SdkRuntime aware Applications"
metalavaK2UastEnabled = true
legacyDisableKotlinStrictApiMode = true
}