// Copyright 2019 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 module defines which headers are included in the NDK sysroot during
// the NDK build process.
package {
    default_applicable_licenses: ["external_vulkan-headers_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "external_vulkan-headers_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
    ],
    license_text: [
        "LICENSE.txt",
    ],
}

ndk_headers {
    name: "ndk_vulkan_headers",
    from: "include",
    to: "",
    srcs: [
        "include/vulkan/vk_platform.h",
        "include/vulkan/vulkan.h",
        "include/vulkan/vulkan_core.h",
        "include/vulkan/vulkan_android.h",
    ],
    license: "NOTICE",
}

// This module makes Vulkan headers available to other modules without
// having to link against libvulkan.so, e.g. for the Vulkan loader and
// drivers, or things that dlopen libvulkan.so. It's available to system
// modules, as part of the VNDK, and to unbundled modules.
cc_library_headers {
    name: "vulkan_headers",
    export_include_dirs: ["include"],
    host_supported: true,
    vendor_available: true,
    sdk_version: "24",
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
    llndk: {
        llndk_headers: true,
    },
}

// This module makes Vulkan XML file available to vendor code.
filegroup {
    name: "vulkan_headers_registry",
    srcs: ["registry/vk.xml"],
}
