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