# 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")
import("//build/config/chromeos/ui_mode.gni")
import("//build/config/ui.gni")

enable_remoting_host = is_win || is_mac || is_chromeos_ash ||
                       (is_linux && use_x11 && !is_chromeos_lacros)

# TODO(crbug.com/1052397): Remove is_chromeos_lacros once the target_os switch
# is completed.
enable_me2me_host =
    is_win || is_mac || (is_linux && use_x11 && !is_chromeos_lacros)

# 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"
}

rdp_desktop_session_guid = "6a7699f0-ee43-43e7-aa30-a6738f9bd470"
