# Copyright (c) 2013 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.

# Defines the configuration of Goma.

declare_args() {
  # Set to true to enable distributed compilation using Goma.
  use_goma = false

  # This flag is for ChromeOS compiler wrapper.
  # By passing gomacc path via cmd-line arg, ChromeOS' compiler wrapper
  # invokes gomacc inside it.
  needs_gomacc_path_arg = false

  # Absolute directory containing the gomacc binary.
  goma_dir = ""
}

if (use_goma && goma_dir == "") {
  goma_dir = exec_script("get_goma_dir.py", [], "string")
}

declare_args() {
  # TODO(crbug.com/726475): true if use_goma = true in the future.
  use_java_goma = false

  # Deprecated and ignored as Goma RBE is now the default. Still exists
  # to avoid breaking the build on the bots. Will be removed when all
  # bots have been configured to not set this variable.
  ios_use_goma_rbe = -1
}

assert(!is_win || !use_goma || is_clang,
       "cl.exe does not work on goma, use clang")
