# Copyright 2016 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/features.gni")
import("//build/util/version.gni")
import("//remoting/remoting_options.gni")

# TODO(nicholss): Move this and other defines to version.h.in.
# Various remoting targets need this version definition.
config("version") {
  defines = [ "VERSION=$chrome_version_full" ]
}

config("enable_webrtc_remoting_client") {
  if (!is_official_build && !is_nacl) {
    defines = [ "ENABLE_WEBRTC_REMOTING_CLIENT=1" ]
  }
}

config("remoting_me2me_host") {
  defines = []

  if (is_win && remoting_multi_process != 0 && remoting_rdp_session != 0) {
    defines += [ "REMOTING_RDP_SESSION" ]
  }

  if (remoting_multi_process != 0) {
    defines += [ "REMOTING_MULTI_PROCESS" ]
  }
}
