# Copyright 2018 The Chromium 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("//build/buildflag_header.gni")
import("//build/config/chrome_build.gni")
import("//build/config/chromecast_build.gni")
import("//build/config/chromeos/args.gni")
import("//build/config/chromeos/ui_mode.gni")

source_set("buildflag_header_h") {
  sources = [ "buildflag.h" ]
}

buildflag_header("branding_buildflags") {
  header = "branding_buildflags.h"

  if (is_chrome_branded) {
    flags = [
      "CHROMIUM_BRANDING=0",
      "GOOGLE_CHROME_BRANDING=1",
    ]
  } else {
    flags = [
      "CHROMIUM_BRANDING=1",
      "GOOGLE_CHROME_BRANDING=0",
    ]
  }
}

buildflag_header("chromecast_buildflags") {
  header = "chromecast_buildflags.h"

  flags = [ "IS_CHROMECAST=$is_chromecast" ]
}

buildflag_header("chromeos_buildflags") {
  header = "chromeos_buildflags.h"

  flags = [
    "IS_CHROMEOS_DEVICE=$is_chromeos_device",

    "IS_CHROMEOS_LACROS=$is_chromeos_lacros",
    "IS_CHROMEOS_ASH=$is_chromeos_ash",
  ]
}
