# 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("//testing/test.gni") import("//third_party/protobuf/proto_library.gni") proto_library("proto") { sources = [ "dist/resources/phonemetadata.proto", "dist/resources/phonenumber.proto", ] proto_out_dir = "third_party/libphonenumber/phonenumbers" } config("libphonenumber_config") { include_dirs = [ "dist/cpp/src", "$root_gen_dir/third_party/libphonenumber", ] defines = [ "I18N_PHONENUMBERS_USE_ICU_REGEXP=1", "I18N_PHONENUMBERS_USE_ALTERNATE_FORMATS=1", ] if (!is_android) { defines += [ "I18N_PHONENUMBERS_NO_THREAD_SAFETY=1" ] } } config("libphonenumber_config_internal") { if (is_clang) { cflags = [ # https://github.com/googlei18n/libphonenumber/pull/741 "-Wno-unused-private-field", ] } } static_library("libphonenumber_without_metadata") { sources = [ "dist/cpp/src/phonenumbers/alternate_format.cc", "dist/cpp/src/phonenumbers/asyoutypeformatter.cc", "dist/cpp/src/phonenumbers/base/strings/string_piece.cc", "dist/cpp/src/phonenumbers/default_logger.cc", "dist/cpp/src/phonenumbers/logger.cc", "dist/cpp/src/phonenumbers/phonenumber.cc", "dist/cpp/src/phonenumbers/phonenumbermatch.cc", "dist/cpp/src/phonenumbers/phonenumbermatcher.cc", "dist/cpp/src/phonenumbers/phonenumberutil.cc", "dist/cpp/src/phonenumbers/regex_based_matcher.cc", "dist/cpp/src/phonenumbers/regexp_adapter_icu.cc", "dist/cpp/src/phonenumbers/regexp_cache.cc", "dist/cpp/src/phonenumbers/string_byte_sink.cc", "dist/cpp/src/phonenumbers/stringutil.cc", "dist/cpp/src/phonenumbers/unicodestring.cc", "dist/cpp/src/phonenumbers/utf/rune.c", "dist/cpp/src/phonenumbers/utf/unicodetext.cc", "dist/cpp/src/phonenumbers/utf/unilib.cc", ] # libphonenumber's base/logging.h is a minimal implementation where DCHECKs # do not consume their arguments. This leads to unused variable warnings in # release builds. configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", ":libphonenumber_config_internal", ] public_configs = [ ":libphonenumber_config" ] public_deps = [ ":proto" ] deps = [ ":proto", "//third_party/abseil-cpp:absl", "//third_party/icu", "//third_party/protobuf:protobuf_lite", ] } # Library used by clients that includes production metadata. static_library("libphonenumber") { sources = [ # Comment next line and uncomment the line after, if complete metadata # (with examples) is needed. "dist/cpp/src/phonenumbers/lite_metadata.cc", #"dist/cpp/src/phonenumbers/metadata.cc", ] public_deps = [ ":libphonenumber_without_metadata" ] } test("libphonenumber_unittests") { sources = [ "dist/cpp/src/phonenumbers/test_metadata.cc", "dist/cpp/test/phonenumbers/asyoutypeformatter_test.cc", "dist/cpp/test/phonenumbers/phonenumbermatch_test.cc", "dist/cpp/test/phonenumbers/phonenumbermatcher_test.cc", "dist/cpp/test/phonenumbers/phonenumberutil_test.cc", "dist/cpp/test/phonenumbers/regexp_adapter_test.cc", "dist/cpp/test/phonenumbers/stringutil_test.cc", "dist/cpp/test/phonenumbers/test_util.cc", "dist/cpp/test/phonenumbers/unicodestring_test.cc", ] configs += [ ":libphonenumber_config_internal" ] include_dirs = [ "dist/cpp/test" ] deps = [ ":libphonenumber_without_metadata", "//base", "//base/test:run_all_unittests", "//base/third_party/dynamic_annotations", "//testing/gmock", "//testing/gtest", "//third_party/icu", ] }