xref: /drivers/peripheral/camera/test/ut/v4l2/BUILD.gn (revision 094332d3)
1094332d3Sopenharmony_ci# Copyright (c) 2021 - 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("../../../camera.gni")
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ciut_root_path = ".."
17094332d3Sopenharmony_ci
18094332d3Sopenharmony_ciif (defined(ohos_lite)) {
19094332d3Sopenharmony_ci  import("//build/lite/config/test.gni")
20094332d3Sopenharmony_ci  import("../../../../../hdf_core/adapter/uhdf/uhdf.gni")
21094332d3Sopenharmony_ci
22094332d3Sopenharmony_ci  config("camera_ut_test_config") {
23094332d3Sopenharmony_ci    visibility = [ ":*" ]
24094332d3Sopenharmony_ci    cflags_cc = [ "-std=c++17" ]
25094332d3Sopenharmony_ci    if (enable_camera_coverage) {
26094332d3Sopenharmony_ci      cflags_cc += [ "--coverage" ]
27094332d3Sopenharmony_ci      ldflags = [ "--coverage" ]
28094332d3Sopenharmony_ci    }
29094332d3Sopenharmony_ci  }
30094332d3Sopenharmony_ci
31094332d3Sopenharmony_ci  unittest("camera_test_v4l2_ut") {
32094332d3Sopenharmony_ci    output_extension = "bin"
33094332d3Sopenharmony_ci    output_dir = "$root_out_dir/test/unittest/hdf"
34094332d3Sopenharmony_ci    sources = [
35094332d3Sopenharmony_ci      # buffer manager test
36094332d3Sopenharmony_ci      "$ut_root_path/buffer_manager/buffer_manager_utest.cpp",
37094332d3Sopenharmony_ci    ]
38094332d3Sopenharmony_ci    include_dirs = [
39094332d3Sopenharmony_ci      # camera common includes
40094332d3Sopenharmony_ci      "$camera_path/include",
41094332d3Sopenharmony_ci      "$camera_path/../../interfaces/include",
42094332d3Sopenharmony_ci      "$camera_path/../../interfaces/hdi_passthrough",
43094332d3Sopenharmony_ci      "$camera_path/../../test/common/callback/include",
44094332d3Sopenharmony_ci      "$camera_path/utils/event",
45094332d3Sopenharmony_ci
46094332d3Sopenharmony_ci      # device manager includes
47094332d3Sopenharmony_ci      "$camera_path/device_manager/include",
48094332d3Sopenharmony_ci
49094332d3Sopenharmony_ci      # buffer manager includes
50094332d3Sopenharmony_ci      "$camera_path/buffer_manager/include",
51094332d3Sopenharmony_ci      "$camera_path/buffer_manager/src/buffer_adapter/lite",
52094332d3Sopenharmony_ci      "$camera_path/../../base",
53094332d3Sopenharmony_ci      "$camera_path/../../display/interfaces/include",
54094332d3Sopenharmony_ci
55094332d3Sopenharmony_ci      # pipeline core includes
56094332d3Sopenharmony_ci      "$camera_path/pipeline_core",
57094332d3Sopenharmony_ci      "$camera_path/pipeline_core/host_stream/include",
58094332d3Sopenharmony_ci      "$camera_path/pipeline_core/utils",
59094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/include",
60094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/node_base",
61094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/sink_node",
62094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/sensor_node",
63094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/merge_node",
64094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/dummy_node",
65094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/include",
66094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src",
67094332d3Sopenharmony_ci      "$camera_path/pipeline_core/include",
68094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/builder",
69094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/dispatcher",
70094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/parser",
71094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/strategy",
72094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/strategy/config",
73094332d3Sopenharmony_ci      "$camera_path/pipeline_core/ipp/include",
74094332d3Sopenharmony_ci    ]
75094332d3Sopenharmony_ci    public_deps =
76094332d3Sopenharmony_ci        [ "$camera_path/buffer_manager:peripheral_camera_buffer_manager" ]
77094332d3Sopenharmony_ci    external_deps = [
78094332d3Sopenharmony_ci      "../../../../hdf_core/adapter/uhdf/manager:hdf_core",
79094332d3Sopenharmony_ci      "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
80094332d3Sopenharmony_ci      "drivers_interface_camera:metadata",
81094332d3Sopenharmony_ci      "graphic_surface:surface",
82094332d3Sopenharmony_ci      "hdf_core:hdf_posix_osal",
83094332d3Sopenharmony_ci    ]
84094332d3Sopenharmony_ci  }
85094332d3Sopenharmony_ci} else {
86094332d3Sopenharmony_ci  import("//build/test.gni")
87094332d3Sopenharmony_ci
88094332d3Sopenharmony_ci  module_output_path = "drivers_peripheral_camera/camera"
89094332d3Sopenharmony_ci
90094332d3Sopenharmony_ci  config("camera_ut_test_config") {
91094332d3Sopenharmony_ci    visibility = [ ":*" ]
92094332d3Sopenharmony_ci
93094332d3Sopenharmony_ci    cflags_cc = [
94094332d3Sopenharmony_ci      "-Wno-error",
95094332d3Sopenharmony_ci      "-std=c++17",
96094332d3Sopenharmony_ci    ]
97094332d3Sopenharmony_ci    if (enable_camera_coverage) {
98094332d3Sopenharmony_ci      ldflags = [ "--coverage" ]
99094332d3Sopenharmony_ci    }
100094332d3Sopenharmony_ci  }
101094332d3Sopenharmony_ci  ohos_unittest("camera_test_v4l2_ut") {
102094332d3Sopenharmony_ci    testonly = true
103094332d3Sopenharmony_ci    module_out_path = module_output_path
104094332d3Sopenharmony_ci    sources = [
105094332d3Sopenharmony_ci      # v4l2 adapter test
106094332d3Sopenharmony_ci      "$ut_root_path/v4l2/camera_ability_test.cpp",
107094332d3Sopenharmony_ci      "$ut_root_path/v4l2/camera_capture_test.cpp",
108094332d3Sopenharmony_ci      "$ut_root_path/v4l2/camera_fps_test.cpp",
109094332d3Sopenharmony_ci      "$ut_root_path/v4l2/camera_preview_test.cpp",
110094332d3Sopenharmony_ci      "$ut_root_path/v4l2/camera_stabili_test.cpp",
111094332d3Sopenharmony_ci      "$ut_root_path/v4l2/camera_vendor_tag_test.cpp",
112094332d3Sopenharmony_ci      "$ut_root_path/v4l2/camera_video_test.cpp",
113094332d3Sopenharmony_ci      "$ut_root_path/v4l2/double_preview_test.cpp",
114094332d3Sopenharmony_ci      "$ut_root_path/v4l2/hdfcamera_facedetect.cpp",
115094332d3Sopenharmony_ci      "$ut_root_path/v4l2/meta_data_test.cpp",
116094332d3Sopenharmony_ci      "$ut_root_path/v4l2/open_camera_test.cpp",
117094332d3Sopenharmony_ci      "$ut_root_path/v4l2/stream_customer.cpp",
118094332d3Sopenharmony_ci      "$ut_root_path/v4l2/test_camera_base.cpp",
119094332d3Sopenharmony_ci      "$ut_root_path/v4l2/usb_camera_3a_test.cpp",
120094332d3Sopenharmony_ci      "$ut_root_path/v4l2/usb_camera_test.cpp",
121094332d3Sopenharmony_ci      "$ut_root_path/v4l2/usb_camera_test_mult.cpp",
122094332d3Sopenharmony_ci    ]
123094332d3Sopenharmony_ci
124094332d3Sopenharmony_ci    include_dirs = [
125094332d3Sopenharmony_ci      # camera common includes
126094332d3Sopenharmony_ci      "$camera_path/include",
127094332d3Sopenharmony_ci      "$camera_path/../../interfaces/include",
128094332d3Sopenharmony_ci      "$camera_path/../../interfaces/hdi_ipc",
129094332d3Sopenharmony_ci      "$camera_path/utils/event",
130094332d3Sopenharmony_ci      "$camera_path/../../interfaces/hdi_ipc/utils/include",
131094332d3Sopenharmony_ci      "$camera_path/../../interfaces/hdi_ipc/callback/host/include",
132094332d3Sopenharmony_ci      "$camera_path/../../interfaces/hdi_ipc/callback/device/include",
133094332d3Sopenharmony_ci      "$camera_path/../../interfaces/hdi_ipc/callback/operator/include",
134094332d3Sopenharmony_ci      "$camera_path/../../test/common/callback/include",
135094332d3Sopenharmony_ci
136094332d3Sopenharmony_ci      # device manager includes
137094332d3Sopenharmony_ci      "$camera_path/device_manager/include",
138094332d3Sopenharmony_ci
139094332d3Sopenharmony_ci      # buffer manager includes
140094332d3Sopenharmony_ci      "$camera_path/buffer_manager/include",
141094332d3Sopenharmony_ci      "$camera_path/buffer_manager/src/buffer_adapter/standard",
142094332d3Sopenharmony_ci
143094332d3Sopenharmony_ci      # pipeline core includes
144094332d3Sopenharmony_ci      "$camera_path/pipeline_core",
145094332d3Sopenharmony_ci      "$camera_path/pipeline_core/host_stream/include",
146094332d3Sopenharmony_ci      "$camera_path/pipeline_core/utils",
147094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/include",
148094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/node_base",
149094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/sink_node",
150094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/sensor_node",
151094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/merge_node",
152094332d3Sopenharmony_ci      "$camera_path/pipeline_core/nodes/src/dummy_node",
153094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/include",
154094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src",
155094332d3Sopenharmony_ci      "$camera_path/pipeline_core/include",
156094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/builder",
157094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/dispatcher",
158094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/parser",
159094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/strategy",
160094332d3Sopenharmony_ci      "$camera_path/pipeline_core/pipeline_impl/src/strategy/config",
161094332d3Sopenharmony_ci      "$camera_path/pipeline_core/ipp/include",
162094332d3Sopenharmony_ci
163094332d3Sopenharmony_ci      # hdi service includes
164094332d3Sopenharmony_ci      "$camera_path/../../hdi_service/v1_0/include",
165094332d3Sopenharmony_ci
166094332d3Sopenharmony_ci      # vdi impl includes
167094332d3Sopenharmony_ci      "$camera_path/../v4l2/src/stream_operator/stream_tunnel/standard",
168094332d3Sopenharmony_ci
169094332d3Sopenharmony_ci      # metadata manager includes
170094332d3Sopenharmony_ci      "$camera_path/metadata_manager/include",
171094332d3Sopenharmony_ci    ]
172094332d3Sopenharmony_ci
173094332d3Sopenharmony_ci    deps = [
174094332d3Sopenharmony_ci      "$camera_path/../../hdi_service/v1_0:camera_host_service_1.0_static",
175094332d3Sopenharmony_ci      "$camera_path/buffer_manager:peripheral_camera_buffer_manager",
176094332d3Sopenharmony_ci    ]
177094332d3Sopenharmony_ci
178094332d3Sopenharmony_ci    if (is_standard_system) {
179094332d3Sopenharmony_ci      external_deps = [
180094332d3Sopenharmony_ci        "c_utils:utils",
181094332d3Sopenharmony_ci        "drivers_interface_camera:libcamera_proxy_1.0",
182094332d3Sopenharmony_ci        "drivers_interface_camera:libcamera_stub_1.0",
183094332d3Sopenharmony_ci        "hdf_core:libhdf_utils",
184094332d3Sopenharmony_ci        "hilog:libhilog",
185094332d3Sopenharmony_ci        "samgr:samgr_proxy",
186094332d3Sopenharmony_ci      ]
187094332d3Sopenharmony_ci    } else {
188094332d3Sopenharmony_ci      external_deps = [ "hilog:libhilog" ]
189094332d3Sopenharmony_ci    }
190094332d3Sopenharmony_ci
191094332d3Sopenharmony_ci    external_deps += [
192094332d3Sopenharmony_ci      "drivers_interface_camera:libbuffer_producer_sequenceable_1.0",
193094332d3Sopenharmony_ci      "drivers_interface_camera:metadata",
194094332d3Sopenharmony_ci      "googletest:gmock_main",
195094332d3Sopenharmony_ci      "googletest:gtest",
196094332d3Sopenharmony_ci      "googletest:gtest_main",
197094332d3Sopenharmony_ci      "graphic_surface:surface",
198094332d3Sopenharmony_ci      "ipc:ipc_single",
199094332d3Sopenharmony_ci      "samgr:samgr_proxy",
200094332d3Sopenharmony_ci    ]
201094332d3Sopenharmony_ci    public_configs = [ ":camera_ut_test_config" ]
202094332d3Sopenharmony_ci  }
203094332d3Sopenharmony_ci}
204