# 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/android/config.gni")
import("//build/config/android/rules.gni")
import("generate_resource_rewriter.gni")
import("glue.gni")

# There are two copies of this file: one upstream and one downstream,
# all targets defined in this file will finally generate two targets.
# is_upstream could be used to differentiate those two targets, see
# 'glue' target for details.
is_upstream = rebase_path(".", "//android_webview/glue") == "."

webview_framework_ijar = "frameworks.interface.jar"
webview_public_framework_ijar = "frameworks.public.interface.jar"

# Mark webview_framework_ijar is used, otherwise it isn't used if there
# is no internal code.
assert(webview_framework_ijar != "")

if (defined(webview_internal_framework_jar)) {
  generate_interface_jar("framework_ijar") {
    input_jar = webview_internal_framework_jar
    output_jar = "$target_out_dir/$webview_framework_ijar"
  }
}

generate_interface_jar("public_framework_ijar") {
  input_jar = webview_public_framework_jar
  output_jar = "$target_out_dir/$webview_public_framework_ijar"
}

generate_resource_rewriter("glue_resource_rewriter") {
  # Change deps? please modify glue_library_deps variable.
  deps = glue_library_deps
  package_name = "com.android.webview.chromium"
}

android_library("glue") {
  # Change deps? please modify glue_library_deps variable.
  deps = glue_library_deps
  srcjar_deps = [ ":glue_resource_rewriter" ]

  # Always build upstream or downstream target with public or internal
  # framework jar respectively.
  if (is_upstream) {
    alternative_android_sdk_ijar_dep = ":public_framework_ijar"
    _ijar = webview_public_framework_ijar
  } else {
    assert(defined(webview_internal_framework_jar))
    alternative_android_sdk_ijar_dep = ":framework_ijar"
    _ijar = webview_framework_ijar
  }
  _ijar_dir = get_label_info(alternative_android_sdk_ijar_dep, "target_out_dir")
  alternative_android_sdk_ijar = "$_ijar_dir/$_ijar"
  java_files = [
    "java/src/com/android/webview/chromium/ContentSettingsAdapter.java",
    "java/src/com/android/webview/chromium/CookieManagerAdapter.java",
    "java/src/com/android/webview/chromium/DrawGLFunctor.java",
    "java/src/com/android/webview/chromium/GeolocationPermissionsAdapter.java",
    "java/src/com/android/webview/chromium/GraphicsUtils.java",
    "java/src/com/android/webview/chromium/LicenseActivity.java",
    "java/src/com/android/webview/chromium/LicenseContentProvider.java",
    "java/src/com/android/webview/chromium/MonochromeLibraryPreloader.java",
    "java/src/com/android/webview/chromium/ServiceWorkerClientAdapter.java",
    "java/src/com/android/webview/chromium/ServiceWorkerControllerAdapter.java",
    "java/src/com/android/webview/chromium/ServiceWorkerSettingsAdapter.java",
    "java/src/com/android/webview/chromium/TokenBindingManagerAdapter.java",
    "java/src/com/android/webview/chromium/WebBackForwardListChromium.java",
    "java/src/com/android/webview/chromium/WebHistoryItemChromium.java",
    "java/src/com/android/webview/chromium/WebIconDatabaseAdapter.java",
    "java/src/com/android/webview/chromium/WebMessagePortAdapter.java",
    "java/src/com/android/webview/chromium/WebStorageAdapter.java",
    "java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java",
    "java/src/com/android/webview/chromium/WebViewChromium.java",
    "java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java",
    "java/src/com/android/webview/chromium/WebViewDatabaseAdapter.java",
    "java/src/com/android/webview/chromium/WebViewDelegateFactory.java",
  ]
}
