xref: /aosp_15_r20/frameworks/av/media/ndk/Android.bp (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1*ec779b8eSAndroid Build Coastguard Worker// Copyright (C) 2016 The Android Open Source Project
2*ec779b8eSAndroid Build Coastguard Worker//
3*ec779b8eSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*ec779b8eSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*ec779b8eSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*ec779b8eSAndroid Build Coastguard Worker//
7*ec779b8eSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*ec779b8eSAndroid Build Coastguard Worker//
9*ec779b8eSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*ec779b8eSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*ec779b8eSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*ec779b8eSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*ec779b8eSAndroid Build Coastguard Worker// limitations under the License.
14*ec779b8eSAndroid Build Coastguard Worker
15*ec779b8eSAndroid Build Coastguard Worker// Headers module is in frameworks/av/Android.bp because modules are not allowed
16*ec779b8eSAndroid Build Coastguard Worker// to refer to headers in parent directories and the headers live in
17*ec779b8eSAndroid Build Coastguard Worker// frameworks/av/include.
18*ec779b8eSAndroid Build Coastguard Worker
19*ec779b8eSAndroid Build Coastguard Workerpackage {
20*ec779b8eSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_av_media_ndk_license"],
21*ec779b8eSAndroid Build Coastguard Worker}
22*ec779b8eSAndroid Build Coastguard Worker
23*ec779b8eSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
24*ec779b8eSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
25*ec779b8eSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
26*ec779b8eSAndroid Build Coastguard Worker//
27*ec779b8eSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
28*ec779b8eSAndroid Build Coastguard Worker//
29*ec779b8eSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
30*ec779b8eSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
31*ec779b8eSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
32*ec779b8eSAndroid Build Coastguard Worker//
33*ec779b8eSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
34*ec779b8eSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
35*ec779b8eSAndroid Build Coastguard Worker// used in the current project.
36*ec779b8eSAndroid Build Coastguard Worker// See: http://go/android-license-faq
37*ec779b8eSAndroid Build Coastguard Workerlicense {
38*ec779b8eSAndroid Build Coastguard Worker    name: "frameworks_av_media_ndk_license",
39*ec779b8eSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
40*ec779b8eSAndroid Build Coastguard Worker    license_kinds: [
41*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
42*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
43*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-Unicode-DFS",
44*ec779b8eSAndroid Build Coastguard Worker    ],
45*ec779b8eSAndroid Build Coastguard Worker    license_text: [
46*ec779b8eSAndroid Build Coastguard Worker        "NOTICE",
47*ec779b8eSAndroid Build Coastguard Worker    ],
48*ec779b8eSAndroid Build Coastguard Worker}
49*ec779b8eSAndroid Build Coastguard Worker
50*ec779b8eSAndroid Build Coastguard Workerndk_library {
51*ec779b8eSAndroid Build Coastguard Worker    name: "libmediandk",
52*ec779b8eSAndroid Build Coastguard Worker    symbol_file: "libmediandk.map.txt",
53*ec779b8eSAndroid Build Coastguard Worker    first_version: "21",
54*ec779b8eSAndroid Build Coastguard Worker    unversioned_until: "current",
55*ec779b8eSAndroid Build Coastguard Worker}
56*ec779b8eSAndroid Build Coastguard Worker
57*ec779b8eSAndroid Build Coastguard Workerndk_headers {
58*ec779b8eSAndroid Build Coastguard Worker    name: "libmediandk_headers",
59*ec779b8eSAndroid Build Coastguard Worker    from: "include/media",
60*ec779b8eSAndroid Build Coastguard Worker    to: "media",
61*ec779b8eSAndroid Build Coastguard Worker    srcs: ["include/media/**/*.h"],
62*ec779b8eSAndroid Build Coastguard Worker    license: "NOTICE",
63*ec779b8eSAndroid Build Coastguard Worker}
64*ec779b8eSAndroid Build Coastguard Worker
65*ec779b8eSAndroid Build Coastguard Worker// for use with header_libs
66*ec779b8eSAndroid Build Coastguard Worker// supports use as <media/NdkMediaExtractor.h> not <NdkMediaExtractor.h>
67*ec779b8eSAndroid Build Coastguard Workercc_library_headers {
68*ec779b8eSAndroid Build Coastguard Worker    name: "media_ndk_headers",
69*ec779b8eSAndroid Build Coastguard Worker    vendor_available: true,
70*ec779b8eSAndroid Build Coastguard Worker    // TODO(b/153609531): remove when no longer needed.
71*ec779b8eSAndroid Build Coastguard Worker    native_bridge_supported: true,
72*ec779b8eSAndroid Build Coastguard Worker    apex_available: [
73*ec779b8eSAndroid Build Coastguard Worker        "//apex_available:platform",
74*ec779b8eSAndroid Build Coastguard Worker        "com.android.media",
75*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec",
76*ec779b8eSAndroid Build Coastguard Worker    ],
77*ec779b8eSAndroid Build Coastguard Worker    min_sdk_version: "29",
78*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
79*ec779b8eSAndroid Build Coastguard Worker    host_supported: true,
80*ec779b8eSAndroid Build Coastguard Worker    target: {
81*ec779b8eSAndroid Build Coastguard Worker        darwin: {
82*ec779b8eSAndroid Build Coastguard Worker            enabled: false,
83*ec779b8eSAndroid Build Coastguard Worker        },
84*ec779b8eSAndroid Build Coastguard Worker    },
85*ec779b8eSAndroid Build Coastguard Worker}
86*ec779b8eSAndroid Build Coastguard Worker
87*ec779b8eSAndroid Build Coastguard Workercc_library_shared {
88*ec779b8eSAndroid Build Coastguard Worker    name: "libmediandk",
89*ec779b8eSAndroid Build Coastguard Worker    llndk: {
90*ec779b8eSAndroid Build Coastguard Worker        symbol_file: "libmediandk.map.txt",
91*ec779b8eSAndroid Build Coastguard Worker    },
92*ec779b8eSAndroid Build Coastguard Worker
93*ec779b8eSAndroid Build Coastguard Worker    srcs: [
94*ec779b8eSAndroid Build Coastguard Worker        "NdkJavaVMHelper.cpp",
95*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaCodec.cpp",
96*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaCodecInfo.cpp",
97*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaCodecStore.cpp",
98*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaCrypto.cpp",
99*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaDataSource.cpp",
100*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaExtractor.cpp",
101*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaFormat.cpp",
102*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaMuxer.cpp",
103*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaDrm.cpp",
104*ec779b8eSAndroid Build Coastguard Worker        "NdkImage.cpp",
105*ec779b8eSAndroid Build Coastguard Worker        "NdkImageReader.cpp",
106*ec779b8eSAndroid Build Coastguard Worker    ],
107*ec779b8eSAndroid Build Coastguard Worker
108*ec779b8eSAndroid Build Coastguard Worker    include_dirs: [
109*ec779b8eSAndroid Build Coastguard Worker        "system/media/camera/include",
110*ec779b8eSAndroid Build Coastguard Worker    ],
111*ec779b8eSAndroid Build Coastguard Worker
112*ec779b8eSAndroid Build Coastguard Worker    cflags: [
113*ec779b8eSAndroid Build Coastguard Worker        "-DEXPORT=__attribute__((visibility(\"default\")))",
114*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
115*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
116*ec779b8eSAndroid Build Coastguard Worker    ],
117*ec779b8eSAndroid Build Coastguard Worker
118*ec779b8eSAndroid Build Coastguard Worker    static_libs: [
119*ec779b8eSAndroid Build Coastguard Worker        "libgrallocusage",
120*ec779b8eSAndroid Build Coastguard Worker        "libnativehelper_lazy",
121*ec779b8eSAndroid Build Coastguard Worker    ],
122*ec779b8eSAndroid Build Coastguard Worker
123*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
124*ec779b8eSAndroid Build Coastguard Worker        "jni_headers",
125*ec779b8eSAndroid Build Coastguard Worker        "libmediadrm_headers",
126*ec779b8eSAndroid Build Coastguard Worker        "libmediametrics_headers",
127*ec779b8eSAndroid Build Coastguard Worker    ],
128*ec779b8eSAndroid Build Coastguard Worker
129*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
130*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
131*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
132*ec779b8eSAndroid Build Coastguard Worker        "libandroid_runtime_lazy",
133*ec779b8eSAndroid Build Coastguard Worker        "libbase",
134*ec779b8eSAndroid Build Coastguard Worker        "libdatasource",
135*ec779b8eSAndroid Build Coastguard Worker        "libmedia",
136*ec779b8eSAndroid Build Coastguard Worker        "libmedia_codeclist",
137*ec779b8eSAndroid Build Coastguard Worker        "libmedia_codeclist_capabilities",
138*ec779b8eSAndroid Build Coastguard Worker        "libmediadrm",
139*ec779b8eSAndroid Build Coastguard Worker        "libmedia_omx",
140*ec779b8eSAndroid Build Coastguard Worker        "libmedia_jni_utils",
141*ec779b8eSAndroid Build Coastguard Worker        "libstagefright",
142*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation",
143*ec779b8eSAndroid Build Coastguard Worker        "liblog",
144*ec779b8eSAndroid Build Coastguard Worker        "libutils",
145*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
146*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
147*ec779b8eSAndroid Build Coastguard Worker        "libhidlbase",
148*ec779b8eSAndroid Build Coastguard Worker        "libgui",
149*ec779b8eSAndroid Build Coastguard Worker        "libui",
150*ec779b8eSAndroid Build Coastguard Worker        "libmediandk_utils",
151*ec779b8eSAndroid Build Coastguard Worker        "android.hardware.drm-V1-ndk",
152*ec779b8eSAndroid Build Coastguard Worker    ],
153*ec779b8eSAndroid Build Coastguard Worker
154*ec779b8eSAndroid Build Coastguard Worker    export_header_lib_headers: ["jni_headers"],
155*ec779b8eSAndroid Build Coastguard Worker
156*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: [
157*ec779b8eSAndroid Build Coastguard Worker        "include",
158*ec779b8eSAndroid Build Coastguard Worker        "include_platform",
159*ec779b8eSAndroid Build Coastguard Worker    ],
160*ec779b8eSAndroid Build Coastguard Worker
161*ec779b8eSAndroid Build Coastguard Worker    export_shared_lib_headers: [
162*ec779b8eSAndroid Build Coastguard Worker        "libgui",
163*ec779b8eSAndroid Build Coastguard Worker    ],
164*ec779b8eSAndroid Build Coastguard Worker
165*ec779b8eSAndroid Build Coastguard Worker    version_script: "libmediandk.map.txt",
166*ec779b8eSAndroid Build Coastguard Worker    stubs: {
167*ec779b8eSAndroid Build Coastguard Worker        symbol_file: "libmediandk.map.txt",
168*ec779b8eSAndroid Build Coastguard Worker        versions: ["29"],
169*ec779b8eSAndroid Build Coastguard Worker    },
170*ec779b8eSAndroid Build Coastguard Worker}
171*ec779b8eSAndroid Build Coastguard Worker
172*ec779b8eSAndroid Build Coastguard Workercc_library {
173*ec779b8eSAndroid Build Coastguard Worker    name: "libmediandk_utils",
174*ec779b8eSAndroid Build Coastguard Worker
175*ec779b8eSAndroid Build Coastguard Worker    srcs: [
176*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaDataSourceCallbacks.cpp",
177*ec779b8eSAndroid Build Coastguard Worker    ],
178*ec779b8eSAndroid Build Coastguard Worker
179*ec779b8eSAndroid Build Coastguard Worker    local_include_dirs: [
180*ec779b8eSAndroid Build Coastguard Worker        "include",
181*ec779b8eSAndroid Build Coastguard Worker    ],
182*ec779b8eSAndroid Build Coastguard Worker
183*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: [
184*ec779b8eSAndroid Build Coastguard Worker        "include",
185*ec779b8eSAndroid Build Coastguard Worker    ],
186*ec779b8eSAndroid Build Coastguard Worker
187*ec779b8eSAndroid Build Coastguard Worker    cflags: [
188*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
189*ec779b8eSAndroid Build Coastguard Worker        "-Wno-error=deprecated-declarations",
190*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
191*ec779b8eSAndroid Build Coastguard Worker    ],
192*ec779b8eSAndroid Build Coastguard Worker
193*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
194*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_headers",
195*ec779b8eSAndroid Build Coastguard Worker        "libmedia_headers",
196*ec779b8eSAndroid Build Coastguard Worker    ],
197*ec779b8eSAndroid Build Coastguard Worker
198*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
199*ec779b8eSAndroid Build Coastguard Worker    ],
200*ec779b8eSAndroid Build Coastguard Worker
201*ec779b8eSAndroid Build Coastguard Worker    sanitize: {
202*ec779b8eSAndroid Build Coastguard Worker        misc_undefined: [
203*ec779b8eSAndroid Build Coastguard Worker            "unsigned-integer-overflow",
204*ec779b8eSAndroid Build Coastguard Worker            "signed-integer-overflow",
205*ec779b8eSAndroid Build Coastguard Worker        ],
206*ec779b8eSAndroid Build Coastguard Worker        cfi: true,
207*ec779b8eSAndroid Build Coastguard Worker    },
208*ec779b8eSAndroid Build Coastguard Worker}
209*ec779b8eSAndroid Build Coastguard Worker
210*ec779b8eSAndroid Build Coastguard Workercc_test {
211*ec779b8eSAndroid Build Coastguard Worker    name: "AImageReaderWindowTest",
212*ec779b8eSAndroid Build Coastguard Worker    test_suites: ["device-tests"],
213*ec779b8eSAndroid Build Coastguard Worker    srcs: ["tests/AImageReaderWindowTest.cpp"],
214*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
215*ec779b8eSAndroid Build Coastguard Worker        "libbinder",
216*ec779b8eSAndroid Build Coastguard Worker        "libmediandk",
217*ec779b8eSAndroid Build Coastguard Worker        "libmediautils",
218*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
219*ec779b8eSAndroid Build Coastguard Worker        "libgui",
220*ec779b8eSAndroid Build Coastguard Worker        "libhidlbase",
221*ec779b8eSAndroid Build Coastguard Worker        "libutils",
222*ec779b8eSAndroid Build Coastguard Worker        "libui",
223*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
224*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
225*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
226*ec779b8eSAndroid Build Coastguard Worker    ],
227*ec779b8eSAndroid Build Coastguard Worker
228*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
229*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation_headers",
230*ec779b8eSAndroid Build Coastguard Worker    ],
231*ec779b8eSAndroid Build Coastguard Worker
232*ec779b8eSAndroid Build Coastguard Worker    cflags: [
233*ec779b8eSAndroid Build Coastguard Worker        "-D__ANDROID_VNDK__",
234*ec779b8eSAndroid Build Coastguard Worker    ],
235*ec779b8eSAndroid Build Coastguard Worker}
236*ec779b8eSAndroid Build Coastguard Worker
237*ec779b8eSAndroid Build Coastguard Workercc_library_static {
238*ec779b8eSAndroid Build Coastguard Worker    name: "libmediandk_format",
239*ec779b8eSAndroid Build Coastguard Worker
240*ec779b8eSAndroid Build Coastguard Worker    host_supported: true,
241*ec779b8eSAndroid Build Coastguard Worker
242*ec779b8eSAndroid Build Coastguard Worker    srcs: [
243*ec779b8eSAndroid Build Coastguard Worker        "NdkMediaFormat.cpp",
244*ec779b8eSAndroid Build Coastguard Worker    ],
245*ec779b8eSAndroid Build Coastguard Worker
246*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
247*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation_headers",
248*ec779b8eSAndroid Build Coastguard Worker    ],
249*ec779b8eSAndroid Build Coastguard Worker
250*ec779b8eSAndroid Build Coastguard Worker    cflags: [
251*ec779b8eSAndroid Build Coastguard Worker        "-DEXPORT=__attribute__((visibility(\"default\")))",
252*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
253*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
254*ec779b8eSAndroid Build Coastguard Worker    ],
255*ec779b8eSAndroid Build Coastguard Worker
256*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
257*ec779b8eSAndroid Build Coastguard Worker
258*ec779b8eSAndroid Build Coastguard Worker    sanitize: {
259*ec779b8eSAndroid Build Coastguard Worker        misc_undefined: [
260*ec779b8eSAndroid Build Coastguard Worker            "unsigned-integer-overflow",
261*ec779b8eSAndroid Build Coastguard Worker            "signed-integer-overflow",
262*ec779b8eSAndroid Build Coastguard Worker        ],
263*ec779b8eSAndroid Build Coastguard Worker        cfi: true,
264*ec779b8eSAndroid Build Coastguard Worker    },
265*ec779b8eSAndroid Build Coastguard Worker
266*ec779b8eSAndroid Build Coastguard Worker    target: {
267*ec779b8eSAndroid Build Coastguard Worker        darwin: {
268*ec779b8eSAndroid Build Coastguard Worker            enabled: false,
269*ec779b8eSAndroid Build Coastguard Worker        },
270*ec779b8eSAndroid Build Coastguard Worker    },
271*ec779b8eSAndroid Build Coastguard Worker
272*ec779b8eSAndroid Build Coastguard Worker    apex_available: [
273*ec779b8eSAndroid Build Coastguard Worker        "//apex_available:platform",
274*ec779b8eSAndroid Build Coastguard Worker        "com.android.media",
275*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec",
276*ec779b8eSAndroid Build Coastguard Worker    ],
277*ec779b8eSAndroid Build Coastguard Worker}
278