//
// Copyright (C) 2020 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.
//

// The Java S2 geometry lib.
package {
    default_applicable_licenses: ["external_s2-geometry-library-java_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "external_s2-geometry-library-java_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "LICENSE",
    ],
}

java_library {
    name: "s2-geometry-library-java",
    host_supported: true,
    sdk_version: "30",
    srcs: ["src/**/*.java"],
    static_libs: [
        "guava",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.geotz",
    ],
}

// A bundle of the S2 geometry lib and its tests.
//
// atest --host s2-geometry-library-java-tests
java_test {
    name: "s2-geometry-library-java-tests",
    host_supported: true,
    sdk_version: "current",
    srcs: ["tests/**/*.java"],
    static_libs: [
        "s2-geometry-library-java",
    ],
    libs: [
        "junit",
    ],
    test_suites: ["general-tests"],
}

// Device tests: atest S2GeometryLibraryJavaTests
android_test {
    name: "S2GeometryLibraryJavaTests",
    sdk_version: "current",
    manifest: "AndroidManifest.xml",
    static_libs: [
        "s2-geometry-library-java-tests",
        "androidx.test.rules",
        "junit",
    ],
}
