• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2010 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: ["frameworks_av_camera_license"],
17}
18
19// Added automatically by a large-scale-change that took the approach of
20// 'apply every license found to every target'. While this makes sure we respect
21// every license restriction, it may not be entirely correct.
22//
23// e.g. GPL in an MIT project might only apply to the contrib/ directory.
24//
25// Please consider splitting the single license below into multiple licenses,
26// taking care not to lose any license_kind information, and overriding the
27// default license using the 'licenses: [...]' property on targets as needed.
28//
29// For unused files, consider creating a 'fileGroup' with "//visibility:private"
30// to attach the license to, and including a comment whether the files may be
31// used in the current project.
32// See: http://go/android-license-faq
33license {
34    name: "frameworks_av_camera_license",
35    visibility: [":__subpackages__"],
36    license_kinds: [
37        "SPDX-license-identifier-Apache-2.0",
38        "SPDX-license-identifier-MIT",
39        "SPDX-license-identifier-Unicode-DFS",
40    ],
41    license_text: [
42        "NOTICE",
43    ],
44}
45
46cc_library_headers {
47    name: "camera_headers",
48    export_include_dirs: ["include"],
49}
50cc_library_shared {
51    name: "libcamera_client",
52
53    aidl: {
54        export_aidl_headers: true,
55        local_include_dirs: ["aidl"],
56        include_dirs: [
57            "frameworks/native/aidl/gui",
58        ],
59    },
60
61    srcs: [
62        // AIDL files for camera interfaces
63        // The headers for these interfaces will be available to any modules that
64        // include libcamera_client, at the path "aidl/package/path/BnFoo.h"
65        ":libcamera_client_aidl",
66
67        // Source for camera interface parcelables, and manually-written interfaces
68        "Camera.cpp",
69        "CameraMetadata.cpp",
70        "CameraParameters.cpp",
71        "CaptureResult.cpp",
72        "CameraParameters2.cpp",
73        "CameraSessionStats.cpp",
74        "ICamera.cpp",
75        "ICameraClient.cpp",
76        "ICameraRecordingProxy.cpp",
77        "camera2/CaptureRequest.cpp",
78        "camera2/ConcurrentCamera.cpp",
79        "camera2/OutputConfiguration.cpp",
80        "camera2/SessionConfiguration.cpp",
81        "camera2/SubmitInfo.cpp",
82        "CameraBase.cpp",
83        "CameraUtils.cpp",
84        "VendorTagDescriptor.cpp",
85    ],
86
87    shared_libs: [
88        "libbase",
89        "libcutils",
90        "libutils",
91        "liblog",
92        "libbinder",
93        "libgui",
94        "libcamera_metadata",
95        "libnativewindow",
96        "lib-platform-compat-native-api",
97    ],
98
99    include_dirs: [
100        "system/media/private/camera/include",
101        "frameworks/native/include/media/openmax",
102    ],
103    export_include_dirs: [
104         "include",
105         "include/camera"
106    ],
107    export_shared_lib_headers: ["libcamera_metadata", "libnativewindow", "libgui"],
108
109    cflags: [
110        "-Werror",
111        "-Wall",
112        "-Wextra",
113    ],
114
115}
116
117cc_library_host_static {
118    name: "libcamera_client_host",
119
120    srcs: [
121        "CameraMetadata.cpp",
122        "VendorTagDescriptor.cpp",
123    ],
124
125    shared_libs: [
126        "libbase",
127        "libcamera_metadata",
128    ],
129
130    include_dirs: [
131        "system/media/private/camera/include",
132        "frameworks/native/include/media/openmax",
133    ],
134
135    export_include_dirs: [
136        "include",
137        "include/camera"
138    ],
139}
140
141// AIDL interface between camera clients and the camera service.
142filegroup {
143    name: "libcamera_client_aidl",
144    srcs: [
145        "aidl/android/hardware/ICameraService.aidl",
146        "aidl/android/hardware/ICameraServiceListener.aidl",
147        "aidl/android/hardware/ICameraServiceProxy.aidl",
148        "aidl/android/hardware/camera2/ICameraDeviceCallbacks.aidl",
149        "aidl/android/hardware/camera2/ICameraDeviceUser.aidl",
150        "aidl/android/hardware/camera2/ICameraOfflineSession.aidl",
151        "aidl/android/hardware/camera2/ICameraInjectionCallback.aidl",
152        "aidl/android/hardware/camera2/ICameraInjectionSession.aidl",
153    ],
154    path: "aidl",
155}
156
157// Extra AIDL files that are used by framework.jar but not libcamera_client
158// because they have hand-written native implementations.
159filegroup {
160    name: "libcamera_client_framework_aidl",
161    srcs: [
162        "aidl/android/hardware/ICamera.aidl",
163        "aidl/android/hardware/ICameraClient.aidl",
164    ],
165    path: "aidl",
166}
167