Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / libxml / BUILD.gn
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   public_configs = [ ":libxml_config" ]
146   public_deps = [
147     "//third_party/icu:icuuc",
148   ]
149   deps = [
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       # debugXML.c compares array 'arg' to NULL.
176       "-Wno-tautological-pointer-compare",
177
178       # threads.c attempts to forward declare a pthread_equal which doesn't
179       # match the prototype in pthreads.h
180       "-Wno-ignored-attributes",
181     ]
182   }
183
184   include_dirs = [
185     "$os_include",
186   ]
187 }