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.
13import("//build/ohos.gni")
14
15# NOSORT
16import("../../../camera.gni")
17
18# NOSORT
19import("$hdf_core_path/adapter/uhdf2/uhdf.gni")
20config("pipe_config") {
21  visibility = [ ":*" ]
22
23  defines = []
24  if (drivers_peripheral_camera_feature_usb) {
25    defines += [ "CAMERA_BUILT_ON_USB" ]
26  }
27  if (target_cpu == "arm64" || target_cpu == "x86_64") {
28    defines += [ "__ARCH64__" ]
29  }
30
31  cflags_cc = [
32    "-Wall",
33    "-Wextra",
34    "-Werror",
35    "-Wno-error",
36    "-DGST_DISABLE_DEPRECATED",
37    "-DHAVE_CONFIG_H",
38    "-DCOLORSPACE=\"videoconvert\"",
39    "-fno-strict-aliasing",
40    "-Wno-sign-compare",
41    "-Wno-builtin-requires-header",
42    "-Wno-unused-variable",
43    "-Wno-unused-label",
44    "-Wno-implicit-function-declaration",
45    "-Wno-format",
46    "-Wno-int-conversion",
47    "-Wno-unused-function",
48    "-Wno-thread-safety-attributes",
49    "-Wno-inconsistent-missing-override",
50    "-fno-rtti",
51    "-fno-exceptions",
52    "-ffunction-sections",
53    "-fdata-sections",
54  ]
55
56  include_dirs = [
57    "$camera_path/pipeline_core",
58    "$camera_path/pipeline_core/host_stream/include",
59    "$camera_path/pipeline_core/utils",
60    "$camera_path/pipeline_core/nodes/include",
61    "$camera_path/pipeline_core/nodes/src/sensor_node",
62    "$camera_path/pipeline_core/nodes/src/node_base",
63    "$camera_path/pipeline_core/nodes/src/sink_node",
64    "$camera_path/pipeline_core/nodes/src/source_node",
65    "$camera_path/pipeline_core/nodes/src/merge_node",
66    "$camera_path/pipeline_core/nodes/src/dummy_node",
67    "$camera_path/pipeline_core/pipeline_impl/include",
68    "$camera_path/pipeline_core/pipeline_impl/src",
69    "$camera_path/pipeline_core/include",
70    "$camera_path/pipeline_core/pipeline_impl/src/builder",
71    "$camera_path/pipeline_core/pipeline_impl/src/dispatcher",
72    "$camera_path/pipeline_core/pipeline_impl/src/parser",
73    "$camera_path/pipeline_core/pipeline_impl/src/strategy",
74    "$camera_path/pipeline_core/pipeline_impl/src/strategy/config",
75    "$camera_path/pipeline_core/ipp/include",
76  ]
77}
78
79ohos_shared_library("peripheral_camera_pipeline_core") {
80  sources = [
81    "$camera_path/adapter/platform/v4l2/src/pipeline_core/nodes/uvc_node/uvc_node.cpp",
82    "$camera_path/adapter/platform/v4l2/src/pipeline_core/nodes/v4l2_source_node/v4l2_source_node.cpp",
83    "$camera_path/pipeline_core/host_stream/src/host_stream_impl.cpp",
84    "$camera_path/pipeline_core/host_stream/src/host_stream_mgr_impl.cpp",
85    "$camera_path/pipeline_core/ipp/src/algo_plugin.cpp",
86    "$camera_path/pipeline_core/ipp/src/algo_plugin_manager.cpp",
87    "$camera_path/pipeline_core/ipp/src/ipp_algo_parser.cpp",
88    "$camera_path/pipeline_core/ipp/src/ipp_node.cpp",
89    "$camera_path/pipeline_core/ipp/src/offline_pipeline.cpp",
90    "$camera_path/pipeline_core/ipp/src/offline_pipeline_manager.cpp",
91    "$camera_path/pipeline_core/nodes/src/dummy_node/dummy_node.cpp",
92    "$camera_path/pipeline_core/nodes/src/fork_node/fork_node.cpp",
93    "$camera_path/pipeline_core/nodes/src/merge_node/merge_node.cpp",
94    "$camera_path/pipeline_core/nodes/src/node_base/node_base.cpp",
95    "$camera_path/pipeline_core/nodes/src/sensor_node/sensor_node.cpp",
96    "$camera_path/pipeline_core/nodes/src/sink_node/sink_node.cpp",
97    "$camera_path/pipeline_core/nodes/src/source_node/source_node.cpp",
98    "$camera_path/pipeline_core/nodes/src/stability_node/stability_node.cpp",
99    "$camera_path/pipeline_core/pipeline_impl/src/builder/stream_pipeline_builder.cpp",
100    "$camera_path/pipeline_core/pipeline_impl/src/dispatcher/stream_pipeline_dispatcher.cpp",
101    "$camera_path/pipeline_core/pipeline_impl/src/parser/config_parser.cpp",
102    "$camera_path/pipeline_core/pipeline_impl/src/strategy/stream_pipeline_strategy.cpp",
103    "$camera_path/pipeline_core/pipeline_impl/src/stream_pipeline_core.cpp",
104    "$camera_path/pipeline_core/pipeline_impl/src/stream_pipeline_data_structure.cpp",
105  ]
106  include_dirs = [
107    "$camera_path/utils/exif",
108    "$camera_path/../../interfaces/include",
109    "$camera_path/../../interfaces/hdi_ipc",
110    "$camera_path/include",
111    "$camera_path/../interfaces",
112    "$camera_path/../v4l2",
113    "$camera_path/../v4l2/camera_host/include",
114    "$camera_path/../v4l2/camera_device/include",
115    "$camera_path/../v4l2/stream_operator/include",
116    "$camera_path/../v4l2/include",
117    "$camera_path/device_manager",
118    "$camera_path/device_manager/include",
119    "$camera_path/metadata_manager/include",
120    "$camera_path/pipeline_core",
121    "$camera_path/pipeline_core/host_stream/include",
122    "$camera_path/pipeline_core/utils",
123    "$camera_path/pipeline_core/nodes/include",
124    "$camera_path/pipeline_core/nodes/src/sensor_node",
125    "$camera_path/pipeline_core/nodes/src/node_base",
126    "$camera_path/pipeline_core/nodes/src/sink_node",
127    "$camera_path/pipeline_core/nodes/src/source_node",
128    "$camera_path/pipeline_core/nodes/src/merge_node",
129    "$camera_path/pipeline_core/nodes/src/dummy_node",
130    "$camera_path/pipeline_core/pipeline_impl/include",
131    "$camera_path/pipeline_core/pipeline_impl/src",
132    "$camera_path/pipeline_core/include",
133    "$camera_path/pipeline_core/pipeline_impl/src/builder",
134    "$camera_path/pipeline_core/pipeline_impl/src/dispatcher",
135    "$camera_path/pipeline_core/pipeline_impl/src/parser",
136    "$camera_path/pipeline_core/pipeline_impl/src/strategy",
137    "$camera_path/pipeline_core/ipp/include",
138    "$camera_path/interfaces/hdi",
139    "$camera_path/utils/event",
140    "$camera_path/adapter/platform/v4l2/src/device_manager/include",
141    "$camera_path/adapter/platform/v4l2/src/pipeline_core/nodes/v4l2_source_node",
142    "$camera_path/adapter/platform/v4l2/src/pipeline_core/nodes/uvc_node",
143    "$camera_path/adapter/platform/v4l2/src/driver_adapter/include/",
144    "$camera_path/dump/include",
145    "$camera_path/../interfaces",
146  ]
147
148  deps = [
149    "$camera_path/buffer_manager:peripheral_camera_buffer_manager",
150    "$camera_path/device_manager:peripheral_camera_device_manager",
151    "$camera_path/metadata_manager:peripheral_camera_metadata_manager",
152    "$camera_path/utils:peripheral_camera_utils",
153  ]
154
155  if (is_standard_system) {
156    external_deps = [
157      "hdf_core:libhdf_utils",
158      "hilog:libhilog",
159    ]
160  } else {
161    external_deps = [ "hilog:libhilog" ]
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    "ipc:ipc_single",
170  ]
171
172  public_configs = [ ":pipe_config" ]
173  install_images = [ chipset_base_dir ]
174  subsystem_name = "hdf"
175  part_name = "drivers_peripheral_camera"
176}
177
178config("example_config") {
179  visibility = [ ":*" ]
180
181  cflags = [
182    "-Wno-error",
183    "-Wno-unused-function",
184    "-Wno-unused-parameter",
185  ]
186}
187
188ohos_shared_library("camera_ipp_algo_example") {
189  sources = [ "src/ipp_algo_example/ipp_algo_example.c" ]
190
191  include_dirs = [ "$camera_path/pipeline_core/ipp/include" ]
192  external_deps = [ "c_utils:utils" ]
193  public_configs = [ ":example_config" ]
194  install_images = [ chipset_base_dir ]
195  subsystem_name = "hdf"
196  part_name = "drivers_peripheral_camera"
197}
198