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.
13
14import("//build/ohos.gni")
15import("//foundation/multimedia/image_framework/ide/image_decode_config.gni")
16
17image_native_ios_cflags = [
18  "-DIMAGE_DEBUG_FLAG",
19  "-DIMAGE_COLORSPACE_FLAG",
20]
21
22image_native_ios_sources = [
23  # plugin_manager
24  "//foundation/multimedia/image_framework/plugins/manager/src/common/attr_data.cpp",
25  "//foundation/multimedia/image_framework/plugins/manager/src/common/platform_adp.cpp",
26  "//foundation/multimedia/image_framework/plugins/manager/src/framework/capability.cpp",
27  "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class.cpp",
28  "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_key.cpp",
29  "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_mgr.cpp",
30  "//foundation/multimedia/image_framework/plugins/manager/src/framework/json_helper.cpp",
31  "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin.cpp",
32  "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_export.cpp",
33  "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_fw.cpp",
34  "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_info_lock.cpp",
35  "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_mgr.cpp",
36  "//foundation/multimedia/image_framework/plugins/manager/src/plugin_server.cpp",
37  "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase/plugin_class_base.cpp",
38  "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer/gst_plugin_fw.cpp",
39
40  # webp
41  "$skia_root/skia/third_party/externals/libjpeg-turbo/jdicc.c",
42
43  # image_native
44  "${image_subsystem}/frameworks/innerkitsimpl/common/src/memory_manager.cpp",
45  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer.cpp",
46  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_packer_ex.cpp",
47  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/src/image_source.cpp",
48  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/incremental_pixel_map.cpp",
49  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/pixel_map.cpp",
50  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp",
51  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/pixel_yuv.cpp",
52  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/basic_transformer.cpp",
53  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/image_format_convert.cpp",
54  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/image_format_convert_utils.cpp",
55  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/matrix.cpp",
56  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/pixel_convert.cpp",
57  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/post_proc.cpp",
58  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/post_proc_slr.cpp",
59  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/src/scan_line_filter.cpp",
60  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator.cpp",
61  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator_manager.cpp",
62  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver.cpp",
63  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver_manager.cpp",
64  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_packer_stream.cpp",
65  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/buffer_source_stream.cpp",
66  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_packer_stream.cpp",
67  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/file_source_stream.cpp",
68  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/incremental_source_stream.cpp",
69  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/istream_source_stream.cpp",
70  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
71
72  # accessor
73  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/abstract_exif_metadata_accessor.cpp",
74  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp",
75  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/data_buf.cpp",
76  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/dng_exif_metadata_accessor.cpp",
77  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/exif_metadata.cpp",
78  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/exif_metadata_formatter.cpp",
79  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/file_metadata_stream.cpp",
80  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/heif_exif_metadata_accessor.cpp",
81  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/jpeg_exif_metadata_accessor.cpp",
82  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/metadata_accessor_factory.cpp",
83  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/png_exif_metadata_accessor.cpp",
84  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/png_image_chunk_utils.cpp",
85  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/tiff_parser.cpp",
86  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/accessor/src/webp_exif_metadata_accessor.cpp",
87
88  # image_napi
89  "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp",
90  "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp",
91  "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp",
92  "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp",
93  "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp",
94
95  # formatagent
96  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/bmp_format_agent.cpp",
97  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/gif_format_agent.cpp",
98  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/heif_format_agent.cpp",
99  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/jpeg_format_agent.cpp",
100  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/png_format_agent.cpp",
101  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/raw_format_agent.cpp",
102  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/svg_format_agent.cpp",
103  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/wbmp_format_agent.cpp",
104  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/src/webp_format_agent.cpp",
105
106  # bmp
107  "//foundation/multimedia/image_framework/plugins/common/libs/image/libbmpplugin/src/bmp_decoder.cpp",
108  "//foundation/multimedia/image_framework/plugins/common/libs/image/libbmpplugin/src/bmp_stream.cpp",
109
110  # gif
111  "//foundation/multimedia/image_framework/plugins/common/libs/image/libgifplugin/src/gif_encoder.cpp",
112
113  # jpeg
114  "${image_subsystem}/plugins/common/libs/image/libjpegplugin/src/exif_maker_note.cpp",
115  "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/exif_info.cpp",
116  "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/icc_profile_info.cpp",
117  "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_decoder.cpp",
118  "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_encoder.cpp",
119  "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_utils.cpp",
120
121  # png
122  "//foundation/multimedia/image_framework/plugins/common/libs/image/libpngplugin/src/nine_patch_listener.cpp",
123  "//foundation/multimedia/image_framework/plugins/common/libs/image/libpngplugin/src/png_decoder.cpp",
124  "//foundation/multimedia/image_framework/plugins/common/libs/image/libpngplugin/src/png_ninepatch_res.cpp",
125
126  # raw
127  "//foundation/multimedia/image_framework/plugins/common/libs/image/librawplugin/src/raw_decoder.cpp",
128  "//foundation/multimedia/image_framework/plugins/common/libs/image/librawplugin/src/raw_stream.cpp",
129
130  # svg
131  "//foundation/multimedia/image_framework/plugins/common/libs/image/libsvgplugin/src/svg_decoder.cpp",
132  "//foundation/multimedia/image_framework/plugins/common/libs/image/libwebpplugin/src/webp_decoder.cpp",
133  "//foundation/multimedia/image_framework/plugins/common/libs/image/libwebpplugin/src/webp_encoder.cpp",
134
135  # ext
136  "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp",
137  "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/src/ext_encoder.cpp",
138  "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/src/ext_pixel_convert.cpp",
139  "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/src/ext_stream.cpp",
140  "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/src/ext_wstream.cpp",
141]
142
143# image_native: not support
144image_native_ios_sources -= [
145  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp",
146  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator.cpp",
147  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/src/image_creator_manager.cpp",
148  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver.cpp",
149  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/src/image_receiver_manager.cpp",
150]
151
152image_native_ios_include_dirs = [
153  # manager
154  "//foundation/multimedia/image_framework/plugins/manager/include/utils",
155  "//foundation/multimedia/image_framework/plugins/manager/src/common",
156  "//foundation/multimedia/image_framework/plugins/manager/src/framework",
157  "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
158  "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
159  "//third_party/json/single_include/nlohmann",
160
161  # common
162  "//foundation/multimedia/utils/include",
163  "//foundation/multimedia/image_framework/interfaces/innerkits/include",
164  "//foundation/multimedia/image_framework/plugins/manager/include",
165  "//foundation/multimedia/image_framework/plugins/manager/include/image",
166  "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
167  "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include",
168  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
169  "//foundation/graphic/graphic_2d/utils/color_manager/export",
170  "$skia_root/skia/third_party/externals/libjpeg-turbo",
171  "$skia_root/skia/include/codec",
172  "$skia_root/skia",
173  "$skia_root/skia/include/core",
174  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
175  "//foundation/multimedia/image_framework/mock/native/include/log",
176  "//commonlibrary/c_utils/base/include",
177  "//foundation/multimedia/image_framework/mock/native/include/secure",
178  "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
179  "$skia_root/skia/third_party/skcms",
180
181  # webp
182  "//foundation/multimedia/image_framework/plugins/common/libs/image/libwebpplugin/include",
183  "$skia_root/skia/third_party/externals/libwebp/src",
184  "$skia_root/skia/include/encode",
185  "$skia_root/skia/src/ports/skia_ohos",
186  "$skia_root/skia/src/ports",
187  "$skia_root/skia/src/images",
188  "//third_party/expat/lib",
189  "$skia_root/skia/include/private",
190  "$skia_root/skia/third_party/externals/freetype/include/freetype",
191
192  # bmp
193  "//foundation/multimedia/image_framework/plugins/common/libs/image/libbmpplugin/include",
194
195  # svg
196  "//foundation/multimedia/image_framework/plugins/common/libs/image/libsvgplugin/include",
197
198  # raw
199  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/include",
200  "//foundation/multimedia/image_framework/plugins/common/libs/image/librawplugin/include",
201  "//third_party/skia",
202
203  # png
204  "//foundation/multimedia/image_framework/plugins/common/libs/image/libpngplugin/include",
205  "//third_party/zlib",
206  "//third_party/libpng",
207
208  # formatagent
209  "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/include",
210  "//foundation/multimedia/image_framework/plugins/manager/include/utils",
211
212  # gif
213  "//foundation/multimedia/image_framework/plugins/common/libs/image/libgifplugin/include",
214  "//third_party/giflib",
215
216  # jpeg
217  "$skia_root/skia/third_party/libjpeg-turbo",
218  "//third_party/libexif",
219
220  # image_native
221  "//utils/system/safwk/native/include",
222  "//foundation/ability/ability_runtime/interfaces/inner_api/runtime/include/",
223  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include",
224  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include",
225  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include",
226  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/include",
227  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
228  "//foundation/multimedia/image_framework/frameworks/kits/js/common/include",
229  "//foundation/multimedia/image_framework/interfaces/kits/js/common/include",
230  "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin",
231  "//foundation/multimedia/image_framework/interfaces/kits/native/include",
232  "//foundation/multimedia/image_framework/interfaces/kits/native/include/image",
233  "//utils/jni/jnikit/include",
234  "//foundation/graphic/graphic_surface/interfaces/inner_api/surface",
235  "//foundation/graphic/graphic_surface/interfaces/inner_api/utils",
236  "//foundation/graphic/graphic_2d/interfaces/inner_api/common",
237  "//foundation/graphic/graphic_2d/interfaces/kits/napi/graphic/color_manager/color_space_object_convertor",
238  "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include",
239  "//drivers/peripheral/display/interfaces/include",
240  "//drivers/peripheral/base",
241  "//third_party/skia/third_party/externals/libjpeg-turbo",
242
243  # ext
244  "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/include",
245  "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/include/hdr",
246  "//foundation/graphic/graphic_2d/interfaces/inner_api/surface",
247]
248
249image_native_ios_deps = [
250  # image_native
251  "//foundation/arkui/napi:ace_napi",
252  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter_static",
253  "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils_static",
254  "//foundation/multimedia/image_framework/mock/native:log_mock_static",
255
256  # jpeg
257  "//third_party/skia/third_party/libjpeg-turbo:libjpeg",
258
259  #"//third_party/libpng:png_static",
260  # gif
261  # png
262  "//third_party/giflib:gif_static",
263  "//third_party/libexif:exif_static",
264  "//third_party/skia/third_party/libpng:libpng",
265
266  # heif
267  "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
268
269  # raw
270  "//third_party/skia/third_party/piex",
271]
272
273image_native_ios_deps += skia_skcms
274image_native_ios_deps += skia_platform
275if (!defined(is_arkui_x) || !is_arkui_x) {
276  image_native_ios_deps += [ "//third_party/ffmpeg:libohosffmpeg" ]
277}
278
279image_native_ios_external_deps = [
280  # common
281  "c_utils:utilsbase",
282
283  # png
284  "//third_party/zlib:shared_libz",
285]
286