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.
4
5{
6  'variables': {
7    'chromium_code': 1,
8    'variables': {
9      # Force rlz to use chrome's networking stack.
10      'force_rlz_use_chrome_net%': 1,
11    },
12    'conditions': [
13      ['force_rlz_use_chrome_net or OS!="win"', {
14        'rlz_use_chrome_net%': 1,
15      }, {
16        'rlz_use_chrome_net%': 0,
17      }],
18    ],
19  },
20  'target_defaults': {
21    'include_dirs': [
22      '..',
23    ],
24  },
25  'targets': [
26    {
27      'target_name': 'rlz_lib',
28      'type': 'static_library',
29      'dependencies': [
30        '../base/base.gyp:base',
31        '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
32      ],
33      'sources': [
34        'chromeos/lib/machine_id_chromeos.cc',
35        'chromeos/lib/rlz_value_store_chromeos.cc',
36        'chromeos/lib/rlz_value_store_chromeos.h',
37        'ios/lib/machine_id_ios.cc',
38        'lib/assert.cc',
39        'lib/assert.h',
40        'lib/crc32.h',
41        'lib/crc32_wrapper.cc',
42        'lib/crc8.h',
43        'lib/crc8.cc',
44        'lib/financial_ping.cc',
45        'lib/financial_ping.h',
46        'lib/lib_values.cc',
47        'lib/machine_id.cc',
48        'lib/machine_id.h',
49        'lib/recursive_cross_process_lock_posix.cc',
50        'lib/recursive_cross_process_lock_posix.h',
51        'lib/rlz_enums.h',
52        'lib/rlz_lib.cc',
53        'lib/rlz_lib.h',
54        'lib/rlz_lib_clear.cc',
55        'lib/lib_values.h',
56        'lib/rlz_value_store.h',
57        'lib/string_utils.cc',
58        'lib/string_utils.h',
59        'mac/lib/machine_id_mac.cc',
60        'mac/lib/rlz_value_store_mac.mm',
61        'mac/lib/rlz_value_store_mac.h',
62        'win/lib/lib_mutex.cc',
63        'win/lib/lib_mutex.h',
64        'win/lib/machine_deal.cc',
65        'win/lib/machine_deal.h',
66        'win/lib/machine_id_win.cc',
67        'win/lib/process_info.cc',
68        'win/lib/process_info.h',
69        'win/lib/registry_util.cc',
70        'win/lib/registry_util.h',
71        'win/lib/rlz_lib_win.cc',
72        'win/lib/rlz_value_store_registry.cc',
73        'win/lib/rlz_value_store_registry.h',
74      ],
75      'conditions': [
76        ['rlz_use_chrome_net==1', {
77          'defines': [
78            'RLZ_NETWORK_IMPLEMENTATION_CHROME_NET',
79          ],
80          'direct_dependent_settings': {
81            'defines': [
82              'RLZ_NETWORK_IMPLEMENTATION_CHROME_NET',
83            ],
84          },
85          'dependencies': [
86            '../net/net.gyp:net',
87            '../url/url.gyp:url_lib',
88          ],
89        }, {
90          'defines': [
91            'RLZ_NETWORK_IMPLEMENTATION_WIN_INET',
92          ],
93          'direct_dependent_settings': {
94            'defines': [
95              'RLZ_NETWORK_IMPLEMENTATION_WIN_INET',
96            ],
97          },
98        }],
99      ],
100      'target_conditions': [
101        # Need 'target_conditions' to override default filename_rules to include
102        # the files on iOS.
103        ['OS=="ios"', {
104          'sources/': [
105            ['include', '^mac/lib/rlz_value_store_mac\\.'],
106          ],
107        }],
108      ],
109      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
110      'msvs_disabled_warnings': [ 4267, ],
111    },
112    {
113      'target_name': 'test_support_rlz',
114      'type': 'static_library',
115      'dependencies': [
116        ':rlz_lib',
117        '../base/base.gyp:base',
118        '../base/base.gyp:test_support_base',
119        '../testing/gtest.gyp:gtest',
120      ],
121      'sources': [
122        'test/rlz_test_helpers.cc',
123        'test/rlz_test_helpers.h',
124      ],
125    },
126    {
127      'target_name': 'rlz_unittests',
128      'type': 'executable',
129      'dependencies': [
130        ':rlz_lib',
131        ':test_support_rlz',
132        '../base/base.gyp:base',
133        '../base/base.gyp:base_prefs',
134        '../testing/gmock.gyp:gmock',
135        '../testing/gtest.gyp:gtest',
136        '../third_party/zlib/zlib.gyp:zlib',
137      ],
138      'sources': [
139        'lib/crc32_unittest.cc',
140        'lib/crc8_unittest.cc',
141        'lib/financial_ping_test.cc',
142        'lib/lib_values_unittest.cc',
143        'lib/machine_id_unittest.cc',
144        'lib/rlz_lib_test.cc',
145        'lib/string_utils_unittest.cc',
146        'test/rlz_unittest_main.cc',
147        'win/lib/machine_deal_test.cc',
148      ],
149      'conditions': [
150        ['rlz_use_chrome_net==1', {
151          'dependencies': [
152            '../net/net.gyp:net_test_support',
153          ],
154        }],
155      ],
156      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
157      'msvs_disabled_warnings': [ 4267, ],
158    },
159    {
160      'target_name': 'rlz_id',
161      'type': 'executable',
162      'dependencies': [
163        ':rlz_lib',
164      ],
165      'sources': [
166        'examples/rlz_id.cc',
167      ],
168    },
169  ],
170  'conditions': [
171    ['OS=="win"', {
172      'targets': [
173        {
174          'target_name': 'rlz',
175          'type': 'shared_library',
176          'sources': [
177            'win/dll/dll_main.cc',
178            'win/dll/exports.cc',
179          ],
180          'dependencies': [
181            ':rlz_lib',
182            '../third_party/zlib/zlib.gyp:zlib',
183          ],
184        },
185      ],
186    }],
187  ],
188}
189