# Copyright 2023 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.

config("chre_config_defines") {
  cflags = [
    "-DCHRE_MESSAGE_TO_HOST_MAX_SIZE=2048",
    "-DCHRE_MINIMUM_LOG_LEVEL=CHRE_LOG_LEVEL_DEBUG",
    "-DCHRE_ASSERTIONS_DISABLED",
    "-DCHRE_FILENAME=__FILE__",
    "-DCHRE_PATCH_VERSION=1",
    "-DCHRE_PLATFORM_ID=1",
    "-DCHRE_FIRST_SUPPORTED_API_VERSION=CHRE_API_VERSION_1_1",
    "-DCHRE_VARIANT_SUPPLIES_STATIC_NANOAPP_LIST",
    "-DCHRE_NANOAPP_INTERNAL",
  ]
  cflags += [
    "-Wno-extra-semi",
    "-Wno-newline-eof",
  ]
}

source_set("chre_config") {
  public_configs = [ ":chre_config_defines" ]
}

config("flatbuffers_include") {
  include_dirs = [ "//third_party/chre/src/external/flatbuffers/include" ]
}

source_set("host_flatbuffers") {
  sources = [
    "src/host/common/include/chre_host/generated/host_messages_generated.h",
  ]
  public_configs = [ ":flatbuffers_include" ]
}
