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

declare_args() {
  # Selects the desired build flavor. Official builds get additional
  # processing to prepare for release. Normally you will want to develop and
  # test with this flag off.
  # TODO(brettw) move here from BUILDCONFIG.gn when DEPS are updated.
  #is_official_build = false

  # Select the desired branding flavor. False means normal Chromium branding,
  # true means official Google Chrome branding (requires extra Google-internal
  # resources).
  # TODO(brettw) move here from BUILDCONFIG.gn when DEPS are updated.
  #is_chrome_branded = false
}
