summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/chrome_browser.gypi1
-rw-r--r--third_party/libphonenumber/libphonenumber.gyp62
2 files changed, 56 insertions, 7 deletions
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 61cccfb..976b3de 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -45,6 +45,7 @@
'../third_party/leveldb/leveldb.gyp:leveldb',
'../third_party/libjingle/libjingle.gyp:libjingle',
'../third_party/libphonenumber/libphonenumber.gyp:libphonenumber',
+ '../third_party/libphonenumber/libphonenumber.gyp:phonenumber_proto',
'../third_party/libxml/libxml.gyp:libxml',
'../third_party/npapi/npapi.gyp:npapi',
'../ui/base/strings/ui_strings.gyp:ui_strings',
diff --git a/third_party/libphonenumber/libphonenumber.gyp b/third_party/libphonenumber/libphonenumber.gyp
index 487c01e..d6101af 100644
--- a/third_party/libphonenumber/libphonenumber.gyp
+++ b/third_party/libphonenumber/libphonenumber.gyp
@@ -3,12 +3,16 @@
# found in the LICENSE file.
{
+ 'variables': {
+ 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
+ },
'target_defaults': {
'include_dirs': [
'../..', # add it first, so src/base headers are used instead of the ones
# brought with the library as cc files would be taken from the
# main chrome tree as well.
'cpp/src',
+ '<(protoc_out_dir)',
],
'defines': [
'USE_HASH_MAP=1',
@@ -21,8 +25,10 @@
'dependencies': [
'../icu/icu.gyp:icui18n',
'../icu/icu.gyp:icuuc',
+ '../protobuf/protobuf.gyp:protobuf_lite',
'../../base/base.gyp:base',
'../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
+ 'phonenumber_proto',
],
'sources': [
# 'chrome/regexp_adapter_icuregexp.cc',
@@ -37,14 +43,10 @@
'cpp/src/utf/rune.c',
'cpp/src/utf/unicodetext.cc',
'cpp/src/utf/unilib.cc',
- 'resources/phonemetadata.proto',
- 'resources/phonenumber.proto',
+ # Generated by phonenumber_proto.
+ '<(protoc_out_dir)/phonemetadata.pb.cc',
+ '<(protoc_out_dir)/phonenumber.pb.cc',
],
- 'variables': {
- 'proto_in_dir': 'resources',
- 'proto_out_dir': 'third_party/libphonenumber',
- },
- 'includes': [ '../../build/protoc.gypi' ],
'conditions': [
['OS=="win"', {
'action': [
@@ -54,6 +56,51 @@
],
},
{
+ # Protobuf compiler / generate rule for the phones
+ 'target_name': 'phonenumber_proto',
+ 'type': 'none',
+ 'sources': [
+ 'resources/phonemetadata.proto',
+ 'resources/phonenumber.proto',
+ ],
+ 'rules': [{
+ 'rule_name': 'genproto',
+ 'extension': 'proto',
+ 'inputs': [
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
+ ],
+ 'variables': {
+ # The protoc compiler requires a proto_path argument with the
+ # directory containing the .proto file.
+ # There's no generator variable that corresponds to this, so fake it.
+ 'rule_input_relpath': 'resources',
+ },
+ 'outputs': [
+ '<(protoc_out_dir)/<(RULE_INPUT_ROOT).pb.h',
+ '<(protoc_out_dir)/<(RULE_INPUT_ROOT).pb.cc',
+ ],
+ 'action': [
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
+ '--proto_path=<(rule_input_relpath)',
+ '<(rule_input_relpath)/<(RULE_INPUT_ROOT)<(RULE_INPUT_EXT)',
+ '--cpp_out=<(protoc_out_dir)',
+ ],
+ 'message': 'Generating C++ code from <(RULE_INPUT_PATH)',
+ }],
+ 'dependencies': [
+ '../protobuf/protobuf.gyp:protobuf_lite',
+ '../protobuf/protobuf.gyp:protoc#host',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(protoc_out_dir)',
+ ]
+ },
+ 'export_dependent_settings': [
+ '../../third_party/protobuf/protobuf.gyp:protobuf_lite',
+ ],
+ },
+ {
'target_name': 'libphonenumber_unittests',
'type': 'executable',
'sources': [
@@ -66,6 +113,7 @@
'dependencies': [
'../icu/icu.gyp:icui18n',
'../icu/icu.gyp:icuuc',
+ '../protobuf/protobuf.gyp:protobuf_lite',
'../../base/base.gyp:base',
'../../base/base.gyp:test_support_base',
'../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',