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/metadata_napi.cpp", 101 "${image_subsystem}/frameworks/kits/js/common/picture_napi.cpp", 102 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 103 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 104 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 105 "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp", 106 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 107 ] 108 109 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 110 111 defines = image_decode_ios_defines 112 deps = [ 113 "//foundation/arkui/napi:ace_napi", 114 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 115 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 116 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 117 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 118 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 119 ] 120 121 #relative_install_dir = "module/multimedia" 122 subsystem_name = "multimedia" 123 part_name = "image_framework" 124 } 125} else { 126 ohos_shared_library("image_napi") { 127 if (!use_clang_android && !use_clang_ios) { 128 branch_protector_ret = "pac_ret" 129 sanitize = { 130 cfi = true 131 cfi_cross_dso = true 132 cfi_vcall_icall_only = true 133 debug = false 134 } 135 } 136 sources = [ 137 "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp", 138 ] 139 140 cflags = [ 141 "-DIMAGE_DEBUG_FLAG", 142 "-DIMAGE_COLORSPACE_FLAG", 143 ] 144 145 deps = [ 146 ":image", 147 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 148 ] 149 150 external_deps = [ 151 "c_utils:utils", 152 "drivers_peripheral_display:hdi_gralloc_client", 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 "drivers_peripheral_display:hdi_gralloc_client", 190 "graphic_2d:color_manager", 191 "graphic_surface:surface", 192 "hilog:libhilog", 193 "ipc:ipc_single", 194 "napi:ace_napi", 195 ] 196 197 output_name = "libsendableimage" 198 relative_install_dir = "module/multimedia" 199 subsystem_name = "multimedia" 200 part_name = "image_framework" 201 } 202 203 ohos_shared_library("image") { 204 if (!use_clang_android && !use_clang_ios) { 205 branch_protector_ret = "pac_ret" 206 sanitize = { 207 cfi = true 208 cfi_cross_dso = true 209 cfi_vcall_icall_only = true 210 debug = false 211 } 212 } 213 public_configs = [ ":image_external_config" ] 214 sources = [ 215 "$image_subsystem/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp", 216 "$image_subsystem/frameworks/innerkitsimpl/accessor/src/exif_metadata_formatter.cpp", 217 "$image_subsystem/frameworks/kits/js/common/image_format_convert_mdk_kits.cpp", 218 "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp", 219 "$image_subsystem/frameworks/kits/js/common/image_packer_mdk_kits.cpp", 220 "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp", 221 "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp", 222 "$image_subsystem/frameworks/kits/js/common/image_source_mdk_kits.cpp", 223 "${image_subsystem}/frameworks/kits/js/common/auxiliary_picture_napi.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" ] 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 "ets_runtime:libark_jsruntime", 280 "eventhandler:libeventhandler", 281 "graphic_2d:2d_graphics", 282 "graphic_2d:EGL", 283 "graphic_2d:GLESv3", 284 "graphic_2d:color_manager", 285 "graphic_2d:color_space_object_convertor", 286 "graphic_2d:libcomposer", 287 "graphic_2d:librender_service_base", 288 "graphic_2d:librender_service_client", 289 "graphic_surface:surface", 290 "graphic_surface:sync_fence", 291 "hitrace:hitrace_meter", 292 "ipc:ipc_napi", 293 "ipc:ipc_single", 294 "napi:ace_napi", 295 "resource_management:librawfile", 296 ] 297 298 public_external_deps = [ "graphic_2d:color_manager" ] 299 300 if (defined(global_parts_info) && 301 defined(global_parts_info.hiviewdfx_hichecker)) { 302 external_deps += [ "hichecker:libhichecker" ] 303 defines += [ "HICHECKER_ENABLE" ] 304 } 305 306 output_name = "libimage_napi" 307 subsystem_name = "multimedia" 308 innerapi_tags = [ "platformsdk" ] 309 part_name = "image_framework" 310 } 311 312 if (use_clang_android) { 313 ohos_shared_library("multimedia_image") { 314 public_configs = [ ":image_external_config" ] 315 sources = [ 316 "$image_subsystem/frameworks/kits/js/common/auxiliary_picture_napi.cpp", 317 "$image_subsystem/frameworks/kits/js/common/image_packer_napi.cpp", 318 "$image_subsystem/frameworks/kits/js/common/image_source_napi.cpp", 319 "$image_subsystem/frameworks/kits/js/common/metadata_napi.cpp", 320 "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp", 321 "$image_subsystem/frameworks/kits/js/common/picture_napi.cpp", 322 "$image_subsystem/frameworks/kits/js/common/pixel_map_napi.cpp", 323 "$image_subsystem/kits/js/common/image_napi_utils.cpp", 324 ] 325 326 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 327 328 defines = image_decode_android_defines 329 deps = [ 330 "$commonlibrary_subsystem/base:utils", 331 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 332 "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils", 333 "$image_subsystem/interfaces/innerkits:image_native", 334 "$image_subsystem/mock/native:log_mock_static", 335 "$image_subsystem/plugins/manager:pluginmanager", 336 "$plugins_lib_root/napi:napi_android", 337 ] 338 339 external_deps = [ 340 "c_utils:utils", 341 "hitrace:hitrace_meter", 342 ] 343 344 if (defined(global_parts_info) && 345 defined(global_parts_info.hiviewdfx_hichecker)) { 346 external_deps += [ "hichecker:libhichecker" ] 347 defines += [ "HICHECKER_ENABLE" ] 348 } 349 350 relative_install_dir = "module/multimedia" 351 subsystem_name = "multimedia" 352 part_name = "image_framework" 353 } 354 } 355} 356