xref: /aosp_15_r20/frameworks/av/camera/Android.bp (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1*ec779b8eSAndroid Build Coastguard Worker// Copyright 2010 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 Workerpackage {
16*ec779b8eSAndroid Build Coastguard Worker    default_team: "trendy_team_camera_framework",
17*ec779b8eSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_av_camera_license"],
18*ec779b8eSAndroid Build Coastguard Worker}
19*ec779b8eSAndroid Build Coastguard Worker
20*ec779b8eSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
21*ec779b8eSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
22*ec779b8eSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
23*ec779b8eSAndroid Build Coastguard Worker//
24*ec779b8eSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25*ec779b8eSAndroid Build Coastguard Worker//
26*ec779b8eSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
27*ec779b8eSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
28*ec779b8eSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
29*ec779b8eSAndroid Build Coastguard Worker//
30*ec779b8eSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31*ec779b8eSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
32*ec779b8eSAndroid Build Coastguard Worker// used in the current project.
33*ec779b8eSAndroid Build Coastguard Worker// See: http://go/android-license-faq
34*ec779b8eSAndroid Build Coastguard Workerlicense {
35*ec779b8eSAndroid Build Coastguard Worker    name: "frameworks_av_camera_license",
36*ec779b8eSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
37*ec779b8eSAndroid Build Coastguard Worker    license_kinds: [
38*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
39*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
40*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-Unicode-DFS",
41*ec779b8eSAndroid Build Coastguard Worker    ],
42*ec779b8eSAndroid Build Coastguard Worker    license_text: [
43*ec779b8eSAndroid Build Coastguard Worker        "NOTICE",
44*ec779b8eSAndroid Build Coastguard Worker    ],
45*ec779b8eSAndroid Build Coastguard Worker}
46*ec779b8eSAndroid Build Coastguard Worker
47*ec779b8eSAndroid Build Coastguard Workeraconfig_declarations {
48*ec779b8eSAndroid Build Coastguard Worker    name: "camera_platform_flags",
49*ec779b8eSAndroid Build Coastguard Worker    package: "com.android.internal.camera.flags",
50*ec779b8eSAndroid Build Coastguard Worker    container: "system",
51*ec779b8eSAndroid Build Coastguard Worker    srcs: ["camera_platform.aconfig"],
52*ec779b8eSAndroid Build Coastguard Worker}
53*ec779b8eSAndroid Build Coastguard Worker
54*ec779b8eSAndroid Build Coastguard Workercc_aconfig_library {
55*ec779b8eSAndroid Build Coastguard Worker    name: "camera_platform_flags_c_lib",
56*ec779b8eSAndroid Build Coastguard Worker    aconfig_declarations: "camera_platform_flags",
57*ec779b8eSAndroid Build Coastguard Worker}
58*ec779b8eSAndroid Build Coastguard Worker
59*ec779b8eSAndroid Build Coastguard Workercc_aconfig_library {
60*ec779b8eSAndroid Build Coastguard Worker    name: "camera_platform_flags_c_lib_for_test",
61*ec779b8eSAndroid Build Coastguard Worker    aconfig_declarations: "camera_platform_flags",
62*ec779b8eSAndroid Build Coastguard Worker    host_supported: true,
63*ec779b8eSAndroid Build Coastguard Worker    mode: "test",
64*ec779b8eSAndroid Build Coastguard Worker}
65*ec779b8eSAndroid Build Coastguard Worker
66*ec779b8eSAndroid Build Coastguard Workerjava_aconfig_library {
67*ec779b8eSAndroid Build Coastguard Worker    name: "camera_platform_flags_java_lib",
68*ec779b8eSAndroid Build Coastguard Worker    aconfig_declarations: "camera_platform_flags",
69*ec779b8eSAndroid Build Coastguard Worker}
70*ec779b8eSAndroid Build Coastguard Worker
71*ec779b8eSAndroid Build Coastguard Workercc_library_headers {
72*ec779b8eSAndroid Build Coastguard Worker    name: "camera_headers",
73*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
74*ec779b8eSAndroid Build Coastguard Worker}
75*ec779b8eSAndroid Build Coastguard Worker
76*ec779b8eSAndroid Build Coastguard Workercc_library {
77*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera_client",
78*ec779b8eSAndroid Build Coastguard Worker
79*ec779b8eSAndroid Build Coastguard Worker    aidl: {
80*ec779b8eSAndroid Build Coastguard Worker        export_aidl_headers: true,
81*ec779b8eSAndroid Build Coastguard Worker        local_include_dirs: ["aidl"],
82*ec779b8eSAndroid Build Coastguard Worker        include_dirs: [
83*ec779b8eSAndroid Build Coastguard Worker            "frameworks/native/aidl/gui",
84*ec779b8eSAndroid Build Coastguard Worker            "frameworks/native/libs/permission/aidl",
85*ec779b8eSAndroid Build Coastguard Worker            "hardware/interfaces/common/fmq/aidl",
86*ec779b8eSAndroid Build Coastguard Worker            "hardware/interfaces/common/aidl",
87*ec779b8eSAndroid Build Coastguard Worker        ],
88*ec779b8eSAndroid Build Coastguard Worker    },
89*ec779b8eSAndroid Build Coastguard Worker
90*ec779b8eSAndroid Build Coastguard Worker    srcs: [
91*ec779b8eSAndroid Build Coastguard Worker        // AIDL files for camera interfaces
92*ec779b8eSAndroid Build Coastguard Worker        // The headers for these interfaces will be available to any modules that
93*ec779b8eSAndroid Build Coastguard Worker        // include libcamera_client, at the path "aidl/package/path/BnFoo.h"
94*ec779b8eSAndroid Build Coastguard Worker        ":libcamera_client_aidl",
95*ec779b8eSAndroid Build Coastguard Worker
96*ec779b8eSAndroid Build Coastguard Worker        // Source for camera interface parcelables, and manually-written interfaces
97*ec779b8eSAndroid Build Coastguard Worker        "Camera.cpp",
98*ec779b8eSAndroid Build Coastguard Worker        "CameraBase.cpp",
99*ec779b8eSAndroid Build Coastguard Worker        "CameraMetadata.cpp",
100*ec779b8eSAndroid Build Coastguard Worker        "CameraParameters.cpp",
101*ec779b8eSAndroid Build Coastguard Worker        "CameraParameters2.cpp",
102*ec779b8eSAndroid Build Coastguard Worker        "CameraSessionStats.cpp",
103*ec779b8eSAndroid Build Coastguard Worker        "CameraUtils.cpp",
104*ec779b8eSAndroid Build Coastguard Worker        "CaptureResult.cpp",
105*ec779b8eSAndroid Build Coastguard Worker        "ICamera.cpp",
106*ec779b8eSAndroid Build Coastguard Worker        "ICameraClient.cpp",
107*ec779b8eSAndroid Build Coastguard Worker        "ICameraRecordingProxy.cpp",
108*ec779b8eSAndroid Build Coastguard Worker        "VendorTagDescriptor.cpp",
109*ec779b8eSAndroid Build Coastguard Worker        "camera2/CaptureRequest.cpp",
110*ec779b8eSAndroid Build Coastguard Worker        "camera2/ConcurrentCamera.cpp",
111*ec779b8eSAndroid Build Coastguard Worker        "camera2/OutputConfiguration.cpp",
112*ec779b8eSAndroid Build Coastguard Worker        "camera2/SessionConfiguration.cpp",
113*ec779b8eSAndroid Build Coastguard Worker        "camera2/SubmitInfo.cpp",
114*ec779b8eSAndroid Build Coastguard Worker    ],
115*ec779b8eSAndroid Build Coastguard Worker
116*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
117*ec779b8eSAndroid Build Coastguard Worker        "android.hardware.common.fmq-V1-cpp",
118*ec779b8eSAndroid Build Coastguard Worker        "android.hardware.common-V2-cpp",
119*ec779b8eSAndroid Build Coastguard Worker        "camera_platform_flags_c_lib",
120*ec779b8eSAndroid Build Coastguard Worker        "framework-permission-aidl-cpp",
121*ec779b8eSAndroid Build Coastguard Worker        "lib-platform-compat-native-api",
122*ec779b8eSAndroid Build Coastguard Worker        "libbase",
123*ec779b8eSAndroid Build Coastguard Worker        "libbinder",
124*ec779b8eSAndroid Build Coastguard Worker        "libcamera_metadata",
125*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
126*ec779b8eSAndroid Build Coastguard Worker        "libgui",
127*ec779b8eSAndroid Build Coastguard Worker        "liblog",
128*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
129*ec779b8eSAndroid Build Coastguard Worker        "libpermission",
130*ec779b8eSAndroid Build Coastguard Worker        "libutils",
131*ec779b8eSAndroid Build Coastguard Worker    ],
132*ec779b8eSAndroid Build Coastguard Worker
133*ec779b8eSAndroid Build Coastguard Worker    include_dirs: [
134*ec779b8eSAndroid Build Coastguard Worker        "frameworks/native/include/media/openmax",
135*ec779b8eSAndroid Build Coastguard Worker        "system/media/private/camera/include",
136*ec779b8eSAndroid Build Coastguard Worker    ],
137*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: [
138*ec779b8eSAndroid Build Coastguard Worker        "include",
139*ec779b8eSAndroid Build Coastguard Worker        "include/camera",
140*ec779b8eSAndroid Build Coastguard Worker    ],
141*ec779b8eSAndroid Build Coastguard Worker    export_shared_lib_headers: [
142*ec779b8eSAndroid Build Coastguard Worker        "framework-permission-aidl-cpp",
143*ec779b8eSAndroid Build Coastguard Worker        "android.hardware.common.fmq-V1-cpp",
144*ec779b8eSAndroid Build Coastguard Worker        "android.hardware.common-V2-cpp",
145*ec779b8eSAndroid Build Coastguard Worker        "libcamera_metadata",
146*ec779b8eSAndroid Build Coastguard Worker        "libgui",
147*ec779b8eSAndroid Build Coastguard Worker        "libnativewindow",
148*ec779b8eSAndroid Build Coastguard Worker    ],
149*ec779b8eSAndroid Build Coastguard Worker
150*ec779b8eSAndroid Build Coastguard Worker    cflags: [
151*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
152*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
153*ec779b8eSAndroid Build Coastguard Worker        "-Wextra",
154*ec779b8eSAndroid Build Coastguard Worker    ],
155*ec779b8eSAndroid Build Coastguard Worker
156*ec779b8eSAndroid Build Coastguard Worker}
157*ec779b8eSAndroid Build Coastguard Worker
158*ec779b8eSAndroid Build Coastguard Workercc_library_host_static {
159*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera_client_host",
160*ec779b8eSAndroid Build Coastguard Worker
161*ec779b8eSAndroid Build Coastguard Worker    srcs: [
162*ec779b8eSAndroid Build Coastguard Worker        "CameraMetadata.cpp",
163*ec779b8eSAndroid Build Coastguard Worker        "VendorTagDescriptor.cpp",
164*ec779b8eSAndroid Build Coastguard Worker    ],
165*ec779b8eSAndroid Build Coastguard Worker
166*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
167*ec779b8eSAndroid Build Coastguard Worker        "libbase",
168*ec779b8eSAndroid Build Coastguard Worker        "libcamera_metadata",
169*ec779b8eSAndroid Build Coastguard Worker    ],
170*ec779b8eSAndroid Build Coastguard Worker
171*ec779b8eSAndroid Build Coastguard Worker    include_dirs: [
172*ec779b8eSAndroid Build Coastguard Worker        "frameworks/native/include/media/openmax",
173*ec779b8eSAndroid Build Coastguard Worker        "system/media/private/camera/include",
174*ec779b8eSAndroid Build Coastguard Worker    ],
175*ec779b8eSAndroid Build Coastguard Worker
176*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: [
177*ec779b8eSAndroid Build Coastguard Worker        "include",
178*ec779b8eSAndroid Build Coastguard Worker        "include/camera",
179*ec779b8eSAndroid Build Coastguard Worker    ],
180*ec779b8eSAndroid Build Coastguard Worker}
181*ec779b8eSAndroid Build Coastguard Worker
182*ec779b8eSAndroid Build Coastguard Worker// AIDL interface between camera clients and the camera service.
183*ec779b8eSAndroid Build Coastguard Workerfilegroup {
184*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera_client_aidl",
185*ec779b8eSAndroid Build Coastguard Worker    srcs: [
186*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/CameraExtensionSessionStats.aidl",
187*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/CameraFeatureCombinationStats.aidl",
188*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/ICameraService.aidl",
189*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/ICameraServiceListener.aidl",
190*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/ICameraServiceProxy.aidl",
191*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/camera2/ICameraDeviceCallbacks.aidl",
192*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/camera2/ICameraDeviceUser.aidl",
193*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/camera2/ICameraInjectionCallback.aidl",
194*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/camera2/ICameraInjectionSession.aidl",
195*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/camera2/ICameraOfflineSession.aidl",
196*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/camera2/CameraMetadataInfo.aidl",
197*ec779b8eSAndroid Build Coastguard Worker    ],
198*ec779b8eSAndroid Build Coastguard Worker    path: "aidl",
199*ec779b8eSAndroid Build Coastguard Worker}
200*ec779b8eSAndroid Build Coastguard Worker
201*ec779b8eSAndroid Build Coastguard Worker// Extra AIDL files that are used by framework.jar but not libcamera_client
202*ec779b8eSAndroid Build Coastguard Worker// because they have hand-written native implementations.
203*ec779b8eSAndroid Build Coastguard Workerfilegroup {
204*ec779b8eSAndroid Build Coastguard Worker    name: "libcamera_client_framework_aidl",
205*ec779b8eSAndroid Build Coastguard Worker    srcs: [
206*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/ICamera.aidl",
207*ec779b8eSAndroid Build Coastguard Worker        "aidl/android/hardware/ICameraClient.aidl",
208*ec779b8eSAndroid Build Coastguard Worker    ],
209*ec779b8eSAndroid Build Coastguard Worker    path: "aidl",
210*ec779b8eSAndroid Build Coastguard Worker}
211