1094332d3Sopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
2094332d3Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3094332d3Sopenharmony_ci# you may not use this file except in compliance with the License.
4094332d3Sopenharmony_ci# You may obtain a copy of the License at
5094332d3Sopenharmony_ci#
6094332d3Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7094332d3Sopenharmony_ci#
8094332d3Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9094332d3Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10094332d3Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11094332d3Sopenharmony_ci# See the License for the specific language governing permissions and
12094332d3Sopenharmony_ci# limitations under the License.
13094332d3Sopenharmony_ci
14094332d3Sopenharmony_ciimport("//build/ohos.gni")
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ci# NOSORT
17094332d3Sopenharmony_ciimport("../../../camera.gni")
18094332d3Sopenharmony_ci
19094332d3Sopenharmony_ci# NOSORT
20094332d3Sopenharmony_ciimport("../camera_usb.gni")
21094332d3Sopenharmony_ciconfig("camhdi_impl_config") {
22094332d3Sopenharmony_ci  visibility = [ ":*" ]
23094332d3Sopenharmony_ci  cflags = [
24094332d3Sopenharmony_ci    "-DGST_DISABLE_DEPRECATED",
25094332d3Sopenharmony_ci    "-DHAVE_CONFIG_H",
26094332d3Sopenharmony_ci  ]
27094332d3Sopenharmony_ci
28094332d3Sopenharmony_ci  ldflags = [ "-Wl" ]
29094332d3Sopenharmony_ci
30094332d3Sopenharmony_ci  if (enable_camera_device_utest) {
31094332d3Sopenharmony_ci    cflags += [
32094332d3Sopenharmony_ci      "-fprofile-arcs",
33094332d3Sopenharmony_ci      "-ftest-coverage",
34094332d3Sopenharmony_ci    ]
35094332d3Sopenharmony_ci
36094332d3Sopenharmony_ci    ldflags += [ "--coverage" ]
37094332d3Sopenharmony_ci  }
38094332d3Sopenharmony_ci}
39094332d3Sopenharmony_ci
40094332d3Sopenharmony_cihost_sources = [
41094332d3Sopenharmony_ci  "$camera_path_usb/vdi_impl/src/camera_host/camera_host_usb_config.cpp",
42094332d3Sopenharmony_ci  "$camera_path_usb/vdi_impl/src/camera_host/camera_host_usb_vdi_impl.cpp",
43094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/camera_device/camera_device_vdi_impl.cpp",
44094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/offline_stream_operator/offline_stream.cpp",
45094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/offline_stream_operator/offline_stream_operator_vdi_impl.cpp",
46094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/capture_message.cpp",
47094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/capture_request.cpp",
48094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_base.cpp",
49094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_operator_vdi_impl.cpp",
50094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_post_view.cpp",
51094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_preview.cpp",
52094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_statistics.cpp",
53094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_still_capture.cpp",
54094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_tunnel/standard/stream_tunnel.cpp",
55094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_video.cpp",
56094332d3Sopenharmony_ci  "$camera_path_vdi/dump/src/camera_dump.cpp",
57094332d3Sopenharmony_ci]
58094332d3Sopenharmony_ci
59094332d3Sopenharmony_cihost_includes = [
60094332d3Sopenharmony_ci  "$camera_path_vdi/../../interfaces/include",
61094332d3Sopenharmony_ci  "$camera_path_vdi/include",
62094332d3Sopenharmony_ci  "$camera_path_vdi/metadata_manager/include",
63094332d3Sopenharmony_ci  "$camera_path_vdi/utils/watchdog",
64094332d3Sopenharmony_ci  "$camera_path_vdi/../interfaces",
65094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/include",
66094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/include/camera_host",
67094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/include/camera_device",
68094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/include/stream_operator",
69094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/src/stream_operator/stream_tunnel/standard",
70094332d3Sopenharmony_ci  "$camera_path_vdi/../v4l2/include/offline_stream_operator",
71094332d3Sopenharmony_ci  "$camera_path_vdi/device_manager/include",
72094332d3Sopenharmony_ci  "$camera_path_vdi/buffer_manager/src/buffer_adapter/standard",
73094332d3Sopenharmony_ci  "$camera_path_vdi/utils/event",
74094332d3Sopenharmony_ci  "$camera_path_vdi/dump/include",
75094332d3Sopenharmony_ci
76094332d3Sopenharmony_ci  #producer
77094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/utils",
78094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/include",
79094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/host_stream/include",
80094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/nodes/include",
81094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/nodes/src/node_base",
82094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/nodes/src/dummy_node",
83094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/pipeline_impl/include",
84094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/pipeline_impl/src",
85094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/pipeline_impl/src/builder",
86094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/pipeline_impl/src/dispatcher",
87094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/pipeline_impl/src/parser",
88094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/pipeline_impl/src/strategy",
89094332d3Sopenharmony_ci  "$camera_path_vdi/pipeline_core/ipp/include",
90094332d3Sopenharmony_ci]
91094332d3Sopenharmony_ci
92094332d3Sopenharmony_ciohos_shared_library("camera_daemon") {
93094332d3Sopenharmony_ci  output_extension = "so"
94094332d3Sopenharmony_ci  sources = host_sources
95094332d3Sopenharmony_ci  include_dirs = host_includes
96094332d3Sopenharmony_ci
97094332d3Sopenharmony_ci  deps = [
98094332d3Sopenharmony_ci    "$camera_path_usb/buffer_manager:usb_camera_buffer_manager",
99094332d3Sopenharmony_ci    "$camera_path_usb/device_manager:usb_camera_device_manager",
100094332d3Sopenharmony_ci    "$camera_path_usb/metadata_manager:usb_camera_metadata_manager",
101094332d3Sopenharmony_ci    "$camera_path_usb/pipeline_core:usb_camera_pipeline_core",
102094332d3Sopenharmony_ci    "$camera_path_vdi/utils:peripheral_camera_utils",
103094332d3Sopenharmony_ci  ]
104094332d3Sopenharmony_ci
105094332d3Sopenharmony_ci  defines = []
106094332d3Sopenharmony_ci  if (enable_camera_device_utest) {
107094332d3Sopenharmony_ci    defines += [ "CAMERA_DEVICE_UTEST" ]
108094332d3Sopenharmony_ci  }
109094332d3Sopenharmony_ci  if (use_hitrace) {
110094332d3Sopenharmony_ci    defines += [ "HITRACE_LOG_ENABLED" ]
111094332d3Sopenharmony_ci  }
112094332d3Sopenharmony_ci  if (drivers_peripheral_camera_feature_usb) {
113094332d3Sopenharmony_ci    defines += [ "CAMERA_BUILT_ON_USB" ]
114094332d3Sopenharmony_ci  }
115094332d3Sopenharmony_ci
116094332d3Sopenharmony_ci  external_deps = [
117094332d3Sopenharmony_ci    "c_utils:utils",
118094332d3Sopenharmony_ci    "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
119094332d3Sopenharmony_ci    "drivers_interface_camera:metadata",
120094332d3Sopenharmony_ci    "graphic_surface:surface",
121094332d3Sopenharmony_ci    "hdf_core:libhdf_host",
122094332d3Sopenharmony_ci    "hdf_core:libhdf_ipc_adapter",
123094332d3Sopenharmony_ci    "hdf_core:libhdf_utils",
124094332d3Sopenharmony_ci    "hdf_core:libhdi",
125094332d3Sopenharmony_ci    "hilog:libhilog",
126094332d3Sopenharmony_ci    "hitrace:hitrace_meter",
127094332d3Sopenharmony_ci    "ipc:ipc_single",
128094332d3Sopenharmony_ci  ]
129094332d3Sopenharmony_ci
130094332d3Sopenharmony_ci  #  if (use_hitrace) {
131094332d3Sopenharmony_ci  #    external_deps += [ "hitrace:libhitracechain" ]
132094332d3Sopenharmony_ci  #  }
133094332d3Sopenharmony_ci
134094332d3Sopenharmony_ci  public_configs = [ ":camhdi_impl_config" ]
135094332d3Sopenharmony_ci  install_images = [ chipset_base_dir ]
136094332d3Sopenharmony_ci  subsystem_name = "hdf"
137094332d3Sopenharmony_ci  part_name = "drivers_peripheral_camera"
138094332d3Sopenharmony_ci}
139094332d3Sopenharmony_ci
140094332d3Sopenharmony_ciohos_static_library("camera_daemon_static") {
141094332d3Sopenharmony_ci  sources = host_sources
142094332d3Sopenharmony_ci  include_dirs = host_includes
143094332d3Sopenharmony_ci
144094332d3Sopenharmony_ci  deps = [
145094332d3Sopenharmony_ci    "$camera_path_usb/buffer_manager:usb_camera_buffer_manager",
146094332d3Sopenharmony_ci    "$camera_path_usb/device_manager:usb_camera_device_manager",
147094332d3Sopenharmony_ci    "$camera_path_usb/metadata_manager:usb_camera_metadata_manager",
148094332d3Sopenharmony_ci    "$camera_path_usb/pipeline_core:usb_camera_pipeline_core",
149094332d3Sopenharmony_ci    "$camera_path_vdi/utils:peripheral_camera_utils",
150094332d3Sopenharmony_ci  ]
151094332d3Sopenharmony_ci
152094332d3Sopenharmony_ci  defines = []
153094332d3Sopenharmony_ci  if (enable_camera_device_utest) {
154094332d3Sopenharmony_ci    defines += [ "CAMERA_DEVICE_UTEST" ]
155094332d3Sopenharmony_ci  }
156094332d3Sopenharmony_ci  if (use_hitrace) {
157094332d3Sopenharmony_ci    defines += [ "HITRACE_LOG_ENABLED" ]
158094332d3Sopenharmony_ci  }
159094332d3Sopenharmony_ci  if (drivers_peripheral_camera_feature_usb) {
160094332d3Sopenharmony_ci    defines += [ "CAMERA_BUILT_ON_USB" ]
161094332d3Sopenharmony_ci  }
162094332d3Sopenharmony_ci
163094332d3Sopenharmony_ci  external_deps = [
164094332d3Sopenharmony_ci    "c_utils:utils",
165094332d3Sopenharmony_ci    "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
166094332d3Sopenharmony_ci    "drivers_interface_camera:metadata",
167094332d3Sopenharmony_ci    "graphic_surface:surface",
168094332d3Sopenharmony_ci    "hdf_core:libhdf_host",
169094332d3Sopenharmony_ci    "hdf_core:libhdf_ipc_adapter",
170094332d3Sopenharmony_ci    "hdf_core:libhdf_utils",
171094332d3Sopenharmony_ci    "hdf_core:libhdi",
172094332d3Sopenharmony_ci    "hilog:libhilog",
173094332d3Sopenharmony_ci    "hitrace:hitrace_meter",
174094332d3Sopenharmony_ci    "ipc:ipc_single",
175094332d3Sopenharmony_ci  ]
176094332d3Sopenharmony_ci  if (use_hitrace) {
177094332d3Sopenharmony_ci    external_deps += [ "hitrace:libhitracechain" ]
178094332d3Sopenharmony_ci  }
179094332d3Sopenharmony_ci
180094332d3Sopenharmony_ci  public_configs = [ ":camhdi_impl_config" ]
181094332d3Sopenharmony_ci  subsystem_name = "hdf"
182094332d3Sopenharmony_ci  part_name = "drivers_peripheral_camera"
183094332d3Sopenharmony_ci}
184