Port Android relocation packer to chromium build
[chromium-blink-merge.git] / third_party / libphonenumber / libphonenumber.gyp
blobf5a98fe8f9afa751f443003c0ea135da64aee486
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'target_defaults': {
7     'include_dirs': [
8       'src',
9       'src/test',
10       # The libphonenumber source (and test code) expects the
11       # generated protocol headers to be available with "phonenumbers" include
12       # path, e.g. #include "phonenumbers/foo.pb.h".
13       '<(SHARED_INTERMEDIATE_DIR)/protoc_out/third_party/libphonenumber',
14     ],
15     'defines': [
16       'I18N_PHONENUMBERS_USE_ICU_REGEXP=1',
17     ],
18     'conditions': [
19       # libphonenumber can only be thread-safe on POSIX platforms. This is ok
20       # since Android is the only Chromium port that requires thread-safety.
21       # It uses the PhoneNumberUtil singleton in renderer threads as opposed to
22       # other platforms that only use it in the browser process (on a single
23       # thread). Note that any unsafe use of the library would be caught by a
24       # DCHECK.
25       ['OS != "android"', {
26         'defines': [
27           'I18N_PHONENUMBERS_NO_THREAD_SAFETY=1',
28         ],
29       }],
30     ],
31   },
32   'includes': [
33     '../../build/win_precompile.gypi',
34   ],
35   'targets': [{
36     # Build a library without metadata so that we can use it with both testing
37     # and production metadata. This library should not be used by clients.
38     # GN version: //third_party/libphonenumber:libphonenumber_without_metadata
39     'target_name': 'libphonenumber_without_metadata',
40     'type': 'static_library',
41     'dependencies': [
42       '../icu/icu.gyp:icui18n',
43       '../icu/icu.gyp:icuuc',
44       '../protobuf/protobuf.gyp:protobuf_lite',
45     ],
46     'sources': [
47       'src/phonenumbers/asyoutypeformatter.cc',
48       'src/phonenumbers/base/strings/string_piece.cc',
49       'src/phonenumbers/default_logger.cc',
50       'src/phonenumbers/logger.cc',
51       'src/phonenumbers/phonenumber.cc',
52       'src/phonenumbers/phonenumbermatch.cc',
53       'src/phonenumbers/phonenumbermatcher.cc',
54       'src/phonenumbers/phonenumberutil.cc',
55       'src/phonenumbers/regexp_adapter_icu.cc',
56       'src/phonenumbers/regexp_cache.cc',
57       'src/phonenumbers/string_byte_sink.cc',
58       'src/phonenumbers/stringutil.cc',
59       'src/phonenumbers/unicodestring.cc',
60       'src/phonenumbers/utf/rune.c',
61       'src/phonenumbers/utf/unicodetext.cc',
62       'src/phonenumbers/utf/unilib.cc',
63       'src/resources/phonemetadata.proto',
64       'src/resources/phonenumber.proto',
65     ],
66     'variables': {
67       'proto_in_dir': 'src/resources',
68       'proto_out_dir': 'third_party/libphonenumber/phonenumbers',
69     },
70     'includes': [ '../../build/protoc.gypi' ],
71     'direct_dependent_settings': {
72       'include_dirs': [
73         '<(SHARED_INTERMEDIATE_DIR)/protoc_out/third_party/libphonenumber',
74         'src',
75       ],
76       'defines': [
77         'I18N_PHONENUMBERS_USE_ICU_REGEXP=1',
78       ],
79       'conditions': [
80         ['OS != "android"', {
81           'defines': [
82             'I18N_PHONENUMBERS_NO_THREAD_SAFETY=1',
83           ],
84         }],
85       ],
86     },
87     'conditions': [
88       ['OS=="win"', {
89         'action': [
90           '/wo4309',
91         ],
92       }],
93     ],
94   },
95   {
96     # Library used by clients that includes production metadata.
97     # GN version: //third_party/libphonenumber
98     'target_name': 'libphonenumber',
99     'type': 'static_library',
100     'dependencies': [
101       'libphonenumber_without_metadata',
102     ],
103     'export_dependent_settings': [
104       'libphonenumber_without_metadata',
105     ],
106     'sources': [
107       # Comment next line and uncomment the line after, if complete metadata
108       # (with examples) is needed.
109       'src/phonenumbers/lite_metadata.cc',
110       #'src/phonenumbers/metadata.cc',
111     ],
112   },
113   {
114     # GN version: //third_party/libphonenumber:libphonenumber_unittests
115     'target_name': 'libphonenumber_unittests',
116     'type': 'executable',
117     'sources': [
118       'src/phonenumbers/test_metadata.cc',
119       'src/test/phonenumbers/asyoutypeformatter_test.cc',
120       'src/test/phonenumbers/phonenumbermatch_test.cc',
121       'src/test/phonenumbers/phonenumbermatcher_test.cc',
122       'src/test/phonenumbers/phonenumberutil_test.cc',
123       'src/test/phonenumbers/regexp_adapter_test.cc',
124       'src/test/phonenumbers/stringutil_test.cc',
125       'src/test/phonenumbers/test_util.cc',
126       'src/test/phonenumbers/unicodestring_test.cc',
127     ],
128     'dependencies': [
129       '../icu/icu.gyp:icui18n',
130       '../icu/icu.gyp:icuuc',
131       '../../base/base.gyp:run_all_unittests',
132       '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
133       '../../testing/gmock.gyp:gmock',
134       '../../testing/gtest.gyp:gtest',
135       'libphonenumber_without_metadata',
136     ],
137     'conditions': [
138       ['OS=="win"', {
139         'action': [
140           '/wo4309',
141         ],
142       }],
143       # libphonenumber needs to fix their ODR violations. http://crbug.com/456021
144       ['OS=="linux"', {
145         'ldflags!': [
146           '-Wl,--detect-odr-violations',
147         ],
148       }],
149     ],
150   }]