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

// Build the android.test.base library
// ===================================
// This contains the junit.framework and android.test classes that were in
// Android API level 25 excluding those from android.test.runner.
// Also contains the com.android.internal.util.Predicate[s] classes.
java_sdk_library {
    name: "android.test.base",

    srcs: ["src/**/*.java"],

    errorprone: {
      javacflags: ["-Xep:DepAnn:ERROR"],
    },

    hostdex: true,

    api_packages: [
        "android.test",
        "android.test.suitebuilder.annotation",
        "com.android.internal.util",
        "junit.framework",
    ],

    compile_dex: true,
}

// Build the android.test.base_static library
// ==========================================
// This is only intended for inclusion in the android.test.runner-minus-junit,
// robolectric_android-all-stub and repackaged.android.test.* libraries.
// Must not be used elsewhere.
java_library_static {
    name: "android.test.base_static",
    installable: false,

    srcs: ["src/**/*.java"],

    errorprone: {
        javacflags: ["-Xep:DepAnn:ERROR"],
    },

    // Needs to be consistent with the repackaged version of this make target.
    java_version: "1.8",

    sdk_version: "current",
}

// Build the repackaged.android.test.base library
// ==============================================
// This contains repackaged versions of the classes from
// android.test.base.
java_library_static {
    name: "repackaged.android.test.base",

    sdk_version: "current",
    static_libs: ["android.test.base_static"],

    jarjar_rules: "jarjar-rules.txt",
    // Pin java_version until jarjar is certified to support later versions. http://b/72703434
    java_version: "1.8",
}

// Build the android.test.base-minus-junit library
// ===============================================
// This contains the android.test classes from android.test.base plus
// the com.android.internal.util.Predicate[s] classes. This is only
// intended for inclusion in android.test.legacy and must not be used
// elsewhere.
java_library_static {
    name: "android.test.base-minus-junit",

    srcs: [
        "src/android/**/*.java",
        "src/com/**/*.java",
    ],

    sdk_version: "current",
    libs: [
        "junit",
    ],
}

