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