# Copyright 2016 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("//garnet/lib/magma/gnbuild/magma.gni")

# Magma ABI
config("magma_abi_config") {
  include_dirs = [ "magma_abi" ]
}

source_set("magma_abi") {
  public_configs = [ ":magma_abi_config" ]

  sources = [
    "magma_abi/magma.h",
    "magma_abi/magma_sysmem.h",
  ]

  public_deps = [
    ":magma_abi_common",
  ]
}

source_set("magma_abi_common") {
  public_configs = [ ":magma_abi_config" ]

  sources = [
    "magma_abi/magma_common_defs.h",
  ]
}

# Magma System Driver ABI
config("msd_abi_config") {
  include_dirs = [ "msd_abi" ]
}

source_set("msd_abi") {
  public_configs = [ ":msd_abi_config" ]

  sources = [
    "msd_abi/msd.h",
    "msd_abi/msd_defs.h",
  ]

  public_deps = [
    ":magma_abi_common",
  ]
}
