• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  'includes': [
7    '../../build/win_precompile.gypi',
8  ],
9  'variables': {
10    'variables': {
11      'conditions': [
12        ['sysroot!=""', {
13          'pkg-config': '<(chroot_cmd) ../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)" "<(system_libdir)"',
14        }, {
15          'pkg-config': 'pkg-config'
16        }],
17      ],
18    },
19
20    'pkg-config': '<(pkg-config)',
21
22    'conditions': [
23      ['OS=="linux" and (buildtype!="Official" or chromeos==1) and embedded==0', {
24        # Since version 1.31.0, pangoft2 which we depend on pulls in harfbuzz
25        # anyways. However, we want to have control of the version of harfbuzz
26        # we use, so don't use system harfbuzz for official builds, unless we
27        # are building for chrome os, where we have the system harfbuzz under
28        # control as well.
29        'use_system_harfbuzz%': '<!(python ../../build/check_return_value.py <(pkg-config) --atleast-version=1.31.0 pangoft2)',
30      }, {
31        'use_system_harfbuzz': 0,
32      }],
33    ],
34  },
35  'conditions': [
36    ['use_system_harfbuzz==0', {
37      'targets': [
38        {
39          'target_name': 'harfbuzz-ng',
40          'type': 'static_library',
41          'defines': [
42            'HAVE_OT',
43            'HAVE_ICU',
44            'HAVE_ICU_BUILTIN',
45            'HB_NO_MT',
46          ],
47          'sources': [
48            'src/hb-atomic-private.hh',
49            'src/hb-blob.cc',
50            'src/hb-blob.h',
51            'src/hb-buffer.cc',
52            'src/hb-buffer-deserialize-json.hh',
53            'src/hb-buffer-deserialize-text.hh',
54            'src/hb-buffer.h',
55            'src/hb-buffer-private.hh',
56            'src/hb-buffer-serialize.cc',
57            'src/hb-cache-private.hh',
58            'src/hb-common.cc',
59            'src/hb-common.h',
60            'src/hb-deprecated.h',
61            'src/hb-face.cc',
62            'src/hb-face.h',
63            'src/hb-face-private.hh',
64            'src/hb-fallback-shape.cc',
65            'src/hb-font.cc',
66            'src/hb-font.h',
67            'src/hb-font-private.hh',
68            'src/hb.h',
69            'src/hb-icu.cc',
70            'src/hb-icu.h',
71            'src/hb-mutex-private.hh',
72            'src/hb-object-private.hh',
73            'src/hb-open-file-private.hh',
74            'src/hb-open-type-private.hh',
75            'src/hb-ot.h',
76            'src/hb-ot-head-table.hh',
77            'src/hb-ot-hhea-table.hh',
78            'src/hb-ot-hmtx-table.hh',
79            'src/hb-ot-layout.cc',
80            'src/hb-ot-layout-common-private.hh',
81            'src/hb-ot-layout-gdef-table.hh',
82            'src/hb-ot-layout-gpos-table.hh',
83            'src/hb-ot-layout-gsubgpos-private.hh',
84            'src/hb-ot-layout-gsub-table.hh',
85            'src/hb-ot-layout.h',
86            'src/hb-ot-layout-private.hh',
87            'src/hb-ot-map.cc',
88            'src/hb-ot-map-private.hh',
89            'src/hb-ot-maxp-table.hh',
90            'src/hb-ot-name-table.hh',
91            'src/hb-ot-shape.cc',
92            'src/hb-ot-shape-complex-arabic.cc',
93            'src/hb-ot-shape-complex-arabic-fallback.hh',
94            'src/hb-ot-shape-complex-arabic-table.hh',
95            'src/hb-ot-shape-complex-default.cc',
96            'src/hb-ot-shape-complex-hangul.cc',
97            'src/hb-ot-shape-complex-hebrew.cc',
98            'src/hb-ot-shape-complex-indic.cc',
99            'src/hb-ot-shape-complex-indic-machine.hh',
100            'src/hb-ot-shape-complex-indic-private.hh',
101            'src/hb-ot-shape-complex-indic-table.cc',
102            'src/hb-ot-shape-complex-myanmar.cc',
103            'src/hb-ot-shape-complex-myanmar-machine.hh',
104            'src/hb-ot-shape-complex-private.hh',
105            'src/hb-ot-shape-complex-sea.cc',
106            'src/hb-ot-shape-complex-sea-machine.hh',
107            'src/hb-ot-shape-complex-thai.cc',
108            'src/hb-ot-shape-complex-tibetan.cc',
109            'src/hb-ot-shape-fallback.cc',
110            'src/hb-ot-shape-fallback-private.hh',
111            'src/hb-ot-shape.h',
112            'src/hb-ot-shape-normalize.cc',
113            'src/hb-ot-shape-normalize-private.hh',
114            'src/hb-ot-shape-private.hh',
115            'src/hb-ot-tag.cc',
116            'src/hb-ot-tag.h',
117            'src/hb-private.hh',
118            'src/hb-set.cc',
119            'src/hb-set.h',
120            'src/hb-set-private.hh',
121            'src/hb-shape.cc',
122            'src/hb-shape.h',
123            'src/hb-shape-plan.cc',
124            'src/hb-shape-plan.h',
125            'src/hb-shape-plan-private.hh',
126            'src/hb-shaper.cc',
127            'src/hb-shaper-impl-private.hh',
128            'src/hb-shaper-list.hh',
129            'src/hb-shaper-private.hh',
130            'src/hb-unicode.cc',
131            'src/hb-unicode.h',
132            'src/hb-unicode-private.hh',
133            'src/hb-utf-private.hh',
134            'src/hb-version.h',
135            'src/hb-warning.cc',
136          ],
137          'include_dirs': [
138            'src',
139          ],
140          'direct_dependent_settings': {
141            'include_dirs': [
142              'src',
143            ],
144          },
145          'dependencies': [
146            '../../third_party/icu/icu.gyp:icuuc',
147          ],
148          'variables': {
149            'clang_warning_flags': [ '-Wno-unused-value', ],
150          },
151          'conditions': [
152            ['OS=="win"', {
153              # TODO(eae): C4267 on amd64. size_t -> int, size_t -> unsigned int
154              'msvs_disabled_warnings': [4267, 4334],
155            }],
156            ['OS=="mac"', {
157              'defines': [
158                'HAVE_CORETEXT',
159              ],
160              'sources': [
161                'src/hb-coretext.cc',
162                'src/hb-coretext.h',
163              ],
164            }],
165          ],
166        },
167      ],
168    }, {  # use_system_harfbuzz==1
169      'targets': [
170        {
171          'target_name': 'harfbuzz-ng',
172          'type': 'none',
173          'cflags': [
174            '<!@(<(pkg-config) --cflags harfbuzz)',
175          ],
176          'direct_dependent_settings': {
177            'cflags': [
178              '<!@(<(pkg-config) --cflags harfbuzz)',
179            ],
180          },
181          'link_settings': {
182            'ldflags': [
183              '<!@(<(pkg-config) --libs-only-L --libs-only-other harfbuzz)',
184            ],
185            'libraries': [
186              '<!@(<(pkg-config) --libs-only-l harfbuzz)',
187            ],
188          },
189        },
190      ],
191    }],
192  ],
193}
194