• 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  'variables': {
7    'conditions': [
8      # On Linux, we implicitly already depend on expat via fontconfig;
9      # let's not pull it in twice.
10      ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
11        'use_system_expat%': 1,
12      }, {
13        'use_system_expat%': 0,
14      }],
15    ],
16  },
17  'target_defaults': {
18    'defines': [
19      '_LIB',
20      'XML_STATIC',  # Compile for static linkage.
21    ],
22    'include_dirs': [
23      'files/lib',
24    ],
25  },
26  'conditions': [
27    ['use_system_expat == 1', {
28      'targets': [
29        {
30          'target_name': 'expat',
31          'type': 'none',
32          'link_settings': {
33            'libraries': [
34              '-lexpat',
35            ],
36          },
37        },
38      ],
39    }, {  # else: use_system_expat != 1
40      'targets': [
41        {
42          'target_name': 'expat',
43          'type': 'static_library',
44          'sources': [
45            'files/lib/expat.h',
46            'files/lib/xmlparse.c',
47            'files/lib/xmlrole.c',
48            'files/lib/xmltok.c',
49          ],
50
51          # Prefer adding a dependency to expat and relying on the following
52          # direct_dependent_settings rule over manually adding the include
53          # path.  This is because you'll want any translation units that
54          # #include these files to pick up the #defines as well.
55          'direct_dependent_settings': {
56            'include_dirs': [
57              'files/lib'
58            ],
59            'defines': [
60              'XML_STATIC',  # Tell dependants to expect static linkage.
61            ],
62          },
63          'conditions': [
64            ['OS=="win"', {
65              'defines': [
66                'COMPILED_FROM_DSP',
67              ],
68            }],
69            ['OS=="mac" or OS=="ios" or OS=="android" or os_bsd==1', {
70              'defines': [
71                'HAVE_EXPAT_CONFIG_H',
72              ],
73            }],
74          ],
75        },
76      ],
77    }],
78  ],
79}
80