# Copyright 2018 The Chromium Authors
# 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")
import("//build/config/features.gni")
import("//build/util/process_version.gni")
import("//build_overrides/build.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("blink_buildflags") {
  header = "blink_buildflags.h"
  flags = [ "USE_BLINK=$use_blink" ]
}

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

  flags = [
    "IS_CHROMECAST=$is_chromecast",
    "IS_CASTOS=$is_castos",
    "IS_CAST_ANDROID=$is_cast_android",
    "ENABLE_CAST_RECEIVER=$enable_cast_receiver",
  ]
}

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",
    "IS_CHROMEOS_WITH_HW_DETAILS=$is_chromeos_with_hw_details",
    "IS_REVEN=$is_reven",
  ]
}

if (build_with_chromium) {
  group("gold_common_pytype") {
    testonly = true

    data = [ "//build/skia_gold_common/" ]

    data_deps = [ "//testing:pytype_dependencies" ]
  }
}

if (is_chromeos) {
  process_version("version_metadata") {
    sources = [ "//chrome/VERSION" ]

    template_file = "metadata.json.in"
    output = "$root_out_dir/metadata.json"
    process_only = true
  }
}
