# 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("//mojo/public/mojo_application.gni")

source_set("mojo") {
  sources = [
    "mojo_vfs.cc",
    "mojo_vfs.h",
  ]

  # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  defines = [ "SQL_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//components/filesystem/public/interfaces",
    "//mojo/application/public/cpp",
    "//mojo/common",
    "//mojo/platform_handle",
    "//third_party/sqlite",
  ]
}

mojo_native_application("apptests") {
  output_name = "sql_apptests"

  testonly = true

  # Instead of using the code in //sql/test/sql_test_base.h, we should use the
  # mojo test base class.
  defines = [ "MOJO_APPTEST_IMPL" ]

  sources = [
    "../connection_unittest.cc",
    "../statement_unittest.cc",
    "../test/paths.cc",
    "../test/paths.h",
    "../transaction_unittest.cc",
    "sql_test_base.cc",
    "sql_test_base.h",
    "vfs_unittest.cc",
  ]

  deps = [
    ":mojo",
    "//base",
    "//base/test:test_support",
    "//components/filesystem/public/interfaces",
    "//mojo/application/public/cpp:sources",
    "//mojo/application/public/cpp:test_support",
    "//sql",
    "//sql:redirection_header",
    "//sql:test_support",
    "//testing/gtest:gtest",
    "//third_party/mojo/src/mojo/public/cpp/bindings",
  ]
}
