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

# This variable should point to the parent directory of the Mojo SDK.
mojo_sdk_root = "//third_party/mojo/src"

# Chromium builds the network service from source, as it is the
# producer of the network service.
mojo_build_network_service_from_source = true

# Chromium does not build dart apptests. Disable any Mojo targets which
# depend on the apptest framework.
mojo_disable_dart_apptest_framework = true

# Points to the directory network_service is built from.
mojo_network_service_root = "//mojo/services"

declare_args() {
  # The mojo shell is forked and built in the chromium repo.
  mojo_build_mojo_shell_from_source = true

  # Specify prebuilt network service mojo file location rather than download
  # from gs://mojo.
  #
  # This variable only used when mojo_build_network_service_from_source is
  # false.
  #
  # Currently only android_arm and linux_64 available on gs://mojo, and no plan
  # to support more(https://codereview.chromium.org/921873003).
  # It is needed for developers works on other platforms like android_x86 and
  # android_x64. And it is also useful for supportted platform as well when
  # developer want to try its own version of network service files.
  mojo_prebuilt_network_service_location = ""

  # For network_service_apptests.mojo
  mojo_prebuilt_network_service_apptests_location = ""
}
