# 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/AndroidSubAllocator.cpp",
    "android-emu/aemu/base/AndroidSubAllocator.h",
    "android-emu/aemu/base/BumpPool.h",
    "android-emu/aemu/base/Pool.cpp",
    "android-emu/aemu/base/Pool.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",
    ]
  }
}
