1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15
16# NOSORT
17import("../../../camera.gni")
18
19# NOSORT
20import("../camera_usb.gni")
21config("camhdi_impl_config") {
22  visibility = [ ":*" ]
23  cflags = [
24    "-DGST_DISABLE_DEPRECATED",
25    "-DHAVE_CONFIG_H",
26  ]
27
28  ldflags = [ "-Wl" ]
29
30  if (enable_camera_device_utest) {
31    cflags += [
32      "-fprofile-arcs",
33      "-ftest-coverage",
34    ]
35
36    ldflags += [ "--coverage" ]
37  }
38}
39
40host_sources = [
41  "$camera_path_usb/vdi_impl/src/camera_host/camera_host_usb_config.cpp",
42  "$camera_path_usb/vdi_impl/src/camera_host/camera_host_usb_vdi_impl.cpp",
43  "$camera_path_vdi/../v4l2/src/camera_device/camera_device_vdi_impl.cpp",
44  "$camera_path_vdi/../v4l2/src/offline_stream_operator/offline_stream.cpp",
45  "$camera_path_vdi/../v4l2/src/offline_stream_operator/offline_stream_operator_vdi_impl.cpp",
46  "$camera_path_vdi/../v4l2/src/stream_operator/capture_message.cpp",
47  "$camera_path_vdi/../v4l2/src/stream_operator/capture_request.cpp",
48  "$camera_path_vdi/../v4l2/src/stream_operator/stream_base.cpp",
49  "$camera_path_vdi/../v4l2/src/stream_operator/stream_operator_vdi_impl.cpp",
50  "$camera_path_vdi/../v4l2/src/stream_operator/stream_post_view.cpp",
51  "$camera_path_vdi/../v4l2/src/stream_operator/stream_preview.cpp",
52  "$camera_path_vdi/../v4l2/src/stream_operator/stream_statistics.cpp",
53  "$camera_path_vdi/../v4l2/src/stream_operator/stream_still_capture.cpp",
54  "$camera_path_vdi/../v4l2/src/stream_operator/stream_tunnel/standard/stream_tunnel.cpp",
55  "$camera_path_vdi/../v4l2/src/stream_operator/stream_video.cpp",
56  "$camera_path_vdi/dump/src/camera_dump.cpp",
57]
58
59host_includes = [
60  "$camera_path_vdi/../../interfaces/include",
61  "$camera_path_vdi/include",
62  "$camera_path_vdi/metadata_manager/include",
63  "$camera_path_vdi/utils/watchdog",
64  "$camera_path_vdi/../interfaces",
65  "$camera_path_vdi/../v4l2/include",
66  "$camera_path_vdi/../v4l2/include/camera_host",
67  "$camera_path_vdi/../v4l2/include/camera_device",
68  "$camera_path_vdi/../v4l2/include/stream_operator",
69  "$camera_path_vdi/../v4l2/src/stream_operator/stream_tunnel/standard",
70  "$camera_path_vdi/../v4l2/include/offline_stream_operator",
71  "$camera_path_vdi/device_manager/include",
72  "$camera_path_vdi/buffer_manager/src/buffer_adapter/standard",
73  "$camera_path_vdi/utils/event",
74  "$camera_path_vdi/dump/include",
75
76  #producer
77  "$camera_path_vdi/pipeline_core/utils",
78  "$camera_path_vdi/pipeline_core/include",
79  "$camera_path_vdi/pipeline_core/host_stream/include",
80  "$camera_path_vdi/pipeline_core/nodes/include",
81  "$camera_path_vdi/pipeline_core/nodes/src/node_base",
82  "$camera_path_vdi/pipeline_core/nodes/src/dummy_node",
83  "$camera_path_vdi/pipeline_core/pipeline_impl/include",
84  "$camera_path_vdi/pipeline_core/pipeline_impl/src",
85  "$camera_path_vdi/pipeline_core/pipeline_impl/src/builder",
86  "$camera_path_vdi/pipeline_core/pipeline_impl/src/dispatcher",
87  "$camera_path_vdi/pipeline_core/pipeline_impl/src/parser",
88  "$camera_path_vdi/pipeline_core/pipeline_impl/src/strategy",
89  "$camera_path_vdi/pipeline_core/ipp/include",
90]
91
92ohos_shared_library("camera_daemon") {
93  output_extension = "so"
94  sources = host_sources
95  include_dirs = host_includes
96
97  deps = [
98    "$camera_path_usb/buffer_manager:usb_camera_buffer_manager",
99    "$camera_path_usb/device_manager:usb_camera_device_manager",
100    "$camera_path_usb/metadata_manager:usb_camera_metadata_manager",
101    "$camera_path_usb/pipeline_core:usb_camera_pipeline_core",
102    "$camera_path_vdi/utils:peripheral_camera_utils",
103  ]
104
105  defines = []
106  if (enable_camera_device_utest) {
107    defines += [ "CAMERA_DEVICE_UTEST" ]
108  }
109  if (use_hitrace) {
110    defines += [ "HITRACE_LOG_ENABLED" ]
111  }
112  if (drivers_peripheral_camera_feature_usb) {
113    defines += [ "CAMERA_BUILT_ON_USB" ]
114  }
115
116  external_deps = [
117    "c_utils:utils",
118    "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
119    "drivers_interface_camera:metadata",
120    "graphic_surface:surface",
121    "hdf_core:libhdf_host",
122    "hdf_core:libhdf_ipc_adapter",
123    "hdf_core:libhdf_utils",
124    "hdf_core:libhdi",
125    "hilog:libhilog",
126    "hitrace:hitrace_meter",
127    "ipc:ipc_single",
128  ]
129
130  #  if (use_hitrace) {
131  #    external_deps += [ "hitrace:libhitracechain" ]
132  #  }
133
134  public_configs = [ ":camhdi_impl_config" ]
135  install_images = [ chipset_base_dir ]
136  subsystem_name = "hdf"
137  part_name = "drivers_peripheral_camera"
138}
139
140ohos_static_library("camera_daemon_static") {
141  sources = host_sources
142  include_dirs = host_includes
143
144  deps = [
145    "$camera_path_usb/buffer_manager:usb_camera_buffer_manager",
146    "$camera_path_usb/device_manager:usb_camera_device_manager",
147    "$camera_path_usb/metadata_manager:usb_camera_metadata_manager",
148    "$camera_path_usb/pipeline_core:usb_camera_pipeline_core",
149    "$camera_path_vdi/utils:peripheral_camera_utils",
150  ]
151
152  defines = []
153  if (enable_camera_device_utest) {
154    defines += [ "CAMERA_DEVICE_UTEST" ]
155  }
156  if (use_hitrace) {
157    defines += [ "HITRACE_LOG_ENABLED" ]
158  }
159  if (drivers_peripheral_camera_feature_usb) {
160    defines += [ "CAMERA_BUILT_ON_USB" ]
161  }
162
163  external_deps = [
164    "c_utils:utils",
165    "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
166    "drivers_interface_camera:metadata",
167    "graphic_surface:surface",
168    "hdf_core:libhdf_host",
169    "hdf_core:libhdf_ipc_adapter",
170    "hdf_core:libhdf_utils",
171    "hdf_core:libhdi",
172    "hilog:libhilog",
173    "hitrace:hitrace_meter",
174    "ipc:ipc_single",
175  ]
176  if (use_hitrace) {
177    external_deps += [ "hitrace:libhitracechain" ]
178  }
179
180  public_configs = [ ":camhdi_impl_config" ]
181  subsystem_name = "hdf"
182  part_name = "drivers_peripheral_camera"
183}
184