# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/components.gni")
import("//build/config.gni")
import("//build/dist/packaged_shared_library.gni")

assert(target_cpu == "x64", "goldfish is only for x64")

declare_args() {
  build_libvulkan_goldfish =
      "//third_party/android/device/generic/goldfish-opengl:libvulkan_goldfish"
}

# Loading ICDs from packages doesn't work on bootfs_only builds, so disable the
# goldfish driver there. Bringup builds are intended to be minimal, so having a
# bringup driver there doesn't make sense anyway.
group("goldfish-vulkan") {
  public_deps = [ ":goldfish" ]
}
group("goldfish-vulkan-config") {
  public_deps = [ ":goldfish-config" ]
}

icd_name = "libvulkan_goldfish"

packaged_shared_library("libvulkan_goldfish") {
  library = build_libvulkan_goldfish

  # libvulkan_goldfish.so doesn't build with instrumented variants.
  exclude_toolchain_tags = [ "instrumented" ]
}

resource("vulkan_metadata") {
  sources = [ "metadata.json" ]
  outputs = [ "data/metadata.json" ]
}

manifest_filename = "$target_gen_dir/vulkan/icd.d/$icd_name.json"

# api_version must be present but is unused
icd_data = [
  "{",
  "\"file_format_version\": \"1.0.0\",",
  "\"ICD\": {",
  "\"library_path\": \"$icd_name.so\",",
  "\"api_version\": \"1.1.0\"",
  "}",
  "}",
]
write_file(manifest_filename, icd_data)

resource("vulkan_manifest_json") {
  sources = [ manifest_filename ]
  outputs = [ "data/icd.d/$icd_name.json" ]
}

fuchsia_package_with_single_component("goldfish") {
  package_name = "libvulkan_goldfish"
  component_name = "vulkan"
  deps = [
    ":libvulkan_goldfish",
    ":vulkan_manifest_json",
    ":vulkan_metadata",
  ]
  manifest = "meta/vulkan.cml"
}

config_data("goldfish-config") {
  sources = [ rebase_path(manifest_filename) ]

  for_pkg = "vulkan-icd"
  outputs = [ "icd.d/{{source_file_part}}" ]
}
