# Copyright 2016 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/c++/c++.gni")
import("//build/shim_headers.gni")

assert(!use_custom_libcxx,
       "Usage of the system libre2.so is not supported with " +
           "use_custom_libcxx=true because the library's interface relies on " +
           "libstdc++'s std::string and std::vector.")

shim_headers("re2_shim") {
  root_path = "src"
  headers = [
    "re2/filtered_re2.h",
    "re2/re2.h",
    "re2/set.h",
    "re2/stringpiece.h",
    "re2/variadic_function.h",
  ]
}

source_set("re2") {
  deps = [ ":re2_shim" ]
  libs = [ "re2" ]
}
