1# Copyright 2013 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  },
9  'includes': [
10    'url_srcs.gypi',
11  ],
12  'targets': [
13    {
14      # Note, this target_name cannot be 'url', because that will generate
15      # 'url.dll' for a Windows component build, and that will confuse Windows,
16      # which has a system DLL with the same name.
17      'target_name': 'url_lib',
18      'type': '<(component)',
19      'dependencies': [
20        '../base/base.gyp:base',
21        '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
22        '../third_party/icu/icu.gyp:icui18n',
23        '../third_party/icu/icu.gyp:icuuc',
24      ],
25      'sources': [
26        '<@(gurl_sources)',
27      ],
28      'direct_dependent_settings': {
29        'include_dirs': [
30          '..',
31        ],
32      },
33      'defines': [
34        'URL_IMPLEMENTATION',
35      ],
36      'conditions': [
37        ['use_icu_alternatives_on_android==1', {
38          'sources!': [
39            'url_canon_icu.cc',
40            'url_canon_icu.h',
41          ],
42          'dependencies!': [
43            '../third_party/icu/icu.gyp:icui18n',
44            '../third_party/icu/icu.gyp:icuuc',
45          ],
46        }],
47        ['use_icu_alternatives_on_android==1 and OS=="android"', {
48          'dependencies': [
49            'url_java',
50            'url_jni_headers',
51          ],
52          'sources': [
53            'url_canon_icu_alternatives_android.cc',
54            'url_canon_icu_alternatives_android.h',
55          ],
56        }],
57      ],
58      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
59      'msvs_disabled_warnings': [4267, ],
60    },
61    {
62      'target_name': 'url_unittests',
63      'type': 'executable',
64      'dependencies': [
65        '../base/base.gyp:run_all_unittests',
66        '../testing/gtest.gyp:gtest',
67        '../third_party/icu/icu.gyp:icuuc',
68        'url_lib',
69      ],
70      'sources': [
71        'gurl_unittest.cc',
72        'origin_unittest.cc',
73        'url_canon_icu_unittest.cc',
74        'url_canon_unittest.cc',
75        'url_parse_unittest.cc',
76        'url_test_utils.h',
77        'url_util_unittest.cc',
78      ],
79      'conditions': [
80        ['os_posix==1 and OS!="mac" and OS!="ios" and use_allocator!="none"',
81          {
82            'dependencies': [
83              '../base/allocator/allocator.gyp:allocator',
84            ],
85          }
86        ],
87        ['use_icu_alternatives_on_android==1',
88          {
89            'sources!': [
90              'url_canon_icu_unittest.cc',
91            ],
92            'dependencies!': [
93              '../third_party/icu/icu.gyp:icuuc',
94            ],
95          }
96        ],
97      ],
98      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
99      'msvs_disabled_warnings': [4267, ],
100    },
101  ],
102  'conditions': [
103    ['use_icu_alternatives_on_android==1 and OS=="android"', {
104      'targets': [
105        {
106          'target_name': 'url_jni_headers',
107          'type': 'none',
108          'sources': [
109            'android/java/src/org/chromium/url/IDNStringUtil.java'
110          ],
111          'variables': {
112            'jni_gen_package': 'url',
113          },
114          'includes': [ '../build/jni_generator.gypi' ],
115        },
116        {
117          'target_name': 'url_java',
118          'type': 'none',
119          'variables': {
120            'java_in_dir': '../url/android/java',
121          },
122          'dependencies': [
123            '../base/base.gyp:base',
124          ],
125          'includes': [ '../build/java.gypi' ],
126        },
127      ],
128    }],
129  ],
130}
131