# 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("//src/graphics/lib/compute/gn/build_rules.gni")

#
# Spinel config
#
config("config") {
  include_dirs = [ "include" ]
}

#
# Spinel headers
#
source_set("headers") {
  public_configs = [ ":config" ]
  public = [
    "include/spinel/spinel.h",
    "include/spinel/spinel_assert.h",
    "include/spinel/spinel_opcodes.h",
    "include/spinel/spinel_result.h",
    "include/spinel/spinel_types.h",
  ]
  sources = [
    "include/spinel/spinel.h",
    "include/spinel/spinel_assert.h",
    "include/spinel/spinel_opcodes.h",
    "include/spinel/spinel_result.h",
    "include/spinel/spinel_types.h",
  ]
}

#
# Spinel sources
#
source_set("spinel") {
  sources = [
    "composition.c",
    "composition.h",
    "context.c",
    "context.h",
    "core.h",
    "core_c.h",
    "path_builder.c",
    "path_builder.h",
    "raster_builder.c",
    "raster_builder.h",
    "spinel_assert.c",
    "state_assert.h",
    "styling.c",
    "styling.h",
    "swapchain.c",
    "swapchain.h",
    "weakref.c",
    "weakref.h",
  ]
  public_deps = [ ":headers" ]
  deps = [ "${graphics_compute_dir}/common" ]

  #
  # Platform-specific libraries and tests are
  # friends of this source set.
  #
  friend = [ "platforms/vk" ]
}
