xref: /aosp_15_r20/frameworks/av/camera/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_team: "trendy_team_camera_framework",
21*ec779b8eSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_av_camera_ndk_license"],
22*ec779b8eSAndroid Build Coastguard Worker}
23*ec779b8eSAndroid Build Coastguard Worker
24*ec779b8eSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
25*ec779b8eSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
26*ec779b8eSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
27*ec779b8eSAndroid Build Coastguard Worker//
28*ec779b8eSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
29*ec779b8eSAndroid Build Coastguard Worker//
30*ec779b8eSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
31*ec779b8eSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
32*ec779b8eSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
33*ec779b8eSAndroid Build Coastguard Worker//
34*ec779b8eSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
35*ec779b8eSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
36*ec779b8eSAndroid Build Coastguard Worker// used in the current project.
37*ec779b8eSAndroid Build Coastguard Worker// See: http://go/android-license-faq
38*ec779b8eSAndroid Build Coastguard Workerlicense {
39*ec779b8eSAndroid Build Coastguard Worker    name: "frameworks_av_camera_ndk_license",
40*ec779b8eSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
41*ec779b8eSAndroid Build Coastguard Worker    license_kinds: [
42*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
43*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
44*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-Unicode-DFS",
45*ec779b8eSAndroid Build Coastguard Worker    ],
46*ec779b8eSAndroid Build Coastguard Worker    license_text: [
47*ec779b8eSAndroid Build Coastguard Worker        "NOTICE",
48*ec779b8eSAndroid Build Coastguard Worker    ],
49*ec779b8eSAndroid Build Coastguard Worker}
50*ec779b8eSAndroid Build Coastguard Worker
51*ec779b8eSAndroid Build Coastguard Workerndk_library {
52*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera2ndk",
53*ec779b8eSAndroid Build Coastguard Worker    symbol_file: "libcamera2ndk.map.txt",
54*ec779b8eSAndroid Build Coastguard Worker    first_version: "24",
55*ec779b8eSAndroid Build Coastguard Worker    unversioned_until: "current",
56*ec779b8eSAndroid Build Coastguard Worker}
57*ec779b8eSAndroid Build Coastguard Worker
58*ec779b8eSAndroid Build Coastguard Workerndk_headers {
59*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera2ndk_headers",
60*ec779b8eSAndroid Build Coastguard Worker    from: "include/camera",
61*ec779b8eSAndroid Build Coastguard Worker    to: "camera",
62*ec779b8eSAndroid Build Coastguard Worker    srcs: ["include/camera/**/*.h"],
63*ec779b8eSAndroid Build Coastguard Worker    license: "NOTICE",
64*ec779b8eSAndroid Build Coastguard Worker}
65*ec779b8eSAndroid Build Coastguard Worker
66*ec779b8eSAndroid Build Coastguard Workercc_library_shared {
67*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera2ndk",
68*ec779b8eSAndroid Build Coastguard Worker    srcs: [
69*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraCaptureSession.cpp",
70*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraDevice.cpp",
71*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraManager.cpp",
72*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraMetadata.cpp",
73*ec779b8eSAndroid Build Coastguard Worker        "NdkCaptureRequest.cpp",
74*ec779b8eSAndroid Build Coastguard Worker        "impl/ACameraCaptureSession.cpp",
75*ec779b8eSAndroid Build Coastguard Worker        "impl/ACameraDevice.cpp",
76*ec779b8eSAndroid Build Coastguard Worker        "impl/ACameraManager.cpp",
77*ec779b8eSAndroid Build Coastguard Worker        "impl/ACameraMetadata.cpp",
78*ec779b8eSAndroid Build Coastguard Worker    ],
79*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
80*ec779b8eSAndroid Build Coastguard Worker        "android.companion.virtual.virtualdevice_aidl-cpp",
81*ec779b8eSAndroid Build Coastguard Worker        "android.companion.virtualdevice.flags-aconfig-cc",
82*ec779b8eSAndroid Build Coastguard Worker        "android.hardware.common-V2-cpp",
83*ec779b8eSAndroid Build Coastguard Worker        "android.hardware.common.fmq-V1-cpp",
84*ec779b8eSAndroid Build Coastguard Worker        "camera_platform_flags_c_lib",
85*ec779b8eSAndroid Build Coastguard Worker        "framework-permission-aidl-cpp",
86*ec779b8eSAndroid Build Coastguard Worker        "libandroid_runtime",
87*ec779b8eSAndroid Build Coastguard Worker        "libbinder",
88*ec779b8eSAndroid Build Coastguard Worker        "libcamera_client",
89*ec779b8eSAndroid Build Coastguard Worker        "libcamera_metadata",
90*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
91*ec779b8eSAndroid Build Coastguard Worker        "libfmq",
92*ec779b8eSAndroid Build Coastguard Worker        "libgui",
93*ec779b8eSAndroid Build Coastguard Worker        "liblog",
94*ec779b8eSAndroid Build Coastguard Worker        "libmediandk",
95*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
96*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation",
97*ec779b8eSAndroid Build Coastguard Worker        "libutils",
98*ec779b8eSAndroid Build Coastguard Worker    ],
99*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
100*ec779b8eSAndroid Build Coastguard Worker        "jni_headers",
101*ec779b8eSAndroid Build Coastguard Worker    ],
102*ec779b8eSAndroid Build Coastguard Worker    cflags: [
103*ec779b8eSAndroid Build Coastguard Worker        "-DEXPORT=__attribute__((visibility(\"default\")))",
104*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
105*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
106*ec779b8eSAndroid Build Coastguard Worker        "-Wextra",
107*ec779b8eSAndroid Build Coastguard Worker        "-fvisibility=hidden",
108*ec779b8eSAndroid Build Coastguard Worker    ],
109*ec779b8eSAndroid Build Coastguard Worker    // TODO: jchowdhary@, use header_libs instead b/131165718
110*ec779b8eSAndroid Build Coastguard Worker    include_dirs: [
111*ec779b8eSAndroid Build Coastguard Worker        "system/media/private/camera/include",
112*ec779b8eSAndroid Build Coastguard Worker    ],
113*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
114*ec779b8eSAndroid Build Coastguard Worker    export_shared_lib_headers: [
115*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
116*ec779b8eSAndroid Build Coastguard Worker    ],
117*ec779b8eSAndroid Build Coastguard Worker    version_script: "libcamera2ndk.map.txt",
118*ec779b8eSAndroid Build Coastguard Worker}
119*ec779b8eSAndroid Build Coastguard Worker
120*ec779b8eSAndroid Build Coastguard Workercc_library_shared {
121*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera2ndk_vendor",
122*ec779b8eSAndroid Build Coastguard Worker    cpp_std: "gnu++17",
123*ec779b8eSAndroid Build Coastguard Worker    vendor: true,
124*ec779b8eSAndroid Build Coastguard Worker    srcs: [
125*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraCaptureSession.cpp",
126*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraDevice.cpp",
127*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraManager.cpp",
128*ec779b8eSAndroid Build Coastguard Worker        "NdkCameraMetadata.cpp",
129*ec779b8eSAndroid Build Coastguard Worker        "NdkCaptureRequest.cpp",
130*ec779b8eSAndroid Build Coastguard Worker        "impl/ACameraCaptureSession.cpp",
131*ec779b8eSAndroid Build Coastguard Worker        "impl/ACameraMetadata.cpp",
132*ec779b8eSAndroid Build Coastguard Worker        "ndk_vendor/impl/ACameraDevice.cpp",
133*ec779b8eSAndroid Build Coastguard Worker        "ndk_vendor/impl/ACameraManager.cpp",
134*ec779b8eSAndroid Build Coastguard Worker        "ndk_vendor/impl/utils.cpp",
135*ec779b8eSAndroid Build Coastguard Worker    ],
136*ec779b8eSAndroid Build Coastguard Worker
137*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
138*ec779b8eSAndroid Build Coastguard Worker    export_shared_lib_headers: [
139*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
140*ec779b8eSAndroid Build Coastguard Worker    ],
141*ec779b8eSAndroid Build Coastguard Worker    local_include_dirs: [
142*ec779b8eSAndroid Build Coastguard Worker        ".",
143*ec779b8eSAndroid Build Coastguard Worker        "impl",
144*ec779b8eSAndroid Build Coastguard Worker        "include",
145*ec779b8eSAndroid Build Coastguard Worker    ],
146*ec779b8eSAndroid Build Coastguard Worker    cflags: [
147*ec779b8eSAndroid Build Coastguard Worker        "-DEXPORT=__attribute__((visibility(\"default\")))",
148*ec779b8eSAndroid Build Coastguard Worker        "-D__ANDROID_VNDK__",
149*ec779b8eSAndroid Build Coastguard Worker        "-fvisibility=hidden",
150*ec779b8eSAndroid Build Coastguard Worker    ],
151*ec779b8eSAndroid Build Coastguard Worker
152*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
153*ec779b8eSAndroid Build Coastguard Worker        "android.frameworks.cameraservice.common-V1-ndk",
154*ec779b8eSAndroid Build Coastguard Worker        "android.frameworks.cameraservice.device-V3-ndk",
155*ec779b8eSAndroid Build Coastguard Worker        "android.frameworks.cameraservice.service-V3-ndk",
156*ec779b8eSAndroid Build Coastguard Worker        "libbinder_ndk",
157*ec779b8eSAndroid Build Coastguard Worker        "libcamera_metadata",
158*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
159*ec779b8eSAndroid Build Coastguard Worker        "libfmq",
160*ec779b8eSAndroid Build Coastguard Worker        "libhardware",
161*ec779b8eSAndroid Build Coastguard Worker        "libhidlbase",
162*ec779b8eSAndroid Build Coastguard Worker        "liblog",
163*ec779b8eSAndroid Build Coastguard Worker        "libmediandk",
164*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
165*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation",
166*ec779b8eSAndroid Build Coastguard Worker        "libutils",
167*ec779b8eSAndroid Build Coastguard Worker    ],
168*ec779b8eSAndroid Build Coastguard Worker    static_libs: [
169*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
170*ec779b8eSAndroid Build Coastguard Worker        "libaidlcommonsupport",
171*ec779b8eSAndroid Build Coastguard Worker        "libarect",
172*ec779b8eSAndroid Build Coastguard Worker    ],
173*ec779b8eSAndroid Build Coastguard Worker    // TODO: jchowdhary@, use header_libs instead b/131165718
174*ec779b8eSAndroid Build Coastguard Worker    include_dirs: [
175*ec779b8eSAndroid Build Coastguard Worker        "system/media/private/camera/include",
176*ec779b8eSAndroid Build Coastguard Worker    ],
177*ec779b8eSAndroid Build Coastguard Worker}
178*ec779b8eSAndroid Build Coastguard Worker
179*ec779b8eSAndroid Build Coastguard Workercc_test {
180*ec779b8eSAndroid Build Coastguard Worker    name: "ACameraNdkVendorTest",
181*ec779b8eSAndroid Build Coastguard Worker    vendor: true,
182*ec779b8eSAndroid Build Coastguard Worker    srcs: [
183*ec779b8eSAndroid Build Coastguard Worker        "ndk_vendor/tests/ACameraManagerTest.cpp",
184*ec779b8eSAndroid Build Coastguard Worker        "ndk_vendor/tests/AImageReaderVendorTest.cpp",
185*ec779b8eSAndroid Build Coastguard Worker    ],
186*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
187*ec779b8eSAndroid Build Coastguard Worker        "libcamera2ndk_vendor",
188*ec779b8eSAndroid Build Coastguard Worker        "libcamera_metadata",
189*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
190*ec779b8eSAndroid Build Coastguard Worker        "libhidlbase",
191*ec779b8eSAndroid Build Coastguard Worker        "liblog",
192*ec779b8eSAndroid Build Coastguard Worker        "libmediandk",
193*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
194*ec779b8eSAndroid Build Coastguard Worker        "libui",
195*ec779b8eSAndroid Build Coastguard Worker        "libutils",
196*ec779b8eSAndroid Build Coastguard Worker    ],
197*ec779b8eSAndroid Build Coastguard Worker    static_libs: [
198*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
199*ec779b8eSAndroid Build Coastguard Worker    ],
200*ec779b8eSAndroid Build Coastguard Worker    cflags: [
201*ec779b8eSAndroid Build Coastguard Worker        "-D__ANDROID_VNDK__",
202*ec779b8eSAndroid Build Coastguard Worker    ],
203*ec779b8eSAndroid Build Coastguard Worker}
204