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