# Copyright 2014 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/rules.gni")

# GYP: //testing/android/native_test.gyp:native_test_native_code
source_set("native_test_native_code") {
  testonly = true
  sources = [
    "native_test_launcher.cc"
  ]
  libs = [ "log" ]
  deps = [
    ":native_test_jni_headers",
    ":native_test_util",
    "//base",
    "//base/test:test_support",
    "//base/third_party/dynamic_annotations",
    "//testing/gtest",
  ]
}

# GYP: //testing/android/native_test.gyp:native_test_jni_headers
generate_jni("native_test_jni_headers") {
  sources = [
    "java/src/org/chromium/native_test/ChromeNativeTestActivity.java",
  ]
  jni_package = "testing"
}

# GYP: //testing/android/native_test.gyp:native_test_util
source_set("native_test_util") {
  sources = [
    "native_test_util.cc",
    "native_test_util.h",
  ]
  deps = [
    "//base"
  ]
}
