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("//foundation/multimedia/image_framework/ide/image_decode_config.gni") 17 18config("image_external_config") { 19 include_dirs = [ 20 "include", 21 "${image_subsystem}/frameworks/kits/js/common/ndk/include", 22 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 23 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 24 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include", 25 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include", 26 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/include", 27 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include", 28 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/include", 29 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include", 30 "${image_subsystem}/frameworks/innerkitsimpl/accessor/include", 31 "//foundation/multimedia/image_framework/frameworks/kits/js/common/include", 32 "//foundation/multimedia/image_framework/interfaces/kits/js/common/include", 33 "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin", 34 "//foundation/multimedia/image_framework/plugins/manager/include", 35 "//foundation/multimedia/image_framework/plugins/manager/include/image", 36 "//foundation/multimedia/image_framework/interfaces/innerkits/include", 37 "//foundation/multimedia/image_framework/interfaces/kits/native/include", 38 "${image_subsystem}/interfaces/kits/js/common/include/sendable", 39 "${image_subsystem}/interfaces/kits/native/include/image", 40 "${image_subsystem}/plugins/common/libs/image/libextplugin/include/jpeg_yuv_decoder", 41 ] 42 43 include_dirs += [ 44 "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase", 45 "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include", 46 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include", 47 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include", 48 ] 49 50 if (use_mingw_win) { 51 include_dirs += 52 [ "//foundation/multimedia/image_framework/mock/native/include" ] 53 } else if (use_clang_mac) { 54 include_dirs += [ 55 "//foundation/multimedia/image_framework/mock/native/include", 56 "//third_party/bounds_checking_function/include", 57 "//commonlibrary/c_utils/base/include", 58 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 59 ] 60 } else if (use_clang_ios) { 61 include_dirs += [ 62 "$image_subsystem/mock/native/include/log", 63 "//foundation/multimedia/image_framework/mock/native/include/secure", 64 ] 65 include_dirs -= [ 66 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 67 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 68 ] 69 } else if (use_clang_android) { 70 include_dirs += [ 71 "//commonlibrary/c_utils/base/include", 72 "$image_subsystem/mock/native/include/log", 73 ] 74 75 include_dirs -= [ 76 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 77 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 78 ] 79 } 80} 81 82js_declaration("image_js") { 83 part_name = "image_framework" 84 sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ] 85} 86 87ohos_copy("image_declaration") { 88 sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ] 89 outputs = [ target_out_dir + "/$target_name/" ] 90 module_source_dir = target_out_dir + "/$target_name" 91 module_install_name = "" 92} 93 94if (use_clang_ios) { 95 ohos_source_set("image") { 96 public_configs = [ ":image_external_config" ] 97 sources = [ 98 "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp", 99 "${image_subsystem}/frameworks/kits/js/common/auxiliary_picture_napi.cpp", 100 "${image_subsystem}/frameworks/kits/js/common/image_error_convert.cpp", 101 "${image_subsystem}/frameworks/kits/js/common/metadata_napi.cpp", 102 "${image_subsystem}/frameworks/kits/js/common/picture_napi.cpp", 103 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 104 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 105 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 106 "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp", 107 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 108 ] 109 110 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 111 112 defines = image_decode_ios_defines 113 deps = [ 114 "//foundation/arkui/napi:ace_napi", 115 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 116 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 117 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 118 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 119 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 120 ] 121 122 #relative_install_dir = "module/multimedia" 123 subsystem_name = "multimedia" 124 part_name = "image_framework" 125 } 126} else { 127 ohos_shared_library("image_napi") { 128 if (!use_clang_android && !use_clang_ios) { 129 branch_protector_ret = "pac_ret" 130 sanitize = { 131 cfi = true 132 cfi_cross_dso = true 133 cfi_vcall_icall_only = true 134 debug = false 135 } 136 } 137 sources = [ 138 "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp", 139 ] 140 141 cflags = [ 142 "-DIMAGE_DEBUG_FLAG", 143 "-DIMAGE_COLORSPACE_FLAG", 144 ] 145 146 deps = [ 147 ":image", 148 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 149 ] 150 151 external_deps = [ 152 "c_utils:utils", 153 "graphic_2d:color_manager", 154 "graphic_surface:surface", 155 "hilog:libhilog", 156 "ipc:ipc_single", 157 "napi:ace_napi", 158 ] 159 160 output_name = "libimage" 161 relative_install_dir = "module/multimedia" 162 subsystem_name = "multimedia" 163 part_name = "image_framework" 164 } 165 166 ohos_shared_library("sendableimage") { 167 if (!use_clang_android && !use_clang_ios) { 168 sanitize = { 169 cfi = true 170 cfi_cross_dso = true 171 cfi_vcall_icall_only = true 172 debug = false 173 } 174 } 175 sources = [ "$image_subsystem/frameworks/kits/js/common/sendable/native_module_image_sendable.cpp" ] 176 177 cflags = [ 178 "-DIMAGE_DEBUG_FLAG", 179 "-DIMAGE_COLORSPACE_FLAG", 180 ] 181 182 deps = [ 183 ":image", 184 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 185 ] 186 187 external_deps = [ 188 "c_utils:utils", 189 "graphic_2d:color_manager", 190 "graphic_surface:surface", 191 "hilog:libhilog", 192 "ipc:ipc_single", 193 "napi:ace_napi", 194 ] 195 196 output_name = "libsendableimage" 197 relative_install_dir = "module/multimedia" 198 subsystem_name = "multimedia" 199 part_name = "image_framework" 200 } 201 202 ohos_shared_library("image") { 203 if (!use_clang_android && !use_clang_ios) { 204 branch_protector_ret = "pac_ret" 205 sanitize = { 206 cfi = true 207 cfi_cross_dso = true 208 cfi_vcall_icall_only = true 209 debug = false 210 } 211 } 212 public_configs = [ ":image_external_config" ] 213 sources = [ 214 "$image_subsystem/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp", 215 "$image_subsystem/frameworks/innerkitsimpl/accessor/src/exif_metadata_formatter.cpp", 216 "$image_subsystem/frameworks/kits/js/common/image_format_convert_mdk_kits.cpp", 217 "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp", 218 "$image_subsystem/frameworks/kits/js/common/image_packer_mdk_kits.cpp", 219 "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp", 220 "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp", 221 "$image_subsystem/frameworks/kits/js/common/image_source_mdk_kits.cpp", 222 "${image_subsystem}/frameworks/kits/js/common/auxiliary_picture_napi.cpp", 223 "${image_subsystem}/frameworks/kits/js/common/image_error_convert.cpp", 224 "${image_subsystem}/frameworks/kits/js/common/metadata_napi.cpp", 225 "${image_subsystem}/frameworks/kits/js/common/picture_napi.cpp", 226 "${image_subsystem}/frameworks/kits/js/common/sendable/sendable_image_napi.cpp", 227 "${image_subsystem}/frameworks/kits/js/common/sendable/sendable_image_receiver_napi.cpp", 228 "${image_subsystem}/frameworks/kits/js/common/sendable/sendable_image_source_napi.cpp", 229 "${image_subsystem}/frameworks/kits/js/common/sendable/sendable_pixel_map_napi.cpp", 230 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 231 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 232 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 233 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 234 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 235 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 236 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 237 ] 238 239 cflags = [ 240 "-DIMAGE_DEBUG_FLAG", 241 "-DIMAGE_COLORSPACE_FLAG", 242 ] 243 external_deps = [ "skia:libjpeg", "libjpeg-turbo:turbojpeg"] 244 245 if (use_clang_android) { 246 defines = image_decode_android_defines 247 cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ] 248 sources -= [ 249 "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp", 250 "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp", 251 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 252 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 253 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 254 ] 255 deps = [ 256 "//commonlibrary/c_utils/base:utils", 257 "//foundation/arkui/napi:ace_napi", 258 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 259 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 260 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 261 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 262 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 263 ] 264 } else { 265 defines = [] 266 deps = [ 267 "$image_subsystem/frameworks/innerkitsimpl/egl_image:egl_image", 268 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 269 "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils", 270 "$image_subsystem/interfaces/innerkits:image_native", 271 ] 272 external_deps += [ "hilog:libhilog" ] 273 } 274 275 external_deps += [ 276 "ability_runtime:runtime", 277 "c_utils:utils", 278 "drivers_interface_display:display_commontype_idl_headers", 279 "drivers_interface_display:libdisplay_composer_proxy_1.2", 280 "drivers_interface_display:libhdifd_parcelable", 281 "ets_runtime:libark_jsruntime", 282 "eventhandler:libeventhandler", 283 "graphic_2d:2d_graphics", 284 "graphic_2d:EGL", 285 "graphic_2d:GLESv3", 286 "graphic_2d:color_manager", 287 "graphic_2d:color_space_object_convertor", 288 "graphic_2d:libcomposer", 289 "graphic_2d:librender_service_base", 290 "graphic_2d:librender_service_client", 291 "graphic_surface:surface", 292 "graphic_surface:sync_fence", 293 "hitrace:hitrace_meter", 294 "ipc:ipc_napi", 295 "ipc:ipc_single", 296 "napi:ace_napi", 297 "resource_management:librawfile", 298 ] 299 300 public_external_deps = [ "graphic_2d:color_manager" ] 301 302 if (defined(global_parts_info) && 303 defined(global_parts_info.hiviewdfx_hichecker)) { 304 external_deps += [ "hichecker:libhichecker" ] 305 defines += [ "HICHECKER_ENABLE" ] 306 } 307 308 output_name = "libimage_napi" 309 subsystem_name = "multimedia" 310 innerapi_tags = [ "platformsdk" ] 311 part_name = "image_framework" 312 } 313 314 if (use_clang_android) { 315 ohos_shared_library("multimedia_image") { 316 public_configs = [ ":image_external_config" ] 317 sources = [ 318 "$image_subsystem/frameworks/kits/js/common/auxiliary_picture_napi.cpp", 319 "$image_subsystem/frameworks/kits/js/common/image_error_convert.cpp", 320 "$image_subsystem/frameworks/kits/js/common/image_packer_napi.cpp", 321 "$image_subsystem/frameworks/kits/js/common/image_source_napi.cpp", 322 "$image_subsystem/frameworks/kits/js/common/metadata_napi.cpp", 323 "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp", 324 "$image_subsystem/frameworks/kits/js/common/picture_napi.cpp", 325 "$image_subsystem/frameworks/kits/js/common/pixel_map_napi.cpp", 326 "$image_subsystem/kits/js/common/image_napi_utils.cpp", 327 ] 328 329 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 330 331 defines = image_decode_android_defines 332 deps = [ 333 "$commonlibrary_subsystem/base:utils", 334 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 335 "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils", 336 "$image_subsystem/interfaces/innerkits:image_native", 337 "$image_subsystem/mock/native:log_mock_static", 338 "$image_subsystem/plugins/manager:pluginmanager", 339 "$plugins_lib_root/napi:napi_android", 340 ] 341 342 external_deps = [ 343 "c_utils:utils", 344 "hitrace:hitrace_meter", 345 ] 346 347 if (defined(global_parts_info) && 348 defined(global_parts_info.hiviewdfx_hichecker)) { 349 external_deps += [ "hichecker:libhichecker" ] 350 defines += [ "HICHECKER_ENABLE" ] 351 } 352 353 relative_install_dir = "module/multimedia" 354 subsystem_name = "multimedia" 355 part_name = "image_framework" 356 } 357 } 358} 359