/*
 * 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.
 */

import androidx.build.Publish

plugins {
    id("AndroidXPlugin")
    id("com.android.library")
    id("kotlin-android")
}

android {
    externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
            version libs.versions.cmake.get()
        }
    }
    namespace "androidx.tracing.perfetto.binary"
}

dependencies {
    androidTestImplementation(libs.kotlinStdlib)
    androidTestImplementation(libs.testExtJunit)
    androidTestImplementation(libs.testRunner)
}

androidx {
    name = "AndroidX Tracing: Perfetto SDK Native Dependencies"
    publish = Publish.SNAPSHOT_ONLY
    mavenVersion = LibraryVersions.TRACING_PERFETTO
    mavenGroup = LibraryGroups.TRACING
    inceptionYear = "2022"
    description = "Provides native binaries required by AndroidX Tracing: Perfetto SDK " +
        "and is not intended to be used outside of that context."
}
