OLD | NEW |
| (Empty) |
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 # Define an "os_include" variable that points at the OS-specific generated | |
9 # headers. These were generated by running the configure script offline. | |
10 ['os_posix == 1 and OS != "mac" and OS != "ios"', { | |
11 'os_include': 'linux' | |
12 }], | |
13 ['OS=="mac"', {'os_include': 'mac'}], | |
14 ['OS=="win"', {'os_include': 'win32'}], | |
15 ], | |
16 'use_system_libxml%': 0, | |
17 }, | |
18 'targets': [ | |
19 { | |
20 'target_name': 'libxml', | |
21 'conditions': [ | |
22 ['use_system_libxml', { | |
23 'conditions': [ | |
24 ['os_posix == 1 and OS != "mac" and OS != "ios"', { | |
25 'type': 'static_library', | |
26 'sources': [ | |
27 'chromium/libxml_utils.h', | |
28 'chromium/libxml_utils.cc', | |
29 ], | |
30 'cflags': [ | |
31 '<!@(pkg-config --cflags libxml-2.0)', | |
32 ], | |
33 'defines': [ | |
34 'USE_SYSTEM_LIBXML', | |
35 ], | |
36 'direct_dependent_settings': { | |
37 'cflags': [ | |
38 '<!@(pkg-config --cflags libxml-2.0)', | |
39 ], | |
40 'defines': [ | |
41 'USE_SYSTEM_LIBXML', | |
42 ], | |
43 }, | |
44 'link_settings': { | |
45 'ldflags': [ | |
46 '<!@(pkg-config --libs-only-L --libs-only-other libxml-2.0)', | |
47 ], | |
48 'libraries': [ | |
49 '<!@(pkg-config --libs-only-l libxml-2.0)', | |
50 ], | |
51 }, | |
52 }], | |
53 ['OS == "ios"', { | |
54 'type': 'static_library', | |
55 'sources': [ | |
56 'chromium/libxml_utils.h', | |
57 'chromium/libxml_utils.cc', | |
58 ], | |
59 'include_dirs': [ | |
60 '$(SDKROOT)/usr/include/libxml2', | |
61 ], | |
62 'all_dependent_settings': { | |
63 'defines': [ | |
64 'USE_SYSTEM_LIBXML', | |
65 ], | |
66 'include_dirs': [ | |
67 '$(SDKROOT)/usr/include/libxml2', | |
68 ], | |
69 }, | |
70 'link_settings': { | |
71 'libraries': [ | |
72 '$(SDKROOT)/usr/lib/libxml2.dylib', | |
73 ], | |
74 }, | |
75 }], | |
76 ], | |
77 }, { # else: !use_system_libxml | |
78 'type': 'static_library', | |
79 'sources': [ | |
80 'chromium/libxml_utils.h', | |
81 'chromium/libxml_utils.cc', | |
82 'linux/config.h', | |
83 'linux/include/libxml/xmlversion.h', | |
84 'mac/config.h', | |
85 'mac/include/libxml/xmlversion.h', | |
86 'src/include/libxml/c14n.h', | |
87 'src/include/libxml/catalog.h', | |
88 'src/include/libxml/chvalid.h', | |
89 'src/include/libxml/debugXML.h', | |
90 'src/include/libxml/dict.h', | |
91 'src/include/libxml/DOCBparser.h', | |
92 'src/include/libxml/encoding.h', | |
93 'src/include/libxml/entities.h', | |
94 'src/include/libxml/globals.h', | |
95 'src/include/libxml/hash.h', | |
96 'src/include/libxml/HTMLparser.h', | |
97 'src/include/libxml/HTMLtree.h', | |
98 'src/include/libxml/list.h', | |
99 'src/include/libxml/parser.h', | |
100 'src/include/libxml/parserInternals.h', | |
101 'src/include/libxml/pattern.h', | |
102 'src/include/libxml/relaxng.h', | |
103 'src/include/libxml/SAX.h', | |
104 'src/include/libxml/SAX2.h', | |
105 'src/include/libxml/schemasInternals.h', | |
106 'src/include/libxml/schematron.h', | |
107 'src/include/libxml/threads.h', | |
108 'src/include/libxml/tree.h', | |
109 'src/include/libxml/uri.h', | |
110 'src/include/libxml/valid.h', | |
111 'src/include/libxml/xinclude.h', | |
112 'src/include/libxml/xlink.h', | |
113 'src/include/libxml/xmlautomata.h', | |
114 'src/include/libxml/xmlerror.h', | |
115 'src/include/libxml/xmlexports.h', | |
116 'src/include/libxml/xmlIO.h', | |
117 'src/include/libxml/xmlmemory.h', | |
118 'src/include/libxml/xmlmodule.h', | |
119 'src/include/libxml/xmlreader.h', | |
120 'src/include/libxml/xmlregexp.h', | |
121 'src/include/libxml/xmlsave.h', | |
122 'src/include/libxml/xmlschemas.h', | |
123 'src/include/libxml/xmlschemastypes.h', | |
124 'src/include/libxml/xmlstring.h', | |
125 'src/include/libxml/xmlunicode.h', | |
126 'src/include/libxml/xmlwriter.h', | |
127 'src/include/libxml/xpath.h', | |
128 'src/include/libxml/xpathInternals.h', | |
129 'src/include/libxml/xpointer.h', | |
130 'src/include/win32config.h', | |
131 'src/include/wsockcompat.h', | |
132 'src/acconfig.h', | |
133 'src/c14n.c', | |
134 'src/catalog.c', | |
135 'src/chvalid.c', | |
136 'src/debugXML.c', | |
137 'src/dict.c', | |
138 'src/DOCBparser.c', | |
139 'src/elfgcchack.h', | |
140 'src/encoding.c', | |
141 'src/entities.c', | |
142 'src/error.c', | |
143 'src/globals.c', | |
144 'src/hash.c', | |
145 'src/HTMLparser.c', | |
146 'src/HTMLtree.c', | |
147 'src/legacy.c', | |
148 'src/libxml.h', | |
149 'src/list.c', | |
150 'src/parser.c', | |
151 'src/parserInternals.c', | |
152 'src/pattern.c', | |
153 'src/relaxng.c', | |
154 'src/SAX.c', | |
155 'src/SAX2.c', | |
156 'src/schematron.c', | |
157 'src/threads.c', | |
158 'src/tree.c', | |
159 #'src/trio.c', | |
160 #'src/trio.h', | |
161 #'src/triodef.h', | |
162 #'src/trionan.c', | |
163 #'src/trionan.h', | |
164 #'src/triop.h', | |
165 #'src/triostr.c', | |
166 #'src/triostr.h', | |
167 'src/uri.c', | |
168 'src/valid.c', | |
169 'src/xinclude.c', | |
170 'src/xlink.c', | |
171 'src/xmlIO.c', | |
172 'src/xmlmemory.c', | |
173 'src/xmlmodule.c', | |
174 'src/xmlreader.c', | |
175 'src/xmlregexp.c', | |
176 'src/xmlsave.c', | |
177 'src/xmlschemas.c', | |
178 'src/xmlschemastypes.c', | |
179 'src/xmlstring.c', | |
180 'src/xmlunicode.c', | |
181 'src/xmlwriter.c', | |
182 'src/xpath.c', | |
183 'src/xpointer.c', | |
184 'win32/config.h', | |
185 'win32/include/libxml/xmlversion.h', | |
186 ], | |
187 'defines': [ | |
188 # Define LIBXML_STATIC as nothing to match how libxml.h | |
189 # (an internal header) defines LIBXML_STATIC, otherwise | |
190 # we get the macro redefined warning from GCC. (-DFOO | |
191 # defines the macro FOO as 1.) | |
192 'LIBXML_STATIC=', | |
193 ], | |
194 'variables': { | |
195 'clang_warning_flags': [ | |
196 # libxml passes `const unsigned char*` through `const char*`. | |
197 '-Wno-pointer-sign', | |
198 # pattern.c and uri.c both have an intentional | |
199 # `for (...);` / `while(...);` loop. I submitted a patch to | |
200 # move the `'` to its own line, but until that's landed | |
201 # suppress the warning: | |
202 '-Wno-empty-body', | |
203 # debugXML.c compares array 'arg' to NULL. | |
204 '-Wno-tautological-pointer-compare', | |
205 # See http://crbug.com/138571#c8 | |
206 '-Wno-ignored-attributes', | |
207 ], | |
208 }, | |
209 'include_dirs': [ | |
210 '<(os_include)', | |
211 '<(os_include)/include', | |
212 'src/include', | |
213 ], | |
214 'dependencies': [ | |
215 '../icu/icu.gyp:icuuc', | |
216 '../zlib/zlib.gyp:zlib', | |
217 ], | |
218 'export_dependent_settings': [ | |
219 '../icu/icu.gyp:icuuc', | |
220 ], | |
221 'direct_dependent_settings': { | |
222 'defines': [ | |
223 'LIBXML_STATIC', | |
224 ], | |
225 'include_dirs': [ | |
226 '<(os_include)/include', | |
227 'src/include', | |
228 ], | |
229 }, | |
230 'conditions': [ | |
231 ['OS=="linux"', { | |
232 'link_settings': { | |
233 'libraries': [ | |
234 # We need dl for dlopen() and friends. | |
235 '-ldl', | |
236 '-lm', | |
237 ], | |
238 }, | |
239 }], | |
240 # http://www.xmlsoft.org/threads.html says that this is required | |
241 # when using libxml from several threads, which can possibly happen | |
242 # in chrome. On linux, this is picked up by transitivity from | |
243 # pkg-config output from build/linux/system.gyp. | |
244 ['OS=="mac" or OS=="android"', {'defines': ['_REENTRANT']}], | |
245 ['OS=="win"', { | |
246 'product_name': 'libxml2', | |
247 # Disable unimportant 'unused variable' warning, and | |
248 # signed/unsigned comparison warning. The signed/unsigned (4101) | |
249 # is fixed upstream and can be removed eventually. | |
250 # TODO(jschuh): http://crbug.com/167187 size_t -> int | |
251 'msvs_disabled_warnings': [ 4018, 4101, 4267 ], | |
252 }, { # else: OS!="win" | |
253 'product_name': 'xml2', | |
254 }], | |
255 ], | |
256 }], | |
257 ['OS == "ios"', { | |
258 'toolsets': ['host', 'target'], | |
259 }], | |
260 ], | |
261 }, | |
262 ], | |
263 } | |
OLD | NEW |