xref: /aosp_15_r20/external/libopenapv/Android.bp (revision abb65b4b03b69e1d508d4d9a44dcf199df16e7c3)
1package {
2    default_applicable_licenses: ["external_libapv_license"],
3}
4
5// Added automatically by a large-scale-change
6// See: http://go/android-license-faq
7license {
8    name: "external_libapv_license",
9    visibility: [":__subpackages__"],
10    license_kinds: [
11        "SPDX-license-identifier-BSD",
12    ],
13    license_text: [
14        "LICENSE",
15    ],
16}
17
18cc_library_headers {
19    name: "libopenapv_headers",
20    export_include_dirs: [
21        "inc",
22    ],
23    min_sdk_version: "apex_inherit",
24}
25
26cc_library_static {
27    name: "libopenapv",
28    vendor_available: true,
29    host_supported: true,
30
31    shared_libs: [
32        "liblog",
33    ],
34
35    srcs: [
36        "src/oapv.c",
37        "src/oapv_bs.c",
38        "src/oapv_metadata.c",
39        "src/oapv_port.c",
40        "src/oapv_rc.c",
41        "src/oapv_sad.c",
42        "src/oapv_tbl.c",
43        "src/oapv_tpool.c",
44        "src/oapv_tq.c",
45        "src/oapv_util.c",
46        "src/oapv_vlc.c",
47    ],
48
49    local_include_dirs: [
50        "inc",
51        "src",
52    ],
53
54    export_include_dirs: [
55        "inc",
56    ],
57
58    cflags: [
59        "-DOAPV_STATIC_DEFINE",
60        "-Wno-multichar",
61        "-Wall",
62        "-Werror",
63        "-Wno-unused-parameter",
64        "-Wno-pointer-sign",
65        "-Wno-reorder",
66        "-Wno-#warnings",
67        "-Wuninitialized",
68        "-Wno-self-assign",
69        "-Wno-implicit-fallthrough",
70        "-Wtautological-pointer-compare",
71        "-Wimplicit-function-declaration",
72        "-Wunused-but-set-variable",
73        "-ftree-vectorize",
74        "-finline-functions",
75    ],
76
77    arch: {
78        arm64: {
79            local_include_dirs: [
80                "src/neon",
81            ],
82
83            srcs: [
84                "src/neon/oapv_sad_neon.c",
85                "src/neon/oapv_tq_neon.c",
86            ],
87        },
88
89        arm: {
90            cflags: [
91                "-Wno-ignored-qualifiers",
92            ],
93        },
94
95        x86_64: {
96            local_include_dirs: [
97                "src/avx",
98                "src/sse",
99            ],
100
101            cflags: [
102                "-mavx2",
103            ],
104
105            srcs: [
106                "src/avx/oapv_sad_avx.c",
107                "src/avx/oapv_tq_avx.c",
108                "src/sse/oapv_sad_sse.c",
109                "src/sse/oapv_tq_sse.c",
110            ],
111        },
112
113        x86: {
114            local_include_dirs: [
115                "src/avx",
116                "src/sse",
117            ],
118
119            cflags: [
120                "-mavx2",
121            ],
122            srcs: [
123                "src/avx/oapv_sad_avx.c",
124                "src/avx/oapv_tq_avx.c",
125                "src/sse/oapv_sad_sse.c",
126                "src/sse/oapv_tq_sse.c",
127            ],
128        },
129    },
130
131    sanitize: {
132        integer_overflow: true,
133        misc_undefined: ["bounds"],
134        cfi: true,
135        scs: true,
136
137        config: {
138            cfi_assembly_support: true,
139        },
140    },
141
142    apex_available: [
143        "//apex_available:platform",
144        "com.android.media.swcodec",
145    ],
146    min_sdk_version: "apex_inherit",
147}
148
149cc_fuzz {
150    name: "oapv_fuzzer",
151    host_supported: true,
152
153    srcs: [
154        "android/oapv_fuzzer.c",
155    ],
156
157    cflags: [
158        "-DOAPV_STATIC_DEFINE",
159    ],
160
161    static_libs: [
162        "libopenapv",
163    ],
164
165    fuzz_config: {
166        cc: ["[email protected]"],
167        componentid: 25690,
168    },
169}
170