# 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("//testing/test.gni")

group("mojom") {
  testonly = true
  deps = [
    ":tests",
  ]
  if (is_linux && defined(go_build_tool) && go_build_tool != "") {
    deps += [ "//mojom/mojom_parser" ]
  }
}

group("tests") {
  testonly = true
  deps = [
    ":lexer_unittest",
  ]
}

test("lexer_unittest") {
  sources = [
    "lexer_unittest.cc",
  ]

  deps = [
    "//base",
    "//base/test:run_all_unittests",
    "//testing/gtest",
    ":lexer",
  ]
}

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

  deps = [
    "//base",
  ]
}
