# Copyright 2020 The Hafnium Authors.
#
# 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
#
#     https://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.

config("libfdt_config") {
  visibility = [ ":gtest" ]
  include_dirs = [
    "libfdt",
    "hafnium_inc",
  ]
  cflags = [
    "-Wno-zero-length-array",
    "-Wno-extra-semi",
  ]
}

source_set("libfdt") {
  sources = [
    "libfdt/fdt.c",
    "libfdt/fdt_addresses.c",
    "libfdt/fdt_ro.c",
    "libfdt/fdt_rw.c",
    "libfdt/fdt_wip.c",
  ]

  # Add config to targets which directly depend on this one, not recursively.
  public_configs = [ ":libfdt_config" ]
}
