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

package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "hardware_interfaces_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["hardware_interfaces_license"],
}

vintf_compatibility_matrix {
    name: "framework_compatibility_matrix.4.xml",
    stem: "compatibility_matrix.4.xml",
    srcs: [
        "compatibility_matrix.4.xml",
    ],
    kernel_configs: [
        "kernel_config_q_4.14",
        "kernel_config_q_4.19",
    ],
}

vintf_compatibility_matrix {
    name: "framework_compatibility_matrix.5.xml",
    stem: "compatibility_matrix.5.xml",
    srcs: [
        "compatibility_matrix.5.xml",
    ],
    kernel_configs: [
        "kernel_config_r_4.14",
        "kernel_config_r_4.19",
        "kernel_config_r_5.4",
    ],
}

vintf_compatibility_matrix {
    name: "framework_compatibility_matrix.6.xml",
    stem: "compatibility_matrix.6.xml",
    srcs: [
        "compatibility_matrix.6.xml",
    ],
    kernel_configs: [
        "kernel_config_s_4.19",
        "kernel_config_s_5.4",
        "kernel_config_s_5.10",
    ],
}

vintf_compatibility_matrix {
    name: "framework_compatibility_matrix.7.xml",
    stem: "compatibility_matrix.7.xml",
    srcs: [
        "compatibility_matrix.7.xml",
    ],
    kernel_configs: [
        "kernel_config_t_5.10",
        "kernel_config_t_5.15",
    ],
}

vintf_compatibility_matrix {
    name: "framework_compatibility_matrix.8.xml",
    stem: "compatibility_matrix.8.xml",
    srcs: [
        "compatibility_matrix.8.xml",
    ],
    kernel_configs: [
        "kernel_config_u_5.15",
        "kernel_config_u_6.1",
    ],
}

vintf_compatibility_matrix {
    name: "framework_compatibility_matrix.9.xml",
    stem: "compatibility_matrix.9.xml",
    srcs: [
        "compatibility_matrix.9.xml",
    ],
    kernel_configs: [
        "kernel_config_v_6.1",
        "kernel_config_v_6.6",
    ],
}
