# Copyright 2017 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/android/config.gni")
import("//build/config/android/rules.gni")
import("//remoting/android/client_java_tmpl.gni")
import("//remoting/android/remoting_apk_tmpl.gni")
import("//remoting/remoting_options.gni")

group("jni") {
  testonly = true

  deps = [
    ":remoting_client_jni",
  ]
}

shared_library("remoting_client_jni") {
  deps = [
    "//remoting/android:jni_headers",
    "//remoting/android:remoting_jni_registration",
    "//remoting/base",
    "//remoting/client",
    "//remoting/client/display",
    "//remoting/protocol",
    "//ui/gfx",
  ]
  sources = [
    "egl_thread_context.cc",
    "egl_thread_context.h",
    "jni_client.cc",
    "jni_client.h",
    "jni_gl_display_handler.cc",
    "jni_gl_display_handler.h",
    "jni_oauth_token_getter.cc",
    "jni_oauth_token_getter.h",
    "jni_runtime_delegate.cc",
    "jni_runtime_delegate.h",
    "jni_touch_event_data.cc",
    "jni_touch_event_data.h",
    "remoting_jni_onload.cc",
  ]
  libs = [
    "android",
    "EGL",
  ]
  configs += [ "//remoting/build/config:enable_webrtc_remoting_client" ]
  assert_no_deps = [ "//third_party/ffmpeg:*" ]
}

java_cpp_enum("jni_enums") {
  sources = [
    "jni_oauth_token_getter.h",
  ]
}
