OLD | NEW |
| (Empty) |
1 # Copyright (c) 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 # Define an "os_include" variable that points at the OS-specific generated | |
6 # headers. These were generated by running the configure script offline. | |
7 if (is_linux || is_android) { | |
8 os_include = "linux" | |
9 } else if (is_mac || is_ios) { | |
10 os_include = "mac" | |
11 } else if (is_win) { | |
12 os_include = "win32" | |
13 } | |
14 | |
15 config("libxml_config") { | |
16 # Define LIBXML_STATIC as nothing to match how libxml.h (an internal header) | |
17 # defines LIBXML_STATIC, otherwise we get the macro redefined warning from | |
18 # GCC. ("defines" does "-DFOO" which defines the macro FOO as 1.) | |
19 cflags = [ "-DLIBXML_STATIC=" ] | |
20 | |
21 include_dirs = [ | |
22 "src/include", | |
23 "$os_include/include", | |
24 ] | |
25 } | |
26 | |
27 static_library("libxml") { | |
28 output_name = "libxml2" | |
29 sources = [ | |
30 "chromium/libxml_utils.h", | |
31 "chromium/libxml_utils.cc", | |
32 "linux/config.h", | |
33 "linux/include/libxml/xmlversion.h", | |
34 "mac/config.h", | |
35 "mac/include/libxml/xmlversion.h", | |
36 "src/include/libxml/c14n.h", | |
37 "src/include/libxml/catalog.h", | |
38 "src/include/libxml/chvalid.h", | |
39 "src/include/libxml/debugXML.h", | |
40 "src/include/libxml/dict.h", | |
41 "src/include/libxml/DOCBparser.h", | |
42 "src/include/libxml/encoding.h", | |
43 "src/include/libxml/entities.h", | |
44 "src/include/libxml/globals.h", | |
45 "src/include/libxml/hash.h", | |
46 "src/include/libxml/HTMLparser.h", | |
47 "src/include/libxml/HTMLtree.h", | |
48 "src/include/libxml/list.h", | |
49 "src/include/libxml/nanoftp.h", | |
50 "src/include/libxml/nanohttp.h", | |
51 "src/include/libxml/parser.h", | |
52 "src/include/libxml/parserInternals.h", | |
53 "src/include/libxml/pattern.h", | |
54 "src/include/libxml/relaxng.h", | |
55 "src/include/libxml/SAX.h", | |
56 "src/include/libxml/SAX2.h", | |
57 "src/include/libxml/schemasInternals.h", | |
58 "src/include/libxml/schematron.h", | |
59 "src/include/libxml/threads.h", | |
60 "src/include/libxml/tree.h", | |
61 "src/include/libxml/uri.h", | |
62 "src/include/libxml/valid.h", | |
63 "src/include/libxml/xinclude.h", | |
64 "src/include/libxml/xlink.h", | |
65 "src/include/libxml/xmlautomata.h", | |
66 "src/include/libxml/xmlerror.h", | |
67 "src/include/libxml/xmlexports.h", | |
68 "src/include/libxml/xmlIO.h", | |
69 "src/include/libxml/xmlmemory.h", | |
70 "src/include/libxml/xmlmodule.h", | |
71 "src/include/libxml/xmlreader.h", | |
72 "src/include/libxml/xmlregexp.h", | |
73 "src/include/libxml/xmlsave.h", | |
74 "src/include/libxml/xmlschemas.h", | |
75 "src/include/libxml/xmlschemastypes.h", | |
76 "src/include/libxml/xmlstring.h", | |
77 "src/include/libxml/xmlunicode.h", | |
78 "src/include/libxml/xmlwriter.h", | |
79 "src/include/libxml/xpath.h", | |
80 "src/include/libxml/xpathInternals.h", | |
81 "src/include/libxml/xpointer.h", | |
82 "src/include/win32config.h", | |
83 "src/include/wsockcompat.h", | |
84 "src/acconfig.h", | |
85 "src/c14n.c", | |
86 "src/catalog.c", | |
87 "src/chvalid.c", | |
88 "src/debugXML.c", | |
89 "src/dict.c", | |
90 "src/DOCBparser.c", | |
91 "src/elfgcchack.h", | |
92 "src/encoding.c", | |
93 "src/entities.c", | |
94 "src/error.c", | |
95 "src/globals.c", | |
96 "src/hash.c", | |
97 "src/HTMLparser.c", | |
98 "src/HTMLtree.c", | |
99 "src/legacy.c", | |
100 "src/libxml.h", | |
101 "src/list.c", | |
102 "src/nanoftp.c", | |
103 "src/nanohttp.c", | |
104 "src/parser.c", | |
105 "src/parserInternals.c", | |
106 "src/pattern.c", | |
107 "src/relaxng.c", | |
108 "src/SAX.c", | |
109 "src/SAX2.c", | |
110 "src/schematron.c", | |
111 "src/threads.c", | |
112 "src/tree.c", | |
113 #"src/trio.c", | |
114 #"src/trio.h", | |
115 #"src/triodef.h", | |
116 #"src/trionan.c", | |
117 #"src/trionan.h", | |
118 #"src/triop.h", | |
119 #"src/triostr.c", | |
120 #"src/triostr.h", | |
121 "src/uri.c", | |
122 "src/valid.c", | |
123 "src/xinclude.c", | |
124 "src/xlink.c", | |
125 "src/xmlIO.c", | |
126 "src/xmlmemory.c", | |
127 "src/xmlmodule.c", | |
128 "src/xmlreader.c", | |
129 "src/xmlregexp.c", | |
130 "src/xmlsave.c", | |
131 "src/xmlschemas.c", | |
132 "src/xmlschemastypes.c", | |
133 "src/xmlstring.c", | |
134 "src/xmlunicode.c", | |
135 "src/xmlwriter.c", | |
136 "src/xpath.c", | |
137 "src/xpointer.c", | |
138 "win32/config.h", | |
139 "win32/include/libxml/xmlversion.h", | |
140 ] | |
141 | |
142 configs -= [ "//build/config/compiler:chromium_code" ] | |
143 configs += [ "//build/config/compiler:no_chromium_code" ] | |
144 | |
145 direct_dependent_configs = [ ":libxml_config" ] | |
146 forward_dependent_configs_from = [ "//third_party/icu:icuuc" ] | |
147 | |
148 deps = [ | |
149 "//third_party/icu:icuuc", | |
150 "//third_party/zlib", | |
151 ] | |
152 | |
153 if (is_win) { | |
154 cflags_c = [ | |
155 "/wd4101", # Unreferenced local variable. | |
156 ] | |
157 } else if (is_mac || is_android) { | |
158 # http://www.xmlsoft.org/threads.html says that this is required when using | |
159 # libxml from several threads, which can possibly happen in chrome. On | |
160 # linux, this is picked up by transitivity from pkg-config output from | |
161 # build/linux/system.gyp. | |
162 defines = [ "_REENTRANT" ] | |
163 } | |
164 | |
165 if (is_clang) { | |
166 cflags = [ | |
167 # libxml passes `const unsigned char*` through `const char*`. | |
168 "-Wno-pointer-sign", | |
169 | |
170 # pattern.c and uri.c both have an intentional `for (...);` / | |
171 # `while(...);` loop. I submitted a patch to move the `'` to its own | |
172 # line, but until that's landed suppress the warning: | |
173 "-Wno-empty-body", | |
174 | |
175 # See http://crbug.com/138571#c8 | |
176 "-Wno-ignored-attributes", | |
177 ] | |
178 if (is_mac) { | |
179 # Mac Clang warnings. | |
180 cflags += [ | |
181 # debugXML.c compares array 'arg' to NULL. | |
182 "-Wno-tautological-pointer-compare", | |
183 ] | |
184 } | |
185 } | |
186 | |
187 include_dirs = [ | |
188 "$os_include", | |
189 ] | |
190 } | |
OLD | NEW |