| # Copyright (c) 2012 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. |
| |
| { |
| 'variables': { |
| 'conditions': [ |
| # Define an "os_include" variable that points at the OS-specific generated |
| # headers. These were generated by running the configure script offline. |
| ['os_posix == 1 and OS != "mac" and OS != "ios"', { |
| 'os_include': 'linux' |
| }], |
| ['OS=="mac"', {'os_include': 'mac'}], |
| ['OS=="win"', {'os_include': 'win32'}], |
| ['OS=="starboard"', {'os_include': 'starboard'}], |
| ], |
| 'use_system_libxml%': 0, |
| }, |
| 'targets': [ |
| { |
| 'target_name': 'libxml', |
| 'conditions': [ |
| ['use_system_libxml', { |
| 'conditions': [ |
| ['os_posix == 1 and OS != "mac" and OS != "ios"', { |
| 'type': 'static_library', |
| 'sources': [ |
| # 'chromium/libxml_utils.h', |
| # 'chromium/libxml_utils.cc', |
| ], |
| 'cflags': [ |
| '<!@(pkg-config --cflags libxml-2.0)', |
| ], |
| 'defines': [ |
| 'USE_SYSTEM_LIBXML', |
| ], |
| 'direct_dependent_settings': { |
| 'cflags': [ |
| '<!@(pkg-config --cflags libxml-2.0)', |
| ], |
| 'defines': [ |
| 'USE_SYSTEM_LIBXML', |
| ], |
| }, |
| 'link_settings': { |
| 'ldflags': [ |
| '<!@(pkg-config --libs-only-L --libs-only-other libxml-2.0)', |
| ], |
| 'libraries': [ |
| '<!@(pkg-config --libs-only-l libxml-2.0)', |
| ], |
| }, |
| }], |
| ['tizen_os == 1', { |
| 'type': 'none', |
| 'direct_dependent_settings': { |
| 'cflags': [ |
| '<!@(pkg-config --cflags libxml-2.0)', |
| ], |
| 'defines': [ |
| 'USE_SYSTEM_LIBXML', |
| ], |
| }, |
| 'link_settings': { |
| 'ldflags': [ |
| '<!@(pkg-config --libs-only-L --libs-only-other libxml-2.0)', |
| ], |
| 'libraries': [ |
| '<!@(pkg-config --libs-only-l libxml-2.0)', |
| ], |
| }, |
| }], |
| ['OS == "ios"', { |
| 'type': 'static_library', |
| 'sources': [ |
| 'chromium/libxml_utils.h', |
| 'chromium/libxml_utils.cc', |
| ], |
| 'include_dirs': [ |
| '$(SDKROOT)/usr/include/libxml2', |
| ], |
| 'all_dependent_settings': { |
| 'defines': [ |
| 'USE_SYSTEM_LIBXML', |
| ], |
| 'include_dirs': [ |
| '$(SDKROOT)/usr/include/libxml2', |
| ], |
| }, |
| 'link_settings': { |
| 'xcode_settings': { |
| 'OTHER_LDFLAGS': [ |
| '-lxml2', |
| ], |
| }, |
| }, |
| }], |
| ], |
| }, { # else: !use_system_libxml |
| 'type': 'static_library', |
| 'sources': [ |
| # 'chromium/libxml_utils.h', |
| # 'chromium/libxml_utils.cc', |
| 'linux/config.h', |
| 'linux/include/libxml/xmlversion.h', |
| 'mac/config.h', |
| 'mac/include/libxml/xmlversion.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/DOCBparser.h', |
| 'src/include/libxml/encoding.h', |
| 'src/include/libxml/entities.h', |
| 'src/include/libxml/globals.h', |
| 'src/include/libxml/hash.h', |
| 'src/include/libxml/HTMLparser.h', |
| 'src/include/libxml/HTMLtree.h', |
| 'src/include/libxml/list.h', |
| 'src/include/libxml/parser.h', |
| 'src/include/libxml/parserInternals.h', |
| 'src/include/libxml/pattern.h', |
| 'src/include/libxml/relaxng.h', |
| 'src/include/libxml/SAX.h', |
| 'src/include/libxml/SAX2.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/xmlautomata.h', |
| 'src/include/libxml/xmlerror.h', |
| 'src/include/libxml/xmlexports.h', |
| 'src/include/libxml/xmlIO.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/buf.c', |
| 'src/buf.h', |
| 'src/c14n.c', |
| 'src/catalog.c', |
| 'src/chvalid.c', |
| 'src/debugXML.c', |
| 'src/dict.c', |
| # 'src/DOCBparser.c', |
| 'src/elfgcchack.h', |
| 'src/enc.h', |
| 'src/encoding.c', |
| 'src/entities.c', |
| 'src/error.c', |
| 'src/globals.c', |
| 'src/hash.c', |
| 'src/HTMLparser.c', |
| 'src/HTMLtree.c', |
| '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/SAX.c', |
| 'src/SAX2.c', |
| 'src/schematron.c', |
| 'src/threads.c', |
| 'src/timsort.h', |
| 'src/tree.c', |
| #'src/trio.c', |
| #'src/trio.h', |
| #'src/triodef.h', |
| #'src/trionan.c', |
| #'src/trionan.h', |
| #'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', |
| ], |
| 'defines': [ |
| # 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. (-DFOO |
| # defines the macro FOO as 1.) |
| 'LIBXML_STATIC=', |
| ], |
| 'include_dirs': [ |
| '<(os_include)', |
| '<(os_include)/include', |
| 'src/include', |
| ], |
| 'dependencies': [ |
| '../icu/icu.gyp:icuuc', |
| '../zlib/zlib.gyp:zlib', |
| ], |
| 'export_dependent_settings': [ |
| '../icu/icu.gyp:icuuc', |
| ], |
| 'direct_dependent_settings': { |
| 'defines': [ |
| 'LIBXML_STATIC', |
| ], |
| 'include_dirs': [ |
| '<(os_include)/include', |
| 'src/include', |
| ], |
| }, |
| 'msvs_disabled_warnings': [ |
| # Disable unimportant 'unused variable' warning. |
| # signed/unsigned comparison. |
| 4018, |
| # TODO(jschuh): http://crbug.com/167187 size_t -> int |
| 4267, |
| # TODO(brucedawson): http://crbug.com/554200 fix C4311 warnings |
| # C4311 is a VS 2015 64-bit warning for pointer truncation |
| 4311, |
| # Conversion from long (possibly 32-bit) to void* |
| 4312, |
| # Uninitialized local variable used. |
| 4700 |
| ], |
| 'conditions': [ |
| ['OS=="starboard" or OS=="lb_shell"', { |
| 'dependencies!': [ |
| '../zlib/zlib.gyp:zlib', |
| ], |
| }], |
| ['OS=="linux"', { |
| 'link_settings': { |
| 'libraries': [ |
| # We need dl for dlopen() and friends. |
| '-ldl', |
| '-lm', |
| ], |
| }, |
| }], |
| # 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. |
| ['OS=="mac" or OS=="android"', {'defines': ['_REENTRANT']}], |
| ['target_arch=="win"', { |
| 'product_name': 'libxml2', |
| }, { # else: OS!="win" |
| 'product_name': 'xml2', |
| }], |
| ['clang == 1', { |
| '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', |
| # See http://crbug.com/138571#c8 |
| '-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', |
| ], |
| }], |
| ], |
| }], |
| ['OS == "ios"', { |
| 'toolsets': ['host', 'target'], |
| }], |
| ], |
| }, |
| ], |
| } |
| |