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("../../camera.gni")
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ciif (defined(ohos_lite)) {
17094332d3Sopenharmony_ci  import("//build/ohos.gni")
18094332d3Sopenharmony_ci  import("../../../../hdf_core/adapter/uhdf/uhdf.gni")
19094332d3Sopenharmony_ci
20094332d3Sopenharmony_ci  config("camhdi_impl_config") {
21094332d3Sopenharmony_ci    visibility = [ ":*" ]
22094332d3Sopenharmony_ci    cflags = [
23094332d3Sopenharmony_ci      "-DGST_DISABLE_DEPRECATED",
24094332d3Sopenharmony_ci      "-DHAVE_CONFIG_H",
25094332d3Sopenharmony_ci    ]
26094332d3Sopenharmony_ci
27094332d3Sopenharmony_ci    cflags_cc = [ "-std=c++17" ]
28094332d3Sopenharmony_ci    ldflags = [ "-Wl" ]
29094332d3Sopenharmony_ci
30094332d3Sopenharmony_ci    ldflags += [ "--coverage" ]
31094332d3Sopenharmony_ci  }
32094332d3Sopenharmony_ci
33094332d3Sopenharmony_ci  ohos_shared_library("camera_host_service_1.0") {
34094332d3Sopenharmony_ci    output_extension = "z.so"
35094332d3Sopenharmony_ci    sources = [
36094332d3Sopenharmony_ci      "./src/camera_device_service.cpp",
37094332d3Sopenharmony_ci      "./src/camera_host_service.cpp",
38094332d3Sopenharmony_ci      "./src/offline_stream_operator_service.cpp",
39094332d3Sopenharmony_ci      "./src/stream_operator_service.cpp",
40094332d3Sopenharmony_ci    ]
41094332d3Sopenharmony_ci
42094332d3Sopenharmony_ci    include_dirs = [
43094332d3Sopenharmony_ci      "$camera_path/../../interfaces/include",
44094332d3Sopenharmony_ci      "$camera_path/../../interfaces/hdi_passthrough",
45094332d3Sopenharmony_ci      "$camera_path/include",
46094332d3Sopenharmony_ci      "$camera_path/utils/watchdog",
47094332d3Sopenharmony_ci      "$camera_path/../interfaces",
48094332d3Sopenharmony_ci      "./include",
49094332d3Sopenharmony_ci    ]
50094332d3Sopenharmony_ci
51094332d3Sopenharmony_ci    deps = [ "$camera_path/utils:peripheral_camera_utils" ]
52094332d3Sopenharmony_ci    external_deps = [
53094332d3Sopenharmony_ci      "drivers_interface_camera:metadata",
54094332d3Sopenharmony_ci      "graphic_surface:surface",
55094332d3Sopenharmony_ci      "hdf_core:libhdf_utils",
56094332d3Sopenharmony_ci      "hilog_lite:hilog_shared",
57094332d3Sopenharmony_ci    ]
58094332d3Sopenharmony_ci    public_configs = [ ":camhdi_impl_config" ]
59094332d3Sopenharmony_ci    subsystem_name = "hdf"
60094332d3Sopenharmony_ci    part_name = "drivers_peripheral_camera"
61094332d3Sopenharmony_ci  }
62094332d3Sopenharmony_ci} else {
63094332d3Sopenharmony_ci  import("//build/ohos.gni")
64094332d3Sopenharmony_ci
65094332d3Sopenharmony_ci  config("camhdi_impl_config") {
66094332d3Sopenharmony_ci    visibility = [ ":*" ]
67094332d3Sopenharmony_ci    cflags = [
68094332d3Sopenharmony_ci      "-DGST_DISABLE_DEPRECATED",
69094332d3Sopenharmony_ci      "-DHAVE_CONFIG_H",
70094332d3Sopenharmony_ci    ]
71094332d3Sopenharmony_ci
72094332d3Sopenharmony_ci    ldflags = [ "-Wl" ]
73094332d3Sopenharmony_ci
74094332d3Sopenharmony_ci    if (enable_camera_device_utest) {
75094332d3Sopenharmony_ci      cflags += [
76094332d3Sopenharmony_ci        "-fprofile-arcs",
77094332d3Sopenharmony_ci        "-ftest-coverage",
78094332d3Sopenharmony_ci      ]
79094332d3Sopenharmony_ci
80094332d3Sopenharmony_ci      ldflags += [ "--coverage" ]
81094332d3Sopenharmony_ci    }
82094332d3Sopenharmony_ci  }
83094332d3Sopenharmony_ci
84094332d3Sopenharmony_ci  host_sources = [
85094332d3Sopenharmony_ci    "$camera_path/../../interfaces/hdi_ipc/camera_host_driver.cpp",
86094332d3Sopenharmony_ci    "./src/camera_device_service.cpp",
87094332d3Sopenharmony_ci    "./src/camera_device_service_callback.cpp",
88094332d3Sopenharmony_ci    "./src/camera_host_service.cpp",
89094332d3Sopenharmony_ci    "./src/camera_host_service_callback.cpp",
90094332d3Sopenharmony_ci    "./src/camera_service_type_converter.cpp",
91094332d3Sopenharmony_ci    "./src/offline_stream_operator_service.cpp",
92094332d3Sopenharmony_ci    "./src/stream_operator_service.cpp",
93094332d3Sopenharmony_ci    "./src/stream_operator_service_callback.cpp",
94094332d3Sopenharmony_ci  ]
95094332d3Sopenharmony_ci
96094332d3Sopenharmony_ci  host_includes = [
97094332d3Sopenharmony_ci    "$camera_path/../../interfaces/include",
98094332d3Sopenharmony_ci    "$camera_path/../../interfaces/hdi_ipc",
99094332d3Sopenharmony_ci    "$camera_path/../../interfaces/hdi_ipc/utils/include",
100094332d3Sopenharmony_ci    "$camera_path/../../interfaces/hdi_ipc/callback/host/include",
101094332d3Sopenharmony_ci    "$camera_path/../../interfaces/hdi_ipc/callback/device/include",
102094332d3Sopenharmony_ci    "$camera_path/../../interfaces/hdi_ipc/callback/operator/include",
103094332d3Sopenharmony_ci    "$camera_path/include",
104094332d3Sopenharmony_ci    "$camera_path/utils/watchdog",
105094332d3Sopenharmony_ci    "$camera_path/../interfaces",
106094332d3Sopenharmony_ci    "./include",
107094332d3Sopenharmony_ci  ]
108094332d3Sopenharmony_ci
109094332d3Sopenharmony_ci  ohos_shared_library("camera_host_service_1.0") {
110094332d3Sopenharmony_ci    sources = host_sources
111094332d3Sopenharmony_ci    include_dirs = host_includes
112094332d3Sopenharmony_ci
113094332d3Sopenharmony_ci    deps = [ "$camera_path/utils:peripheral_camera_utils" ]
114094332d3Sopenharmony_ci
115094332d3Sopenharmony_ci    defines = []
116094332d3Sopenharmony_ci    if (enable_camera_device_utest) {
117094332d3Sopenharmony_ci      defines += [ "CAMERA_DEVICE_UTEST" ]
118094332d3Sopenharmony_ci    }
119094332d3Sopenharmony_ci    if (use_hitrace) {
120094332d3Sopenharmony_ci      defines += [ "HITRACE_LOG_ENABLED" ]
121094332d3Sopenharmony_ci    }
122094332d3Sopenharmony_ci    if (drivers_peripheral_camera_feature_usb) {
123094332d3Sopenharmony_ci      defines += [ "CHIP_PROD_CAMERA_HOST_CONFIG" ]
124094332d3Sopenharmony_ci    }
125094332d3Sopenharmony_ci
126094332d3Sopenharmony_ci    if (is_standard_system) {
127094332d3Sopenharmony_ci      external_deps = [
128094332d3Sopenharmony_ci        "c_utils:utils",
129094332d3Sopenharmony_ci        "graphic_surface:surface",
130094332d3Sopenharmony_ci        "hdf_core:libhdf_host",
131094332d3Sopenharmony_ci        "hdf_core:libhdf_ipc_adapter",
132094332d3Sopenharmony_ci        "hdf_core:libhdf_utils",
133094332d3Sopenharmony_ci        "hdf_core:libhdi",
134094332d3Sopenharmony_ci        "hilog:libhilog",
135094332d3Sopenharmony_ci        "ipc:ipc_single",
136094332d3Sopenharmony_ci      ]
137094332d3Sopenharmony_ci    } else {
138094332d3Sopenharmony_ci      external_deps = [ "hilog:libhilog" ]
139094332d3Sopenharmony_ci    }
140094332d3Sopenharmony_ci
141094332d3Sopenharmony_ci    if (use_hitrace) {
142094332d3Sopenharmony_ci      external_deps += [ "hitrace:hitrace_meter" ]
143094332d3Sopenharmony_ci    }
144094332d3Sopenharmony_ci
145094332d3Sopenharmony_ci    external_deps += [
146094332d3Sopenharmony_ci      "drivers_interface_camera:libcamera_stub_1.0",
147094332d3Sopenharmony_ci      "drivers_interface_camera:metadata",
148094332d3Sopenharmony_ci      "ipc:ipc_single",
149094332d3Sopenharmony_ci    ]
150094332d3Sopenharmony_ci    shlib_type = "hdi"
151094332d3Sopenharmony_ci    public_configs = [ ":camhdi_impl_config" ]
152094332d3Sopenharmony_ci    install_images = [ chipset_base_dir ]
153094332d3Sopenharmony_ci    subsystem_name = "hdf"
154094332d3Sopenharmony_ci    part_name = "drivers_peripheral_camera"
155094332d3Sopenharmony_ci  }
156094332d3Sopenharmony_ci
157094332d3Sopenharmony_ci  ohos_static_library("camera_host_service_1.0_static") {
158094332d3Sopenharmony_ci    sources = host_sources
159094332d3Sopenharmony_ci    include_dirs = host_includes
160094332d3Sopenharmony_ci
161094332d3Sopenharmony_ci    deps = [ "$camera_path/utils:peripheral_camera_utils" ]
162094332d3Sopenharmony_ci
163094332d3Sopenharmony_ci    defines = []
164094332d3Sopenharmony_ci    if (enable_camera_device_utest) {
165094332d3Sopenharmony_ci      defines += [ "CAMERA_DEVICE_UTEST" ]
166094332d3Sopenharmony_ci    }
167094332d3Sopenharmony_ci    if (use_hitrace) {
168094332d3Sopenharmony_ci      defines += [ "HITRACE_LOG_ENABLED" ]
169094332d3Sopenharmony_ci    }
170094332d3Sopenharmony_ci
171094332d3Sopenharmony_ci    if (is_standard_system) {
172094332d3Sopenharmony_ci      external_deps = [
173094332d3Sopenharmony_ci        "c_utils:utils",
174094332d3Sopenharmony_ci        "graphic_surface:surface",
175094332d3Sopenharmony_ci        "hdf_core:libhdf_host",
176094332d3Sopenharmony_ci        "hdf_core:libhdf_ipc_adapter",
177094332d3Sopenharmony_ci        "hdf_core:libhdf_utils",
178094332d3Sopenharmony_ci        "hdf_core:libhdi",
179094332d3Sopenharmony_ci        "hilog:libhilog",
180094332d3Sopenharmony_ci        "ipc:ipc_single",
181094332d3Sopenharmony_ci      ]
182094332d3Sopenharmony_ci    } else {
183094332d3Sopenharmony_ci      external_deps = [ "hilog:libhilog" ]
184094332d3Sopenharmony_ci    }
185094332d3Sopenharmony_ci
186094332d3Sopenharmony_ci    if (use_hitrace) {
187094332d3Sopenharmony_ci      external_deps += [ "hitrace:hitrace_meter" ]
188094332d3Sopenharmony_ci    }
189094332d3Sopenharmony_ci
190094332d3Sopenharmony_ci    external_deps += [
191094332d3Sopenharmony_ci      "drivers_interface_camera:libcamera_stub_1.0",
192094332d3Sopenharmony_ci      "drivers_interface_camera:metadata",
193094332d3Sopenharmony_ci      "ipc:ipc_single",
194094332d3Sopenharmony_ci    ]
195094332d3Sopenharmony_ci
196094332d3Sopenharmony_ci    public_configs = [ ":camhdi_impl_config" ]
197094332d3Sopenharmony_ci    subsystem_name = "hdf"
198094332d3Sopenharmony_ci    part_name = "drivers_peripheral_camera"
199094332d3Sopenharmony_ci  }
200094332d3Sopenharmony_ci}
201