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

# Keep in sync with remoting/remoting_enable.gypi.

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

enable_remoting_host = false
enable_me2me_host = false

# TODO(GYP) Make remoting hosts work on Windows and Mac.
#if (is_win || is_mac) {
#  enable_remoting_host = true
#  enable_me2me_host = true
#}

if (is_linux && !is_chromeos && use_x11) {
  enable_remoting_host = true
  enable_me2me_host = true
}

if (is_linux && is_chromeos) {
  enable_remoting_host = true
}
