1# Copyright (C) 2021 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.
13
14import("//build/ohos.gni")
15import("//foundation/multimedia/image_framework/ide/image_decode_config.gni")
16
17if (use_clang_ios) {
18  ohos_source_set("image_utils") {
19    include_dirs = [
20      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
21      "//foundation/multimedia/utils/include",
22      "//foundation/multimedia/image_framework/plugins/manager/include",
23      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
24      "//commonlibrary/c_utils/base/include",
25      "//foundation/multimedia/media_utils_lite/interfaces/kits",
26      "//foundation/communication/ipc/utils/include",
27      "${image_subsystem}/frameworks/innerkitsimpl/common/include",
28    ]
29
30    sources = [
31      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp",
32      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_utils.cpp",
33      "src/color_utils.cpp",
34      "src/image_system_properties.cpp",
35      "src/image_type_converter.cpp",
36      "src/pixel_yuv_utils.cpp",
37      "src/vpe_utils.cpp",
38    ]
39
40    defines = image_decode_ios_defines
41    sources -= [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp" ]
42    sources += [ "src/image_dfx.cpp" ]
43    sources += [ "src/image_data_statistics.cpp" ]
44    include_dirs += [ "$image_subsystem/mock/native/include/log" ]
45    include_dirs += [ "//third_party/ffmpeg" ]
46    deps = [
47      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
48      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
49    ]
50    deps += [ "//third_party/ffmpeg:libohosffmpeg_static" ]
51    if (defined(global_parts_info) &&
52        defined(global_parts_info.open_source_libyuv)) {
53      defines += [ "EXT_PIXEL" ]
54      sources += [ "src/pixel_yuv_ext_utils.cpp" ]
55    }
56
57    #relative_install_dir = "module/multimedia"
58    subsystem_name = "multimedia"
59    part_name = "image_framework"
60  }
61} else {
62  ohos_shared_library("image_utils") {
63    if (!use_clang_android) {
64      branch_protector_ret = "pac_ret"
65      sanitize = {
66        cfi = true
67        cfi_cross_dso = true
68        cfi_vcall_icall_only = true
69        debug = false
70      }
71    }
72    include_dirs = [
73      "${image_subsystem}/frameworks/innerkitsimpl/common/include",
74      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
75      "//foundation/multimedia/image_framework/plugins/manager/include",
76      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
77    ]
78
79    sources = [
80      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp",
81      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_utils.cpp",
82      "src/color_utils.cpp",
83      "src/image_convert_tools.cpp",
84      "src/image_system_properties.cpp",
85      "src/image_type_converter.cpp",
86      "src/pixel_yuv_utils.cpp",
87      "src/vpe_utils.cpp",
88    ]
89
90    external_deps =
91        [ "drivers_interface_display:libdisplay_commontype_proxy_1.0" ]
92    if (use_mingw_win) {
93      defines = image_decode_windows_defines
94      include_dirs += [ "//third_party/ffmpeg" ]
95      sources -= [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp" ]
96      include_dirs +=
97          [ "//foundation/multimedia/image_framework/mock/native/include" ]
98      deps = [
99        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
100        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
101      ]
102      deps += [ "//third_party/ffmpeg:libohosffmpeg" ]
103    } else if (use_clang_mac) {
104      defines = image_decode_mac_defines
105      include_dirs += [ "//third_party/ffmpeg" ]
106      sources -= [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp" ]
107      include_dirs += [
108        "//foundation/multimedia/image_framework/mock/native/include",
109        "//third_party/bounds_checking_function/include",
110      ]
111      deps = [
112        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
113        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
114        "//third_party/bounds_checking_function:libsec_static",
115      ]
116      deps += [ "//third_party/ffmpeg:libohosffmpeg" ]
117    } else if (use_clang_android) {
118      defines = image_decode_android_defines
119      include_dirs += [ "//third_party/ffmpeg" ]
120      sources -= [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp" ]
121      include_dirs += [ "$image_subsystem/mock/native/include/log" ]
122      deps = [
123        "//commonlibrary/c_utils/base:utils",
124        "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
125        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
126        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
127      ]
128      sources += [ "src/image_dfx.cpp" ]
129      sources += [ "src/image_data_statistics.cpp" ]
130      deps += [ "//third_party/ffmpeg:libohosffmpeg" ]
131    } else {
132      defines = [ "DUAL_ADAPTER" ]
133
134      deps = [
135        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
136      ]
137
138      sources += [
139        "src/image_data_statistics.cpp",
140        "src/image_dfx.cpp",
141        "src/image_func_timer.cpp",
142        "src/image_fwk_ext_manager.cpp",
143      ]
144      external_deps += [
145        "access_token:libprivacy_sdk",
146        "bundle_framework:appexecfwk_base",
147        "bundle_framework:appexecfwk_core",
148        "c_utils:utils",
149        "ffmpeg:libohosffmpeg",
150        "ffrt:libffrt",
151        "graphic_2d:color_manager",
152        "graphic_surface:surface",
153        "hilog:libhilog",
154        "hisysevent:libhisysevent",
155        "hitrace:hitrace_meter",
156        "ipc:ipc_single",
157        "os_account:os_account_innerkits",
158        "samgr:samgr_proxy",
159      ]
160
161      if (is_standard_system) {
162        external_deps += [ "init:libbegetutil" ]
163      } else {
164        external_deps += [ "startup:syspara" ]
165      }
166    }
167
168    if (defined(global_parts_info) &&
169        defined(global_parts_info.open_source_libyuv)) {
170      defines += [ "EXT_PIXEL" ]
171      sources += [ "src/pixel_yuv_ext_utils.cpp" ]
172    }
173
174    #relative_install_dir = "module/multimedia"
175    subsystem_name = "multimedia"
176    innerapi_tags = [ "platformsdk_indirect" ]
177    part_name = "image_framework"
178  }
179}
180
181ohos_static_library("image_utils_static") {
182  if (!is_arkui_x) {
183    sanitize = {
184      cfi = true
185      cfi_cross_dso = true
186      cfi_vcall_icall_only = true
187      debug = false
188    }
189  }
190
191  include_dirs = [
192    "${image_subsystem}/frameworks/innerkitsimpl/common/include",
193    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
194    "//foundation/multimedia/image_framework/plugins/manager/include",
195    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
196  ]
197
198  if (is_arkui_x) {
199    include_dirs += [ "//commonlibrary/c_utils/base/include" ]
200  }
201
202  sources = [
203    "src/color_utils.cpp",
204    "src/image_convert_tools.cpp",
205    "src/image_system_properties.cpp",
206    "src/image_type_converter.cpp",
207    "src/image_utils.cpp",
208    "src/pixel_yuv_utils.cpp",
209    "src/vpe_utils.cpp",
210  ]
211
212  if (use_mingw_win) {
213    defines = image_decode_windows_defines
214    include_dirs += [ "//third_party/ffmpeg" ]
215    include_dirs +=
216        [ "//foundation/multimedia/image_framework/mock/native/include" ]
217    deps = [
218      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
219      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
220    ]
221    deps += [ "//third_party/ffmpeg:libohosffmpeg" ]
222  } else if (use_clang_mac) {
223    defines = image_decode_mac_defines
224    include_dirs += [ "//third_party/ffmpeg" ]
225    include_dirs += [
226      "//foundation/multimedia/image_framework/mock/native/include",
227      "//third_party/bounds_checking_function/include",
228    ]
229    deps = [
230      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
231      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
232      "//third_party/bounds_checking_function:libsec_static",
233    ]
234    deps += [ "//third_party/ffmpeg:libohosffmpeg" ]
235  } else if (use_clang_ios) {
236    defines = image_decode_ios_defines
237    include_dirs += [
238      "$image_subsystem/mock/native/include/log",
239      "//third_party/bounds_checking_function/include",
240    ]
241    include_dirs += [ "//third_party/ffmpeg" ]
242    include_dirs += [ "$image_subsystem/mock/native/include/log" ]
243    deps = [
244      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
245      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
246    ]
247    sources += [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp" ]
248    sources += [
249      "src/image_data_statistics.cpp",
250      "src/image_dfx.cpp",
251      "src/image_func_timer.cpp",
252      "src/image_fwk_ext_manager.cpp",
253    ]
254    deps += [ "//third_party/ffmpeg:libohosffmpeg_static" ]
255  } else if (use_clang_android) {
256    defines = image_decode_android_defines
257    include_dirs += [
258      "$image_subsystem/mock/native/include/log",
259      "//third_party/bounds_checking_function/include",
260    ]
261    include_dirs += [ "//third_party/ffmpeg" ]
262    include_dirs += [ "$image_subsystem/mock/native/include/log" ]
263    deps = [
264      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
265      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
266    ]
267    sources += [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp" ]
268    sources += [
269      "src/image_data_statistics.cpp",
270      "src/image_dfx.cpp",
271      "src/image_func_timer.cpp",
272      "src/image_fwk_ext_manager.cpp",
273    ]
274    deps += [ "//third_party/ffmpeg:libohosffmpeg_static" ]
275  } else {
276    sources += [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/src/image_trace.cpp" ]
277    sources += [
278      "src/image_data_statistics.cpp",
279      "src/image_dfx.cpp",
280      "src/image_func_timer.cpp",
281      "src/image_fwk_ext_manager.cpp",
282    ]
283    deps = [
284      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
285    ]
286
287    external_deps = [
288      "c_utils:utils",
289      "drivers_interface_display:libdisplay_commontype_proxy_1.0",
290      "ffmpeg:libohosffmpeg",
291      "ffrt:libffrt",
292      "graphic_2d:color_manager",
293      "graphic_surface:surface",
294      "hilog:libhilog",
295      "hisysevent:libhisysevent",
296      "hitrace:hitrace_meter",
297    ]
298
299    if (is_standard_system) {
300      external_deps += [ "init:libbegetutil" ]
301    } else {
302      external_deps += [ "startup:syspara" ]
303    }
304  }
305  if (defined(global_parts_info) &&
306      defined(global_parts_info.open_source_libyuv)) {
307    defines = [ "EXT_PIXEL" ]
308    sources += [ "src/pixel_yuv_ext_utils.cpp" ]
309  }
310  subsystem_name = "multimedia"
311  part_name = "image_framework"
312}
313