mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
244 lines
6.7 KiB
Plaintext
244 lines
6.7 KiB
Plaintext
|
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
# Define an "os_include" variable that points at the OS-specific generated
|
||
|
# headers. These were generated by running the configure script offline.
|
||
|
if (is_linux || is_android || is_nacl || is_fuchsia) {
|
||
|
os_include = "linux"
|
||
|
} else if (is_mac || is_ios) {
|
||
|
os_include = "mac"
|
||
|
} else if (is_win) {
|
||
|
os_include = "win32"
|
||
|
}
|
||
|
|
||
|
config("libxml_config") {
|
||
|
# Define LIBXML_STATIC as nothing to match how libxml.h (an internal header)
|
||
|
# defines LIBXML_STATIC, otherwise we get the macro redefined warning from
|
||
|
# GCC. ("defines" does "-DFOO" which defines the macro FOO as 1.)
|
||
|
cflags = [ "-DLIBXML_STATIC=" ]
|
||
|
|
||
|
include_dirs = [
|
||
|
"src/include",
|
||
|
"$os_include/include",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
config("libxml_warnings") {
|
||
|
if (is_win) {
|
||
|
cflags_c = [
|
||
|
"/wd4018", # Signed/unsigned mismatch in comparison.
|
||
|
"/wd4267", # TODO(brucedawson): http://crbug.com/554200 fix C4267
|
||
|
"/wd4311", # and C4311 warnings.
|
||
|
]
|
||
|
}
|
||
|
if (is_clang) {
|
||
|
cflags = [
|
||
|
# libxml passes `const unsigned char*` through `const char*`.
|
||
|
"-Wno-pointer-sign",
|
||
|
|
||
|
# pattern.c and uri.c both have an intentional `for (...);` /
|
||
|
# `while(...);` loop. I submitted a patch to move the `'` to its own
|
||
|
# line, but until that's landed suppress the warning:
|
||
|
"-Wno-empty-body",
|
||
|
|
||
|
# debugXML.c compares array 'arg' to NULL.
|
||
|
"-Wno-tautological-pointer-compare",
|
||
|
|
||
|
# threads.c attempts to forward declare a pthread_equal which doesn't
|
||
|
# match the prototype in pthreads.h
|
||
|
"-Wno-ignored-attributes",
|
||
|
|
||
|
# libxml casts from int to long to void*.
|
||
|
"-Wno-int-to-void-pointer-cast",
|
||
|
|
||
|
# libxml passes a volatile LPCRITICAL_SECTION* to a function expecting
|
||
|
# a void* volatile*.
|
||
|
"-Wno-incompatible-pointer-types",
|
||
|
|
||
|
# trio_is_special_quantity and trio_is_negative are only
|
||
|
# used with certain preprocessor defines set.
|
||
|
"-Wno-unused-function",
|
||
|
|
||
|
# Comparison between xmlElementType and xmlXPathTypeVal.
|
||
|
# TODO(hans): See if we can fix upstream (http://crbug.com/763944).
|
||
|
"-Wno-enum-compare",
|
||
|
]
|
||
|
} else if (is_linux) {
|
||
|
cflags = [
|
||
|
# gcc spits out a bunch of warnings about passing too many arguments to
|
||
|
# __xmlSimpleError.
|
||
|
"-Wno-format-extra-args",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static_library("libxml") {
|
||
|
output_name = "libxml2"
|
||
|
|
||
|
# Commented out sources are libxml2 files we do not want to include. They are
|
||
|
# here to make it easy to identify files which are new.
|
||
|
sources = [
|
||
|
"chromium/libxml_utils.cc",
|
||
|
"chromium/libxml_utils.h",
|
||
|
"linux/config.h",
|
||
|
"linux/include/libxml/xmlversion.h",
|
||
|
"mac/config.h",
|
||
|
"mac/include/libxml/xmlversion.h",
|
||
|
|
||
|
#"src/DOCBparser.c",
|
||
|
"src/HTMLparser.c",
|
||
|
"src/HTMLtree.c",
|
||
|
|
||
|
#"src/SAX.c",
|
||
|
"src/SAX2.c",
|
||
|
"src/buf.c",
|
||
|
"src/buf.h",
|
||
|
|
||
|
#"src/c14n.c",
|
||
|
#"src/catalog.c",
|
||
|
"src/chvalid.c",
|
||
|
|
||
|
#"src/debugXML.c",
|
||
|
"src/dict.c",
|
||
|
"src/elfgcchack.h",
|
||
|
"src/enc.h",
|
||
|
"src/encoding.c",
|
||
|
"src/entities.c",
|
||
|
"src/error.c",
|
||
|
"src/globals.c",
|
||
|
"src/hash.c",
|
||
|
"src/include/libxml/DOCBparser.h",
|
||
|
"src/include/libxml/HTMLparser.h",
|
||
|
"src/include/libxml/HTMLtree.h",
|
||
|
"src/include/libxml/SAX.h",
|
||
|
"src/include/libxml/SAX2.h",
|
||
|
"src/include/libxml/c14n.h",
|
||
|
"src/include/libxml/catalog.h",
|
||
|
"src/include/libxml/chvalid.h",
|
||
|
"src/include/libxml/debugXML.h",
|
||
|
"src/include/libxml/dict.h",
|
||
|
"src/include/libxml/encoding.h",
|
||
|
"src/include/libxml/entities.h",
|
||
|
"src/include/libxml/globals.h",
|
||
|
"src/include/libxml/hash.h",
|
||
|
"src/include/libxml/list.h",
|
||
|
"src/include/libxml/nanoftp.h",
|
||
|
"src/include/libxml/nanohttp.h",
|
||
|
"src/include/libxml/parser.h",
|
||
|
"src/include/libxml/parserInternals.h",
|
||
|
"src/include/libxml/pattern.h",
|
||
|
"src/include/libxml/relaxng.h",
|
||
|
"src/include/libxml/schemasInternals.h",
|
||
|
"src/include/libxml/schematron.h",
|
||
|
"src/include/libxml/threads.h",
|
||
|
"src/include/libxml/tree.h",
|
||
|
"src/include/libxml/uri.h",
|
||
|
"src/include/libxml/valid.h",
|
||
|
"src/include/libxml/xinclude.h",
|
||
|
"src/include/libxml/xlink.h",
|
||
|
"src/include/libxml/xmlIO.h",
|
||
|
"src/include/libxml/xmlautomata.h",
|
||
|
"src/include/libxml/xmlerror.h",
|
||
|
"src/include/libxml/xmlexports.h",
|
||
|
"src/include/libxml/xmlmemory.h",
|
||
|
"src/include/libxml/xmlmodule.h",
|
||
|
"src/include/libxml/xmlreader.h",
|
||
|
"src/include/libxml/xmlregexp.h",
|
||
|
"src/include/libxml/xmlsave.h",
|
||
|
"src/include/libxml/xmlschemas.h",
|
||
|
"src/include/libxml/xmlschemastypes.h",
|
||
|
"src/include/libxml/xmlstring.h",
|
||
|
"src/include/libxml/xmlunicode.h",
|
||
|
"src/include/libxml/xmlwriter.h",
|
||
|
"src/include/libxml/xpath.h",
|
||
|
"src/include/libxml/xpathInternals.h",
|
||
|
"src/include/libxml/xpointer.h",
|
||
|
"src/include/win32config.h",
|
||
|
"src/include/wsockcompat.h",
|
||
|
|
||
|
#"src/legacy.c",
|
||
|
"src/libxml.h",
|
||
|
"src/list.c",
|
||
|
"src/parser.c",
|
||
|
"src/parserInternals.c",
|
||
|
"src/pattern.c",
|
||
|
|
||
|
#"src/relaxng.c",
|
||
|
"src/save.h",
|
||
|
|
||
|
#"src/schematron.c",
|
||
|
"src/threads.c",
|
||
|
"src/timsort.h",
|
||
|
"src/tree.c",
|
||
|
"src/triodef.h",
|
||
|
"src/trionan.h",
|
||
|
|
||
|
#"src/trio.c",
|
||
|
#"src/trio.h",
|
||
|
#"src/triodef.h",
|
||
|
# Note: xpath.c #includes trionan.c
|
||
|
#"src/trionan.c",
|
||
|
#"src/triop.h",
|
||
|
#"src/triostr.c",
|
||
|
#"src/triostr.h",
|
||
|
"src/uri.c",
|
||
|
"src/valid.c",
|
||
|
|
||
|
#"src/xinclude.c",
|
||
|
#"src/xlink.c",
|
||
|
"src/xmlIO.c",
|
||
|
"src/xmlmemory.c",
|
||
|
|
||
|
#"src/xmlmodule.c",
|
||
|
"src/xmlreader.c",
|
||
|
|
||
|
#"src/xmlregexp.c",
|
||
|
"src/xmlsave.c",
|
||
|
|
||
|
#"src/xmlschemas.c",
|
||
|
#"src/xmlschemastypes.c",
|
||
|
"src/xmlstring.c",
|
||
|
"src/xmlunicode.c",
|
||
|
"src/xmlwriter.c",
|
||
|
"src/xpath.c",
|
||
|
|
||
|
#"src/xpointer.c",
|
||
|
#"src/xzlib.c",
|
||
|
"src/xzlib.h",
|
||
|
"win32/config.h",
|
||
|
"win32/include/libxml/xmlversion.h",
|
||
|
]
|
||
|
|
||
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
||
|
configs += [
|
||
|
"//build/config/compiler:no_chromium_code",
|
||
|
|
||
|
# Must be after no_chromium_code for warning flags to be ordered correctly.
|
||
|
":libxml_warnings",
|
||
|
]
|
||
|
|
||
|
if (is_win) {
|
||
|
# libxml2 already defines WIN32_LEAN_AND_MEAN.
|
||
|
configs -= [ "//build/config/win:lean_and_mean" ]
|
||
|
}
|
||
|
|
||
|
public_configs = [ ":libxml_config" ]
|
||
|
public_deps = [
|
||
|
"//third_party/icu:icuuc",
|
||
|
]
|
||
|
deps = [
|
||
|
"//third_party/zlib",
|
||
|
]
|
||
|
|
||
|
if (is_mac || is_ios || is_android || is_fuchsia) {
|
||
|
# http://www.xmlsoft.org/threads.html says that this is required when using
|
||
|
# libxml from several threads, which can possibly happen in chrome. On
|
||
|
# linux, this is picked up by transitivity from pkg-config output from
|
||
|
# build/linux/system.gyp.
|
||
|
defines = [ "_REENTRANT" ]
|
||
|
}
|
||
|
|
||
|
include_dirs = [ "$os_include" ]
|
||
|
}
|