• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2013 Google Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14{
15  'variables': {
16    'component%': 'shared_library',
17  },
18  'target_defaults': {
19    'conditions': [
20      ['OS == "linux" and "<(component)" == "shared_library"', {
21        # https://code.google.com/p/gyp/issues/detail?id=374
22        'cflags': ['-fPIC'],
23      }],
24    ],
25    'include_dirs': [
26      'include',
27    ],
28  },
29  'targets': [
30    {
31      'target_name': 'libaddressinput',
32      'type': '<(component)',
33      'sources': [
34        'src/address_data.cc',
35        'src/address_field.cc',
36        'src/address_problem.cc',
37        'src/address_ui.cc',
38        'src/address_validator.cc',
39        'src/country_rules_aggregator.cc',
40        'src/fallback_data_store.cc',
41        'src/region_data_constants.cc',
42        'src/retriever.cc',
43        'src/rule.cc',
44        'src/ruleset.cc',
45        'src/util/canonicalize_string.cc',
46        'src/util/json.cc',
47        'src/util/md5.cc',
48        'src/util/string_util.cc',
49        'src/util/trie.cc',
50      ],
51      'defines': [
52        'VALIDATION_DATA_URL="https://i18napis.appspot.com/ssl-aggregate-address/"',
53      ],
54      'dependencies': [
55        'grit.gyp:generated_messages',
56        'rapidjson.gyp:rapidjson',
57        're2.gyp:re2',
58      ],
59    },
60    {
61      'target_name': 'unit_tests',
62      'type': 'executable',
63      'sources': [
64        'test/address_data_test.cc',
65        'test/address_ui_test.cc',
66        'test/address_validator_test.cc',
67        'test/country_rules_aggregator_test.cc',
68        'test/fake_downloader.cc',
69        'test/fake_downloader_test.cc',
70        'test/fake_storage.cc',
71        'test/fake_storage_test.cc',
72        'test/fallback_data_store_test.cc',
73        'test/region_data_constants_test.cc',
74        'test/retriever_test.cc',
75        'test/rule_test.cc',
76        'test/storage_test_runner.cc',
77        'test/util/json_test.cc',
78        'test/util/md5_unittest.cc',
79        'test/util/scoped_ptr_unittest.cc',
80        'test/util/stl_util_unittest.cc',
81        'test/util/string_util_test.cc',
82        'test/util/trie_test.cc',
83      ],
84      'defines': [
85        'TEST_DATA_DIR="../testdata"',
86      ],
87      'include_dirs': [
88        'src',
89      ],
90      'dependencies': [
91        'libaddressinput',
92        'gtest.gyp:main',
93      ],
94      'conditions': [
95        [ 'OS == "mac"', {
96          'postbuilds': [
97            {
98              # To make it possible to execute the unit tests directly from the
99              # build directory, without first installing the library, the path
100              # to the library is set to be relative to the unit test executable
101              # (so that also the library will be loaded directly from the build
102              # directory).
103              'postbuild_name': 'Make dylib path relative to executable',
104              'action': [
105                'install_name_tool',
106                '-change',
107                '/usr/local/lib/libaddressinput.dylib',
108                '@executable_path/libaddressinput.dylib',
109                '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
110              ],
111            },
112          ],
113        }],
114      ],
115    },
116  ],
117}
118