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.
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) {
9 } else if (is_mac || is_ios) {
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=" ]
23 "$os_include/include",
27 static_library("libxml") {
28 output_name = "libxml2"
30 "chromium/libxml_utils.h",
31 "chromium/libxml_utils.cc",
33 "linux/include/libxml/xmlversion.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",
105 "src/parserInternals.c",
132 "src/xmlschemastypes.c",
139 "win32/include/libxml/xmlversion.h",
142 configs -= [ "//build/config/compiler:chromium_code" ]
143 configs += [ "//build/config/compiler:no_chromium_code" ]
145 direct_dependent_configs = [ ":libxml_config" ]
146 forward_dependent_configs_from = [ "//third_party/icu:icuuc" ]
149 "//third_party/icu:icuuc",
150 "//third_party/zlib",
155 "/wd4101", # Unreferenced local variable.
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" ]
167 # libxml passes `const unsigned char*` through `const char*`.
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:
175 # See http://crbug.com/138571#c8
176 "-Wno-ignored-attributes",
179 # Mac Clang warnings.
181 # debugXML.c compares array 'arg' to NULL.
182 "-Wno-tautological-pointer-compare",