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

// This file contains all the build target that we expect tests writers
// to need to build tests.

package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

java_import_host {
    name: "tradefed",
    jars: [
        ":platformprotos", // Should be first to force using protos from the branch
        ":tradefed-prebuilt",
        ":tradefed-test-framework-prebuilt",
    ],
    installable: true,
}

// Target used for backward compatibility with suites
java_import_host {
    name: "tradefed-no-fwk",
    jars: [":tradefed-prebuilt"],
    installable: true,
}

java_import_host {
    name: "tradefed-test-framework",
    jars: [
        ":platformprotos", // Should be first to force using protos from the branch
        ":tradefed-test-framework-prebuilt"
    ],
    installable: true,
}

java_import_host {
    name: "loganalysis",
    jars: [":loganalysis-prebuilt"],
    installable: true,
}

// Targets for test suites
java_import_host {
    name: "compatibility-tradefed",
    jars: [":compatibility-tradefed-prebuilt"],
    installable: true,
}

java_import_host {
    name: "compatibility-host-util",
    jars: [":compatibility-host-util-prebuilt"],
    installable: true,
}
