# Copyright (C) 2023 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.

import("//build/python/python_action.gni")
import("//build/python/python_binary.gni")
import("mesa-gn/mesa.gni")

config("common_config") {
  defines = [
    "LOG_TAG=\"gfxstream_vulkan\"",
    "GOLDFISH_NO_GL",
    "VK_GFXSTREAM_STRUCTURE_TYPE_EXT",
    "VK_USE_PLATFORM_FUCHSIA",
    "PAGE_SIZE=4096",
  ]

  if (is_debug) {
    defines += [ "DEBUG=1" ]
  }

  include_dirs = [
    "../common/opengl/include",
    "../common/vulkan/include",
    "android-emu",
    "GoldfishAddressSpace/include",
    "iostream/include",
    "gralloc_cb/include",
    "qemupipe/include",
    "qemupipe/include-types",
    "OpenglCodecCommon",
    "OpenglCodecCommon/include",
    "OpenglSystemCommon",
    "renderControl_enc",
    "vulkan_enc",
    "$mesa_source_root/include",
    "platform/include",
  ]

  if (target_os == "fuchsia") {
    include_dirs += [ "fuchsia/include" ]
  }

  cflags_cc = [
    "-Wno-conversion",
    "-Wno-newline-eof",
    "-Wno-pessimizing-move",
    "-Wno-sign-compare",
    "-Wno-unused-function",
    "-Wno-unused-value",
    "-Wno-unused-variable",
    "-Wno-unused-but-set-parameter",
    "-Wno-unused-but-set-variable",
  ]
}

python_binary("vk_entrypoints_gen_bin") {
  main_source = "$mesa_source_root/src/vulkan/util/vk_entrypoints_gen.py"

  sources = [
    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
  ]
  deps = [ "//third_party/mako" ]
}

config("gfxstream_vk_entrypoints_config") {
  include_dirs = [ "$target_gen_dir" ]
}

python_action("gfxstream_vk_entrypoints") {
  public_configs = [ ":gfxstream_vk_entrypoints_config" ]

  binary_label = ":vk_entrypoints_gen_bin"

  sources = [ mesa_vk_xml ]

  h_file = "$target_gen_dir/gfxstream_vk_entrypoints.h"
  c_file = "$target_gen_dir/gfxstream_vk_entrypoints.c"

  outputs = [
    h_file,
    c_file,
  ]

  args = [
    "--xml",
    rebase_path(mesa_vk_xml, root_build_dir),
    "--proto",
    "--weak",
    "--out-h",
    rebase_path(h_file, root_build_dir),
    "--out-c",
    rebase_path(c_file, root_build_dir),
    "--prefix",
    "gfxstream_vk",
    "--beta",
    "false",
  ]
}

# These sources require access to the Fuchsia goldfish protocols.
source_set("goldfish_srcs") {
  configs += [ ":common_config" ]

  sources = [
    "vulkan/gfxstream_vk_fuchsia.cpp",
    "vulkan_enc/ResourceTracker.cpp",
    "vulkan_enc/ResourceTracker.h",
  ]

  public_deps = [
    "$mesa_build_root/src/vulkan/runtime",
    "$mesa_build_root/src/vulkan/util",
    "//sdk/fidl/fuchsia.hardware.goldfish:fuchsia.hardware.goldfish_cpp",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_cpp",
    "//sdk/lib/syslog/structured_backend",
    "//third_party/Vulkan-Headers:vulkan_headers",
    "//zircon/system/ulib/async:async-cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/trace:trace-with-static-engine",
    "//zircon/system/ulib/trace-provider:trace-provider-with-static-engine",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxio",
  ]

  deps = [ ":gfxstream_vk_entrypoints" ]

  defines = [
    "QEMU_PIPE_PATH=\"/loader-gpu-devices/class/goldfish-pipe/000\"",
    "GOLDFISH_ADDRESS_SPACE_DEVICE_NAME=\"/loader-gpu-devices/class/goldfish-address-space/000\"",
  ]
}

loadable_module("libvulkan_gfxstream") {
  configs += [ ":common_config" ]

  deps = [
    ":gfxstream_vk_entrypoints",
    "$mesa_build_root/src/vulkan/runtime",
  ]

  sources = [
    "$target_gen_dir/gfxstream_vk_entrypoints.c",
    "GoldfishAddressSpace/AddressSpaceStream.cpp",
    "GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp",
    "OpenglCodecCommon/ChecksumCalculator.cpp",
    "OpenglCodecCommon/ChecksumCalculator.h",
    "OpenglCodecCommon/glUtils.cpp",
    "OpenglCodecCommon/glUtils.h",
    "OpenglSystemCommon/HostConnection.cpp",
    "OpenglSystemCommon/HostConnection.h",
    "OpenglSystemCommon/ProcessPipe.cpp",
    "OpenglSystemCommon/ProcessPipe.h",
    "OpenglSystemCommon/QemuPipeStream.cpp",
    "OpenglSystemCommon/QemuPipeStream.h",
    "OpenglSystemCommon/ThreadInfo.cpp",
    "OpenglSystemCommon/ThreadInfo.h",
    "OpenglSystemCommon/VirtioGpuPipeStream.cpp",
    "android-emu/aemu/base/AlignedBuf.cpp",
    "android-emu/aemu/base/AlignedBuf.h",
    "android-emu/aemu/base/Allocator.h",
    "android-emu/aemu/base/AndroidHealthMonitor.cpp",
    "android-emu/aemu/base/AndroidHealthMonitor.h",
    "android-emu/aemu/base/AndroidHealthMonitorConsumer.h",
    "android-emu/aemu/base/AndroidHealthMonitorConsumerBasic.cpp",
    "android-emu/aemu/base/AndroidHealthMonitorConsumerBasic.h",
    "android-emu/aemu/base/Process.cpp",
    "android-emu/aemu/base/Process.h",
    "android-emu/aemu/base/Tracing.cpp",
    "android-emu/aemu/base/Tracing.h",
    "android-emu/aemu/base/files/MemStream.cpp",
    "android-emu/aemu/base/files/MemStream.h",
    "android-emu/aemu/base/files/Stream.cpp",
    "android-emu/aemu/base/files/Stream.h",
    "android-emu/aemu/base/files/StreamSerializing.cpp",
    "android-emu/aemu/base/files/StreamSerializing.h",
    "android-emu/aemu/base/fit/Defer.h",
    "android-emu/aemu/base/fit/Function.h",
    "android-emu/aemu/base/fit/FunctionInternal.h",
    "android-emu/aemu/base/fit/Nullable.h",
    "android-emu/aemu/base/fit/ThreadChecker.h",
    "android-emu/aemu/base/fit/ThreadSafety.h",
    "android-emu/aemu/base/fit/UtilityInternal.h",
    "android-emu/aemu/base/ring_buffer.c",
    "android-emu/aemu/base/synchronization/AndroidConditionVariable.h",
    "android-emu/aemu/base/synchronization/AndroidLock.h",
    "android-emu/aemu/base/synchronization/AndroidMessageChannel.cpp",
    "android-emu/aemu/base/synchronization/AndroidMessageChannel.h",
    "android-emu/aemu/base/testing/TestClock.h",
    "android-emu/aemu/base/threads/AndroidFunctorThread.cpp",
    "android-emu/aemu/base/threads/AndroidFunctorThread.h",
    "android-emu/aemu/base/threads/AndroidThread.h",
    "android-emu/aemu/base/threads/AndroidThreadStore.h",
    "android-emu/aemu/base/threads/AndroidThreadTypes.h",
    "android-emu/aemu/base/threads/AndroidThread_pthread.cpp",
    "android-emu/aemu/base/threads/AndroidWorkPool.cpp",
    "android-emu/aemu/base/threads/AndroidWorkPool.h",
    "gralloc_cb/include/gralloc_cb_bp.h",
    "platform/VirtGpu.cpp",
    "platform/include/VirtGpu.h",
    "qemupipe/include-types/qemu_pipe_types_bp.h",
    "qemupipe/include/qemu_pipe_bp.h",
    "qemupipe/qemu_pipe_common.cpp",
    "qemupipe/qemu_pipe_guest.cpp",
    "renderControl_enc/renderControl_enc.cpp",
    "renderControl_enc/renderControl_enc.h",
    "vulkan/gfxstream_vk_device.cpp",
    "vulkan/gfxstream_vk_wsi_stub.cpp",
    "vulkan_enc/CommandBufferStagingStream.cpp",
    "vulkan_enc/CommandBufferStagingStream.h",
    "vulkan_enc/DescriptorSetVirtualization.cpp",
    "vulkan_enc/DescriptorSetVirtualization.h",
    "vulkan_enc/HostVisibleMemoryVirtualization.cpp",
    "vulkan_enc/HostVisibleMemoryVirtualization.h",
    "vulkan_enc/Resources.cpp",
    "vulkan_enc/Resources.h",
    "vulkan_enc/Validation.cpp",
    "vulkan_enc/Validation.h",
    "vulkan_enc/VkEncoder.cpp",
    "vulkan_enc/VkEncoder.h",
    "vulkan_enc/VulkanHandleMapping.cpp",
    "vulkan_enc/VulkanHandleMapping.h",
    "vulkan_enc/VulkanStreamGuest.cpp",
    "vulkan_enc/VulkanStreamGuest.h",
    "vulkan_enc/func_table.cpp",
    "vulkan_enc/gfxstream_vk_private.cpp",
    "vulkan_enc/gfxstream_vk_private.h",
    "vulkan_enc/goldfish_vk_counting_guest.cpp",
    "vulkan_enc/goldfish_vk_counting_guest.h",
    "vulkan_enc/goldfish_vk_deepcopy_guest.cpp",
    "vulkan_enc/goldfish_vk_deepcopy_guest.h",
    "vulkan_enc/goldfish_vk_extension_structs_guest.cpp",
    "vulkan_enc/goldfish_vk_extension_structs_guest.h",
    "vulkan_enc/goldfish_vk_marshaling_guest.cpp",
    "vulkan_enc/goldfish_vk_marshaling_guest.h",
    "vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp",
    "vulkan_enc/goldfish_vk_reserved_marshaling_guest.h",
    "vulkan_enc/goldfish_vk_transform_guest.cpp",
    "vulkan_enc/goldfish_vk_transform_guest.h",
    "vulkan_enc/vulkan_gfxstream.h",
    "vulkan_enc/vulkan_gfxstream_structure_type.h",
  ]

  if (target_os == "fuchsia") {
    sources -= [
      "OpenglSystemCommon/QemuPipeStream.cpp",
      "qemupipe/qemu_pipe_common.cpp",
      "qemupipe/qemu_pipe_guest.cpp",
    ]
    sources += [
      "OpenglSystemCommon/TraceProviderFuchsia.cpp",
      "OpenglSystemCommon/TraceProviderFuchsia.h",
      "fuchsia/fuchsia_stdio.cc",
      "fuchsia/port.cc",
      "fuchsia/service_connector.cc",
      "platform/kumquat/VirtGpuKumquatStub.cpp",
      "platform/fuchsia/FuchsiaVirtGpuBlob.cpp",
      "platform/fuchsia/FuchsiaVirtGpuBlobMapping.cpp",
      "platform/fuchsia/FuchsiaVirtGpuDevice.cpp",
      "platform/fuchsia/os_dirent_fuchsia.cpp",
    ]

    include_dirs = [
      "fuchsia/include",
      "platform/include",
      "//third_party/Vulkan-Headers/include",
    ]

    deps += [
      ":goldfish_srcs",
      "//sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
      "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_cpp",
      "//src/graphics/lib/magma/src/libmagma",
      "//src/zircon/lib/zircon",
      "//zircon/system/ulib/trace:trace-with-static-engine",
      "//zircon/system/ulib/zx",
      "//zircon/system/ulib/zxio",
    ]

    public_deps = [ "//third_party/Vulkan-Headers:vulkan_headers" ]

    # Vulkan ICDs on Fuchsia are only allowed to depend on (parts of) libc
    # and libzircon, and no other shared libraries.
    assert_no_deps = [
      "//sdk/lib/fdio",
      "//zircon/system/ulib/async-default",
    ]
  }
}
