# 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",
    "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",
    "platform/stub/StubSync.cpp",
    "platform/stub/StubVirtGpuBlob.cpp",
    "platform/stub/StubVirtGpuBlobMapping.cpp",
    "platform/stub/StubVirtGpuDevice.cpp",
    "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/func_table.h",
    "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",
      "platform/stub/StubVirtGpuBlob.cpp",
      "platform/stub/StubVirtGpuBlobMapping.cpp",
      "platform/stub/StubVirtGpuDevice.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/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",
    ]
  }
}
