1*6be67779SAndroid Build Coastguard Worker// We need to build this for both the device (as a shared library) 2*6be67779SAndroid Build Coastguard Worker// and the host (as a static library for tools to use). 3*6be67779SAndroid Build Coastguard Worker 4*6be67779SAndroid Build Coastguard Worker// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE 5*6be67779SAndroid Build Coastguard Worker// CONSULT THE OWNERS AND [email protected] BEFORE 6*6be67779SAndroid Build Coastguard Worker// DEPENDING ON IT IN YOUR PROJECT. *** 7*6be67779SAndroid Build Coastguard Workerpackage { 8*6be67779SAndroid Build Coastguard Worker default_applicable_licenses: ["external_expat_license"], 9*6be67779SAndroid Build Coastguard Worker} 10*6be67779SAndroid Build Coastguard Worker 11*6be67779SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of 12*6be67779SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect 13*6be67779SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct. 14*6be67779SAndroid Build Coastguard Worker// 15*6be67779SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory. 16*6be67779SAndroid Build Coastguard Worker// 17*6be67779SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses, 18*6be67779SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the 19*6be67779SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed. 20*6be67779SAndroid Build Coastguard Worker// 21*6be67779SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private" 22*6be67779SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be 23*6be67779SAndroid Build Coastguard Worker// used in the current project. 24*6be67779SAndroid Build Coastguard Worker// See: http://go/android-license-faq 25*6be67779SAndroid Build Coastguard Workerlicense { 26*6be67779SAndroid Build Coastguard Worker name: "external_expat_license", 27*6be67779SAndroid Build Coastguard Worker visibility: [":__subpackages__"], 28*6be67779SAndroid Build Coastguard Worker license_kinds: [ 29*6be67779SAndroid Build Coastguard Worker "SPDX-license-identifier-CC0-1.0", 30*6be67779SAndroid Build Coastguard Worker "SPDX-license-identifier-GFDL", // by exception only 31*6be67779SAndroid Build Coastguard Worker "SPDX-license-identifier-MIT", 32*6be67779SAndroid Build Coastguard Worker "legacy_notice", 33*6be67779SAndroid Build Coastguard Worker "legacy_unencumbered", 34*6be67779SAndroid Build Coastguard Worker ], 35*6be67779SAndroid Build Coastguard Worker license_text: [ 36*6be67779SAndroid Build Coastguard Worker "COPYING", 37*6be67779SAndroid Build Coastguard Worker ], 38*6be67779SAndroid Build Coastguard Worker} 39*6be67779SAndroid Build Coastguard Worker 40*6be67779SAndroid Build Coastguard Workercc_library { 41*6be67779SAndroid Build Coastguard Worker name: "libexpat", 42*6be67779SAndroid Build Coastguard Worker vendor_available: true, 43*6be67779SAndroid Build Coastguard Worker product_available: true, 44*6be67779SAndroid Build Coastguard Worker double_loadable: true, 45*6be67779SAndroid Build Coastguard Worker host_supported: true, 46*6be67779SAndroid Build Coastguard Worker unique_host_soname: true, 47*6be67779SAndroid Build Coastguard Worker sdk_version: "26", 48*6be67779SAndroid Build Coastguard Worker 49*6be67779SAndroid Build Coastguard Worker srcs: [ 50*6be67779SAndroid Build Coastguard Worker "expat/lib/xmlparse.c", 51*6be67779SAndroid Build Coastguard Worker "expat/lib/xmlrole.c", 52*6be67779SAndroid Build Coastguard Worker "expat/lib/xmltok.c", 53*6be67779SAndroid Build Coastguard Worker ], 54*6be67779SAndroid Build Coastguard Worker cflags: [ 55*6be67779SAndroid Build Coastguard Worker "-fno-strict-aliasing", 56*6be67779SAndroid Build Coastguard Worker "-Wall", 57*6be67779SAndroid Build Coastguard Worker "-Werror", 58*6be67779SAndroid Build Coastguard Worker "-Wmissing-prototypes", 59*6be67779SAndroid Build Coastguard Worker "-Wstrict-prototypes", 60*6be67779SAndroid Build Coastguard Worker "-DHAVE_EXPAT_CONFIG_H", 61*6be67779SAndroid Build Coastguard Worker "-UWIN32_LEAN_AND_MEAN", 62*6be67779SAndroid Build Coastguard Worker // As of 2.4.6, xmlparse.c includes expat_config.h *before* including 63*6be67779SAndroid Build Coastguard Worker // any system header file, meaning that __BIONIC__ and __GLIBC__ and so 64*6be67779SAndroid Build Coastguard Worker // on aren't set, but our modifications to have one expat_config.h for 65*6be67779SAndroid Build Coastguard Worker // all targets rely on those defines. 66*6be67779SAndroid Build Coastguard Worker "-include stdio.h", 67*6be67779SAndroid Build Coastguard Worker ], 68*6be67779SAndroid Build Coastguard Worker 69*6be67779SAndroid Build Coastguard Worker target: { 70*6be67779SAndroid Build Coastguard Worker darwin: { 71*6be67779SAndroid Build Coastguard Worker cflags: ["-fno-common"], 72*6be67779SAndroid Build Coastguard Worker }, 73*6be67779SAndroid Build Coastguard Worker windows: { 74*6be67779SAndroid Build Coastguard Worker enabled: true, 75*6be67779SAndroid Build Coastguard Worker }, 76*6be67779SAndroid Build Coastguard Worker android: { 77*6be67779SAndroid Build Coastguard Worker sanitize: { 78*6be67779SAndroid Build Coastguard Worker integer_overflow: true, 79*6be67779SAndroid Build Coastguard Worker misc_undefined: ["bounds"], 80*6be67779SAndroid Build Coastguard Worker }, 81*6be67779SAndroid Build Coastguard Worker }, 82*6be67779SAndroid Build Coastguard Worker }, 83*6be67779SAndroid Build Coastguard Worker 84*6be67779SAndroid Build Coastguard Worker stl: "none", 85*6be67779SAndroid Build Coastguard Worker local_include_dirs: ["lib"], 86*6be67779SAndroid Build Coastguard Worker export_include_dirs: ["lib"], 87*6be67779SAndroid Build Coastguard Worker 88*6be67779SAndroid Build Coastguard Worker sanitize: { 89*6be67779SAndroid Build Coastguard Worker blocklist: "libexpat_blocklist.txt", 90*6be67779SAndroid Build Coastguard Worker }, 91*6be67779SAndroid Build Coastguard Worker 92*6be67779SAndroid Build Coastguard Worker apex_available: [ 93*6be67779SAndroid Build Coastguard Worker "//apex_available:platform", 94*6be67779SAndroid Build Coastguard Worker "com.android.art", 95*6be67779SAndroid Build Coastguard Worker "com.android.art.debug", 96*6be67779SAndroid Build Coastguard Worker ], 97*6be67779SAndroid Build Coastguard Worker min_sdk_version: "apex_inherit", 98*6be67779SAndroid Build Coastguard Worker} 99