/*
 * Copyright (C) 2018 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 static androidx.build.dependencies.DependenciesKt.*
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions

plugins {
    id("SupportAndroidLibraryPlugin")
    id("kotlin-android")
}

dependencies {
    androidTestImplementation(project(":benchmark"))
    androidTestImplementation(project(":navigation:navigation-runtime"))
    androidTestImplementation(project(":navigation:navigation-testing"))
    androidTestImplementation(JUNIT)
    androidTestImplementation(TEST_EXT_JUNIT)
    androidTestImplementation(TEST_CORE)
    androidTestImplementation(TEST_RUNNER)
    androidTestImplementation(TEST_RULES)
    androidTestImplementation(KOTLIN_STDLIB)
}

supportLibrary {
    name = "Navigation Benchmarks"
    publish = false
    mavenVersion = LibraryVersions.NAVIGATION
    mavenGroup = LibraryGroups.NAVIGATION
    inceptionYear = "2018"
    description = "Navigation Benchmarks"
}
