1 # Copyright (c) 2009 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 { 6 'variables': { 7 'conditions': [ 8 ['os_posix == 1 and OS != "mac"', { 9 'os_include': 'linux' 10 }], 11 ['OS=="mac"', {'os_include': 'mac'}], 12 ['OS=="win"', {'os_include': 'win32'}], 13 ], 14 # We used to have a separate flag for using the system 15 # libxslt, but it seems mixing Chrome libxml and system 16 # libxslt causes crashes that nobody has had time to diagnose. 17 # So just put them both behind the same flag for now. 18 'use_system_libxml%': 0, 19 }, 20 'targets': [ 21 { 22 'target_name': 'libxslt', 23 'conditions': [ 24 ['os_posix == 1 and OS != "mac" and use_system_libxml', { 25 'type': 'none', 26 'direct_dependent_settings': { 27 'cflags': [ 28 '<!@(pkg-config --cflags libxslt)', 29 ], 30 }, 31 'link_settings': { 32 'ldflags': [ 33 '<!@(pkg-config --libs-only-L --libs-only-other libxslt)', 34 ], 35 'libraries': [ 36 '<!@(pkg-config --libs-only-l libxslt)', 37 ], 38 }, 39 }, { # else: os_posix != 1 or OS == "mac" or ! use_system_libxml 40 'type': 'static_library', 41 'sources': [ 42 'libxslt/attributes.c', 43 'libxslt/attributes.h', 44 'libxslt/attrvt.c', 45 'libxslt/documents.c', 46 'libxslt/documents.h', 47 'libxslt/extensions.c', 48 'libxslt/extensions.h', 49 'libxslt/extra.c', 50 'libxslt/extra.h', 51 'libxslt/functions.c', 52 'libxslt/functions.h', 53 'libxslt/imports.c', 54 'libxslt/imports.h', 55 'libxslt/keys.c', 56 'libxslt/keys.h', 57 'libxslt/libxslt.h', 58 'libxslt/namespaces.c', 59 'libxslt/namespaces.h', 60 'libxslt/numbers.c', 61 'libxslt/numbersInternals.h', 62 'libxslt/pattern.c', 63 'libxslt/pattern.h', 64 'libxslt/preproc.c', 65 'libxslt/preproc.h', 66 'libxslt/security.c', 67 'libxslt/security.h', 68 'libxslt/templates.c', 69 'libxslt/templates.h', 70 'libxslt/transform.c', 71 'libxslt/transform.h', 72 'libxslt/trio.h', 73 'libxslt/triodef.h', 74 'libxslt/variables.c', 75 'libxslt/variables.h', 76 'libxslt/win32config.h', 77 'libxslt/xslt.c', 78 'libxslt/xslt.h', 79 'libxslt/xsltconfig.h', 80 'libxslt/xsltexports.h', 81 'libxslt/xsltInternals.h', 82 'libxslt/xsltlocale.c', 83 'libxslt/xsltlocale.h', 84 'libxslt/xsltutils.c', 85 'libxslt/xsltutils.h', 86 'libxslt/xsltwin32config.h', 87 'linux/config.h', 88 'mac/config.h', 89 # TODO(port): Need a pregenerated win32/config.h? 90 ], 91 'defines': [ 92 'LIBXSLT_STATIC', 93 ], 94 'include_dirs': [ 95 '<(os_include)', 96 '.', 97 ], 98 'dependencies': [ 99 '../libxml/libxml.gyp:libxml', 100 ], 101 'direct_dependent_settings': { 102 'defines': [ 103 'LIBXSLT_STATIC', 104 ], 105 'include_dirs': [ 106 '.', 107 ], 108 }, 109 'conditions': [ 110 ['OS!="win"', {'product_name': 'xslt'}], 111 ['clang == 1', { 112 'xcode_settings': { 113 'WARNING_CFLAGS': [ 114 # libxslt stores a char[3] in a `const unsigned char*`. 115 '-Wno-pointer-sign', 116 ], 117 }, 118 'cflags': [ 119 '-Wno-pointer-sign', 120 ], 121 }], 122 ], 123 }], 124 ], 125 }, 126 ], 127 } 128