• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022 - 2023 Shenzhen Kaihong Digital Industry Development 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.
13import("//build/ohos.gni")
14import("//device/board/${product_company}/${device_name}/device.gni")
15import("//drivers/hdf_core/adapter/uhdf2/uhdf.gni")
16import("//drivers/peripheral/camera/camera.gni")
17import("$hdf_framework_path/tools/hc-gen/hc_gen.gni")
18
19hc_gen("build_camera_host_config") {
20  sources = [ rebase_path(
21          "$product_config_path/hdf_config/uhdf/camera/hdi_impl/camera_host_config.hcs") ]
22}
23
24ohos_prebuilt_etc("camera_host_config.hcb") {
25  deps = [ ":build_camera_host_config" ]
26  hcs_outputs = get_target_outputs(":build_camera_host_config")
27  source = hcs_outputs[0]
28  relative_install_dir = "hdfconfig"
29  install_images = [ chipset_base_dir ]
30  subsystem_name = "kaihong_products"
31  part_name = "kaihong_products"
32}
33
34hc_gen_c("generate_source") {
35  sources = [
36    "$product_config_path/hdf_config/uhdf/camera/pipeline_core/config.hcs",
37    "$product_config_path/hdf_config/uhdf/camera/pipeline_core/params.hcs",
38  ]
39}
40
41action("copy_source") {
42  script = "/usr/bin/env"
43  outputs = [ "$target_out_dir/tmp.c" ]  # no use, just for gn complains
44  args = [
45    "cp",
46    "-f",
47  ]
48  args += rebase_path(get_target_outputs(":generate_source"))
49  args += [ rebase_path(
50          "$camera_path/pipeline_core/pipeline_impl/src/strategy/config/") ]
51  deps = [ ":generate_source" ]
52}
53
54ohos_prebuilt_etc("config.c") {
55  deps = [ ":copy_source" ]
56  source =
57      "$camera_path/pipeline_core/pipeline_impl/src/strategy/config/config.c"
58  exec_script(
59      "/usr/bin/env",
60      [
61        "touch",
62        rebase_path(
63            "$camera_path/pipeline_core/pipeline_impl/src/strategy/config/config.c"),
64      ])
65}
66
67ohos_prebuilt_etc("params.c") {
68  deps = [ ":copy_source" ]
69  source =
70      "$camera_path/pipeline_core/pipeline_impl/src/strategy/config/params.c"
71  exec_script(
72      "/usr/bin/env",
73      [
74        "touch",
75        rebase_path(
76            "$camera_path/pipeline_core/pipeline_impl/src/strategy/config/params.c"),
77      ])
78}
79
80hc_gen("build_ipp_algo_config") {
81  sources = [ rebase_path(
82          "$product_config_path/hdf_config/uhdf/camera/pipeline_core/ipp_algo_config.hcs") ]
83}
84
85ohos_prebuilt_etc("ipp_algo_config.hcb") {
86  deps = [ ":build_ipp_algo_config" ]
87  hcs_outputs = get_target_outputs(":build_ipp_algo_config")
88  source = hcs_outputs[0]
89  relative_install_dir = "hdfconfig"
90  install_images = [ chipset_base_dir ]
91  subsystem_name = "kaihong_products"
92  part_name = "kaihong_products"
93}
94
95config("example_config") {
96  visibility = [ ":*" ]
97
98  cflags = [
99    "-Wno-error",
100    "-Wno-unused-function",
101    "-Wno-unused-parameter",
102  ]
103}
104
105group("chipset_build") {
106  public_deps = [
107    ":camera_host_config.hcb",
108    ":config.c",
109    ":ipp_algo_config.hcb",
110    ":params.c",
111    "$board_camera_path/pipeline_core:camera_ipp_algo_example",
112  ]
113}
114
115config("camhdi_impl_config") {
116  visibility = [ ":*" ]
117  cflags = [
118    "-DGST_DISABLE_DEPRECATED",
119    "-DHAVE_CONFIG_H",
120  ]
121
122  ldflags = [ "-Wl" ]
123
124  if (enable_camera_device_utest) {
125    cflags += [
126      "-fprofile-arcs",
127      "-ftest-coverage",
128    ]
129
130    ldflags += [ "--coverage" ]
131  }
132}
133
134host_sources = [
135  "$camera_path/../v4l2/src/camera_device/camera_device_vdi_impl.cpp",
136  "$camera_path/../v4l2/src/camera_dump.cpp",
137  "$camera_path/../v4l2/src/camera_host/camera_host_config.cpp",
138  "$camera_path/../v4l2/src/camera_host/camera_host_vdi_impl.cpp",
139  "$camera_path/../v4l2/src/camera_host/hcs_deal.cpp",
140  "$camera_path/../v4l2/src/offline_stream_operator/offline_stream.cpp",
141  "$camera_path/../v4l2/src/offline_stream_operator/offline_stream_operator_vdi_impl.cpp",
142  "$camera_path/../v4l2/src/stream_operator/capture_message.cpp",
143  "$camera_path/../v4l2/src/stream_operator/capture_request.cpp",
144  "$camera_path/../v4l2/src/stream_operator/stream_base.cpp",
145  "$camera_path/../v4l2/src/stream_operator/stream_operator_vdi_impl.cpp",
146  "$camera_path/../v4l2/src/stream_operator/stream_post_view.cpp",
147  "$camera_path/../v4l2/src/stream_operator/stream_preview.cpp",
148  "$camera_path/../v4l2/src/stream_operator/stream_statistics.cpp",
149  "$camera_path/../v4l2/src/stream_operator/stream_still_capture.cpp",
150  "$camera_path/../v4l2/src/stream_operator/stream_tunnel/standard/stream_tunnel.cpp",
151  "$camera_path/../v4l2/src/stream_operator/stream_video.cpp",
152]
153
154host_includes = [
155  "$camera_path/../../interfaces/include",
156  "$camera_path/include",
157  "$camera_path/metadata_manager/include",
158  "$camera_path/utils/watchdog",
159  "$camera_path/../interfaces",
160  "$camera_path/../v4l2/include",
161  "$camera_path/../v4l2/include/camera_host",
162  "$camera_path/../v4l2/include/camera_device",
163  "$camera_path/../v4l2/include/stream_operator",
164  "$camera_path/../v4l2/src/stream_operator/stream_tunnel/standard",
165  "$camera_path/../v4l2/include/offline_stream_operator",
166  "$camera_path/device_manager/include/",
167  "$camera_path/buffer_manager/src/buffer_adapter/standard",
168  "$camera_path/utils/event",
169  "$camera_path/../../display/interfaces/include",
170
171  #producer
172  "$camera_path/pipeline_core/utils",
173  "$camera_path/pipeline_core/include",
174  "$camera_path/pipeline_core/host_stream/include",
175  "$camera_path/pipeline_core/nodes/include",
176  "$camera_path/pipeline_core/nodes/src/node_base",
177  "$camera_path/pipeline_core/nodes/src/dummy_node",
178  "$camera_path/pipeline_core/pipeline_impl/include",
179  "$camera_path/pipeline_core/pipeline_impl/src",
180  "$camera_path/pipeline_core/pipeline_impl/src/builder",
181  "$camera_path/pipeline_core/pipeline_impl/src/dispatcher",
182  "$camera_path/pipeline_core/pipeline_impl/src/parser",
183  "$camera_path/pipeline_core/pipeline_impl/src/strategy",
184  "$camera_path/pipeline_core/ipp/include",
185]
186
187ohos_shared_library("camera_host_vdi_impl_1.0") {
188  sources = host_sources
189  include_dirs = host_includes
190
191  deps = [
192    "$board_camera_path/device_manager:camera_device_manager",
193    "$board_camera_path/metadata_manager:camera_metadata_manager",
194    "$board_camera_path/pipeline_core:camera_pipeline_core",
195    "$camera_path/buffer_manager:camera_buffer_manager",
196    "$camera_path/utils:camera_utils",
197  ]
198
199  defines = []
200  if (enable_camera_device_utest) {
201    defines += [ "CAMERA_DEVICE_UTEST" ]
202  }
203  if (use_hitrace) {
204    defines += [ "HITRACE_LOG_ENABLED" ]
205  }
206
207  if (is_standard_system) {
208    external_deps = [
209      "c_utils:utils",
210      "graphic_surface:surface",
211      "hdf_core:libhdf_host",
212      "hdf_core:libhdf_ipc_adapter",
213      "hdf_core:libhdf_utils",
214      "hdf_core:libhdi",
215      "hilog:libhilog",
216      "ipc:ipc_single",
217    ]
218    if (use_hitrace) {
219      external_deps += [ "hitrace:libhitracechain" ]
220    }
221  } else {
222    external_deps = [ "hilog:libhilog" ]
223  }
224  external_deps += [
225    "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
226    "drivers_interface_camera:metadata",
227    "drivers_interface_display:libdisplay_composer_proxy_1.0",
228    "hitrace:hitrace_meter",
229    "ipc:ipc_single",
230  ]
231  public_configs = [ ":camhdi_impl_config" ]
232  install_images = [ chipset_base_dir ]
233  subsystem_name = "kaihong_products"
234  part_name = "kaihong_products"
235}
236
237ohos_static_library("camera_host_vdi_impl_1.0_static") {
238  sources = host_sources
239  include_dirs = host_includes
240
241  deps = [
242    "$board_camera_path/device_manager:camera_device_manager",
243    "$board_camera_path/metadata_manager:camera_metadata_manager",
244    "$board_camera_path/pipeline_core:camera_pipeline_core",
245    "$camera_path/buffer_manager:camera_buffer_manager",
246    "$camera_path/utils:camera_utils",
247  ]
248
249  defines = []
250  if (enable_camera_device_utest) {
251    defines += [ "CAMERA_DEVICE_UTEST" ]
252  }
253  if (use_hitrace) {
254    defines += [ "HITRACE_LOG_ENABLED" ]
255  }
256
257  if (is_standard_system) {
258    external_deps = [
259      "c_utils:utils",
260      "graphic_surface:surface",
261      "hdf_core:libhdf_host",
262      "hdf_core:libhdf_ipc_adapter",
263      "hdf_core:libhdf_utils",
264      "hdf_core:libhdi",
265      "hilog:libhilog",
266      "hitrace:hitrace_meter",
267      "ipc:ipc_single",
268    ]
269    if (use_hitrace) {
270      external_deps += [ "hitrace:libhitracechain" ]
271    }
272  } else {
273    external_deps = [ "hilog:libhilog" ]
274  }
275  external_deps += [
276    "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
277    "drivers_interface_camera:metadata",
278    "drivers_interface_display:libdisplay_composer_proxy_1.0",
279    "hitrace:hitrace_meter",
280    "ipc:ipc_single",
281  ]
282
283  public_configs = [ ":camhdi_impl_config" ]
284  subsystem_name = "kaihong_products"
285  part_name = "kaihong_products"
286}
287
288group("camera_board_test") {
289  if (target_cpu == "x86_64") {
290    deps = []
291  } else {
292    testonly = true
293    deps = [
294      #device manager test
295      "device_manager/test/unittest:camera_board_device_manager_unittest",
296
297      #driver adapter v4l2 test
298      "driver_adapter/test/v4l2_test:v4l2_main",
299
300      #driver adapter v4l2 unittest
301      "driver_adapter/test/unittest:v4l2_adapter_unittest",
302
303      # pipeline core test
304      "pipeline_core/test/unittest:camera_pipeline_core_test_ut",
305
306      # demo test
307      "demo:ohos_camera_demo",
308    ]
309  }
310}
311