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

import("//build/config/chrome_build.gni")

# These arguments can be overridden from the command line (see "gn help args").
declare_args() {
  # Set this to run the jscompile checks after building the webapp.
  enable_remoting_jscompile = false

  # Set this to enable building internal AppRemoting apps.
  enable_internal_app_remoting_targets = false
}

# Set this to use GCD instead of the remoting directory service.
remoting_use_gcd = 0

# Enable the multi-process host on Windows by default.
if (is_win) {
  remoting_multi_process = 1
} else {
  remoting_multi_process = 0
}

remoting_rdp_session = 1

if (is_chrome_branded) {
  branding_path = "//remoting/branding_Chrome"
} else {
  branding_path = "//remoting/branding_Chromium"
}

# The ar_service_environment variable is used to define the target
# environment for the app being built.
# The allowed values are dev and prod.
if (is_debug) {
  ar_service_environment = "dev"
} else {
  # Non-dev builds should default to 'prod'.
  ar_service_environment = "prod"
}

daemon_controller_guid = "655bd819-c08c-4b04-80c2-f160739ff6ef"
rdp_desktop_session_guid = "6a7699f0-ee43-43e7-aa30-a6738f9bd470"
