• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2022 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("//build/ohos/ace/ace.gni")
16import("//build/config/components/memory_utils/purgeable_mem_config.gni")
17import("//foundation/multimedia/image_framework/ide/image_decode_config.gni")
18import("$image_subsystem/plugins/cross/image_native_android.gni")
19import("$image_subsystem/plugins/cross/image_native_ios.gni")
20
21config("image_external_config") {
22  include_dirs = [
23    "include",
24    "include/mdkKits",
25    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include",
26    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include",
27    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include",
28    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
29    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/include",
30    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
31    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/include",
32    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
33    "${image_subsystem}/frameworks/innerkitsimpl/accessor/include",
34    "//foundation/multimedia/image_framework/frameworks/kits/js/common/include",
35    "//foundation/multimedia/image_framework/interfaces/kits/js/common/include",
36    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin",
37    "${image_subsystem}/plugins/common/libs/image/libextplugin/include",
38    "//foundation/multimedia/image_framework/plugins/manager/include",
39    "//foundation/multimedia/image_framework/plugins/manager/include/image",
40    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
41    "//foundation/multimedia/image_framework/interfaces/kits/native/include",
42    "${image_subsystem}/frameworks/kits/js/common/ndk/include",
43    "${image_subsystem}/frameworks/kits/js/common/picture_ndk/include",
44    "${image_subsystem}/frameworks/innerkitsimpl/egl_image/include",
45  ]
46
47  include_dirs += [
48    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
49    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include",
50    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
51    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
52    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser",
53    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/hdr",
54  ]
55  if (is_arkui_x) {
56    include_dirs += [
57      "//foundation/graphic/graphic_2d/utils/color_manager/export",
58      "//commonlibrary/c_utils/base/include",
59      "$third_party_skia_root",
60    ]
61    if (image_use_new_skia) {
62      defines = [ "USE_M133_SKIA" ]
63    }
64  }
65
66  if (use_mingw_win) {
67    include_dirs +=
68        [ "//foundation/multimedia/image_framework/mock/native/include" ]
69  } else if (use_clang_mac) {
70    include_dirs += [
71      "//foundation/multimedia/image_framework/mock/native/include",
72      "//third_party/bounds_checking_function/include",
73      "//commonlibrary/c_utils/base/include",
74      "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
75    ]
76  }
77}
78
79js_declaration("image_js") {
80  part_name = "image_framework"
81  sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ]
82}
83
84ohos_copy("image_declaration") {
85  sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ]
86  outputs = [ target_out_dir + "/$target_name/" ]
87  module_source_dir = target_out_dir + "/$target_name"
88  module_install_name = ""
89}
90
91config("image_postproc_config") {
92  include_dirs = [ "//third_party/ffmpeg" ]
93}
94
95if (use_clang_android) {
96  ohos_source_set("image_native") {
97    public_configs = [ ":image_external_config" ]
98    configs = [ ":image_postproc_config" ]
99    defines = image_decode_android_defines
100    defines += [ "CROSS_PLATFORM" ]
101    if (image_use_new_skia) {
102      defines += [ "USE_M133_SKIA" ]
103    }
104    cflags = image_native_android_cflags
105    sources = image_native_android_sources
106    include_dirs = image_native_android_include_dirs
107    deps = image_native_android_deps
108    deps += [ "//third_party/ffmpeg:libohosffmpeg_static" ]
109    subsystem_name = "multimedia"
110    part_name = "image_framework"
111  }
112} else if (use_clang_ios) {
113  ohos_source_set("image_native") {
114    public_configs = [ ":image_external_config" ]
115    configs = [ ":image_postproc_config" ]
116    defines = image_decode_ios_defines
117    defines += [ "CROSS_PLATFORM" ]
118    if (image_use_new_skia) {
119      defines += [ "USE_M133_SKIA" ]
120    }
121    cflags = image_native_ios_cflags
122    include_dirs = image_native_ios_include_dirs
123    sources = image_native_ios_sources
124    deps = image_native_ios_deps
125    deps += [ "//third_party/ffmpeg:libohosffmpeg_static" ]
126    external_deps = image_native_ios_external_deps
127    subsystem_name = "multimedia"
128    part_name = "image_framework"
129  }
130} else {
131  ohos_shared_library("image_native") {
132    if (!use_clang_android) {
133      branch_protector_ret = "pac_ret"
134      sanitize = {
135        cfi = true
136        cfi_cross_dso = true
137        cfi_vcall_icall_only = true
138        debug = false
139      }
140    }
141    public_configs = [ ":image_external_config" ]
142
143    cflags = [
144      "-DIMAGE_DEBUG_FLAG",
145      "-DIMAGE_COLORSPACE_FLAG",
146      "-DNEW_SKIA",
147    ]
148
149    sources = [
150      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/abstract_exif_metadata_accessor.cpp",
151      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp",
152      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/data_buf.cpp",
153      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/dng_exif_metadata_accessor.cpp",
154      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/exif_metadata.cpp",
155      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/exif_metadata_formatter.cpp",
156      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/file_metadata_stream.cpp",
157      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
158      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/heif_exif_metadata_accessor.cpp",
159      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/jpeg_exif_metadata_accessor.cpp",
160      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/metadata_accessor_factory.cpp",
161      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/png_exif_metadata_accessor.cpp",
162      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/png_image_chunk_utils.cpp",
163      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/tiff_parser.cpp",
164      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/webp_exif_metadata_accessor.cpp",
165      "${image_subsystem}/frameworks/innerkitsimpl/common/src/memory_manager.cpp",
166      "${image_subsystem}/frameworks/innerkitsimpl/common/src/native_image.cpp",
167      "${image_subsystem}/frameworks/innerkitsimpl/common/src/pixel_astc.cpp",
168      "${image_subsystem}/frameworks/innerkitsimpl/common/src/pixel_yuv.cpp",
169      "${image_subsystem}/frameworks/innerkitsimpl/converter/src/image_format_convert.cpp",
170      "${image_subsystem}/frameworks/innerkitsimpl/converter/src/image_format_convert_utils.cpp",
171      "${image_subsystem}/frameworks/innerkitsimpl/converter/src/post_proc_slr.cpp",
172      "${image_subsystem}/frameworks/innerkitsimpl/picture/auxiliary_generator.cpp",
173      "${image_subsystem}/frameworks/innerkitsimpl/picture/auxiliary_picture.cpp",
174      "${image_subsystem}/frameworks/innerkitsimpl/picture/picture.cpp",
175      "${image_subsystem}/plugins/common/libs/image/libextplugin/src/hdr/jpeg_mpf_parser.cpp",
176      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer.cpp",
177      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer_ex.cpp",
178      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_source.cpp",
179      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/incremental_pixel_map.cpp",
180      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/pixel_map.cpp",
181      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp",
182      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/basic_transformer.cpp",
183      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/matrix.cpp",
184      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/pixel_convert.cpp",
185      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/post_proc.cpp",
186      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/scan_line_filter.cpp",
187      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator.cpp",
188      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator_manager.cpp",
189      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver.cpp",
190      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver_manager.cpp",
191      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_packer_stream.cpp",
192      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_source_stream.cpp",
193      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_packer_stream.cpp",
194      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_source_stream.cpp",
195      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/incremental_source_stream.cpp",
196      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/istream_source_stream.cpp",
197      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
198    ]
199
200    if (use_mingw_win) {
201      defines = image_decode_windows_defines
202      sources -= [
203        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer.cpp",
204        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer_ex.cpp",
205        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_packer_stream.cpp",
206        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_packer_stream.cpp",
207        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
208      ]
209      deps = [
210        "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
211        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
212        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils_static",
213        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
214        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
215        "//third_party/ffmpeg:libohosffmpeg_static",
216      ]
217      external_deps = [ "graphic_surface:surface" ]
218    } else if (use_clang_mac) {
219      defines = image_decode_mac_defines
220      sources -= [
221        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer.cpp",
222        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer_ex.cpp",
223        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_packer_stream.cpp",
224        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_packer_stream.cpp",
225        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
226      ]
227      deps = [
228        "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
229        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
230        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils_static",
231        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
232        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
233        "//third_party/bounds_checking_function:libsec_statics",
234        "//third_party/ffmpeg:libohosffmpeg_static",
235      ]
236      external_deps = [ "graphic_surface:surface" ]
237    } else {
238      defines = [ "DUAL_ADAPTER" ]
239      DUAL_ADAPTER = true
240      deps = [
241        "${image_subsystem}/frameworks/innerkitsimpl/egl_image:post_proc_gl",
242        "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
243        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
244        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
245        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
246      ]
247
248      if (DUAL_ADAPTER) {
249      } else {
250        deps += [ "//third_party/libpng:libpng" ]
251      }
252      external_deps = [
253        "astc-encoder:astc_encoder_shared",
254        "c_utils:utils",
255        "drivers_interface_display:libdisplay_commontype_proxy_1.0",
256        "drivers_interface_display:libdisplay_composer_proxy_1.2",
257        "drivers_interface_display:libhdifd_parcelable",
258        "ffmpeg:libohosffmpeg",
259        "ffrt:libffrt",
260        "hilog:libhilog",
261        "hitrace:hitrace_meter",
262        "ipc:ipc_core",
263        "libjpeg-turbo:turbojpeg",
264        "napi:ace_napi",
265        "zlib:libz",
266      ]
267      public_external_deps = [
268        "graphic_2d:color_manager",
269        "graphic_surface:surface",
270        "skia:skia_canvaskit",
271      ]
272      if (enable_libexif) {
273        external_deps += [ "libexif:libexif" ]
274      }
275      if (is_ohos && is_standard_system && !is_arkui_x &&
276          defined(global_parts_info) &&
277          defined(global_parts_info.resourceschedule_qos_manager)) {
278        defines += [ "IMAGE_QOS_ENABLE" ]
279        external_deps += [ "qos_manager:qos" ]
280      }
281      if (enable_heif_hw_decode) {
282        defines += [ "HEIF_HW_DECODE_ENABLE" ]
283        external_deps += [ "drivers_interface_codec:libcodec_proxy_4.0" ]
284      }
285      if (enable_heif_hw_encode) {
286        defines += [ "HEIF_HW_ENCODE_ENABLE" ]
287        external_deps += [
288          "drivers_interface_codec:libcodec_proxy_4.0",
289          "drivers_interface_codec:libimage_proxy_2.1",
290        ]
291      }
292    }
293    if (target_cpu == "arm64" || is_emulator) {
294      defines += [ "SUT_PATH_X64" ]
295    }
296    if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) &&
297        defined(global_parts_info.resourceschedule_memmgr_override)) {
298      defines += [ "IMAGE_PURGEABLE_PIXELMAP" ]
299      external_deps += [ "memmgr_override:libpurgeablemem_plugin" ]
300    }
301    external_deps += [ "zlib:libz" ]
302
303    if (defined(global_parts_info) &&
304        defined(global_parts_info.open_source_libyuv)) {
305      defines += [ "EXT_PIXEL" ]
306      sources += [
307        "${image_subsystem}/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp",
308        "${image_subsystem}/frameworks/innerkitsimpl/converter/src/image_format_convert_ext_utils.cpp",
309      ]
310    }
311    if (image_use_new_skia) {
312      defines += [ "USE_M133_SKIA" ]
313    }
314    #  relative_install_dir = "module/multimedia"
315    subsystem_name = "multimedia"
316    innerapi_tags = [ "platformsdk" ]
317    part_name = "image_framework"
318    version_script = "libimage_native.versionscript"
319  }
320}
321
322if (use_mingw_win || use_clang_mac || use_clang_ios || use_clang_android) {
323  ohos_static_library("image_static") {
324    if (!is_arkui_x) {
325      sanitize = {
326        cfi = true
327        cfi_cross_dso = true
328        cfi_vcall_icall_only = true
329        debug = false
330      }
331    }
332    public_configs = [ ":image_external_config" ]
333
334    sources = [
335      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/abstract_exif_metadata_accessor.cpp",
336      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp",
337      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/data_buf.cpp",
338      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/dng_exif_metadata_accessor.cpp",
339      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/exif_metadata.cpp",
340      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/exif_metadata_formatter.cpp",
341      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/file_metadata_stream.cpp",
342      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
343      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/heif_exif_metadata_accessor.cpp",
344      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/jpeg_exif_metadata_accessor.cpp",
345      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/metadata_accessor_factory.cpp",
346      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/png_exif_metadata_accessor.cpp",
347      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/png_image_chunk_utils.cpp",
348      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/tiff_parser.cpp",
349      "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/webp_exif_metadata_accessor.cpp",
350      "${image_subsystem}/frameworks/innerkitsimpl/common/src/pixel_astc.cpp",
351      "${image_subsystem}/frameworks/innerkitsimpl/common/src/pixel_yuv.cpp",
352      "${image_subsystem}/frameworks/innerkitsimpl/converter/src/image_format_convert.cpp",
353      "${image_subsystem}/frameworks/innerkitsimpl/converter/src/image_format_convert_utils.cpp",
354      "${image_subsystem}/frameworks/innerkitsimpl/converter/src/post_proc_slr.cpp",
355      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer.cpp",
356      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer_ex.cpp",
357      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_source.cpp",
358      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/incremental_pixel_map.cpp",
359      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/pixel_map.cpp",
360      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/basic_transformer.cpp",
361      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/matrix.cpp",
362      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/pixel_convert.cpp",
363      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/post_proc.cpp",
364      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/scan_line_filter.cpp",
365      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator.cpp",
366      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator_manager.cpp",
367      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver.cpp",
368      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver_manager.cpp",
369      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_packer_stream.cpp",
370      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_source_stream.cpp",
371      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_packer_stream.cpp",
372      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_source_stream.cpp",
373      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/incremental_source_stream.cpp",
374      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/istream_source_stream.cpp",
375      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
376    ]
377
378    if (use_mingw_win) {
379      defines = image_decode_windows_defines
380      sources -= [
381        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer.cpp",
382        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer_ex.cpp",
383        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_packer_stream.cpp",
384        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_packer_stream.cpp",
385        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
386      ]
387      deps = [
388        "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
389        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
390        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils_static",
391        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
392        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
393      ]
394      external_deps = [ "graphic_surface:surface" ]
395    } else if (use_clang_mac) {
396      defines = image_decode_mac_defines
397      sources -= [
398        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer.cpp",
399        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer_ex.cpp",
400        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_packer_stream.cpp",
401        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_packer_stream.cpp",
402        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
403      ]
404
405      deps = [
406        "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
407        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
408        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils_static",
409        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
410        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
411        "//third_party/bounds_checking_function:libsec_static",
412      ]
413      deps += [ "//third_party/ffmpeg:libohosffmpeg" ]
414      external_deps = [ "graphic_surface:surface" ]
415    } else if (use_clang_ios) {
416      defines = image_decode_ios_defines
417      defines += [ "CROSS_PLATFORM" ]
418      sources -= [
419        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator.cpp",
420        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator_manager.cpp",
421        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver.cpp",
422        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver_manager.cpp",
423      ]
424      deps = [
425        "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
426        "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
427        "//foundation/arkui/napi:ace_napi",
428        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
429        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
430        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
431      ]
432      external_deps = []
433    } else if (use_clang_android) {
434      defines = image_decode_android_defines
435      defines += [ "CROSS_PLATFORM" ]
436      sources -= [
437        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator.cpp",
438        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator_manager.cpp",
439        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver.cpp",
440        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver_manager.cpp",
441      ]
442      deps = [
443        "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
444        "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
445        "//commonlibrary/c_utils/base:utils",
446        "//foundation/arkui/napi:ace_napi",
447        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
448        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
449      ]
450      external_deps = []
451    } else {
452      defines = [
453        "DUAL_ADAPTER",
454        "IMAGE_COLORSPACE_FLAG",
455      ]
456      DUAL_ADAPTER = true
457
458      deps = [
459        "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
460        "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
461        "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
462      ]
463
464      if (DUAL_ADAPTER) {
465      } else {
466        deps += [ "//third_party/libpng:libpng" ]
467      }
468      external_deps = [
469        "c_utils:utils",
470        "drivers_interface_display:libdisplay_commontype_proxy_1.0",
471        "drivers_interface_display:libdisplay_composer_proxy_1.2",
472        "ffmpeg:libohosffmpeg",
473        "graphic_2d:color_manager",
474        "graphic_surface:surface",
475        "hilog:libhilog",
476        "napi:ace_napi",
477      ]
478      if (enable_libexif) {
479        external_deps += [ "libexif:libexif" ]
480      }
481    }
482    if (is_arkui_x) {
483      deps += [ "//third_party/zlib:libz" ]
484    } else {
485      external_deps += [ "zlib:libz" ]
486    }
487
488    if (defined(global_parts_info) &&
489        defined(global_parts_info.open_source_libyuv)) {
490      defines += [ "EXT_PIXEL" ]
491      sources += [
492        "${image_subsystem}/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp",
493        "${image_subsystem}/frameworks/innerkitsimpl/converter/src/image_format_convert_ext_utils.cpp",
494      ]
495    }
496    if (target_cpu == "arm64" || is_emulator) {
497      defines += [ "SUT_PATH_X64" ]
498    }
499    subsystem_name = "multimedia"
500    part_name = "image_framework"
501  }
502}
503