# Copyright 2013 The Chromium Authors
# 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
}

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