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