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/graphic/graphic_2d/graphic_config.gni") 17import("//foundation/multimedia/image_framework/ide/image_decode_config.gni") 18 19config("image_external_config") { 20 include_dirs = [ 21 "include", 22 "//utils/system/safwk/native/include", 23 "${image_subsystem}/frameworks/kits/js/common/ndk/include", 24 "//foundation/ability/ability_runtime/interfaces/inner_api/runtime/include/", 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 "//foundation/multimedia/image_framework/frameworks/kits/js/common/include", 34 "//foundation/multimedia/image_framework/interfaces/kits/js/common/include", 35 "//foundation/multimedia/utils/include", 36 "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin", 37 "//foundation/multimedia/image_framework/plugins/manager/include", 38 "//foundation/multimedia/image_framework/plugins/manager/include/image", 39 "//foundation/multimedia/image_framework/interfaces/innerkits/include", 40 "//foundation/multimedia/image_framework/interfaces/kits/native/include", 41 "//utils/jni/jnikit/include", 42 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 43 "$graphic_surface_root/interfaces/inner_api/surface", 44 "//foundation/graphic/graphic_2d/interfaces/inner_api/common", 45 "//foundation/graphic/graphic_2d/interfaces/kits/napi/graphic/color_manager/color_space_object_convertor", 46 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 47 "//foundation/graphic/graphic_2d/utils/buffer_handle/export", 48 "//foundation/graphic/graphic_2d/utils/color_manager/export", 49 "$resource_management_subsystem/interfaces/native/resource/include", 50 "//drivers/peripheral/display/interfaces/include", 51 "//drivers/peripheral/base", 52 "$skia_root/skia/third_party/externals/libjpeg-turbo", 53 "$ipc_subsystem/communication/ipc/ipc/native/src/napi_common/include", 54 ] 55 56 include_dirs += [ 57 "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase", 58 "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include", 59 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include", 60 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include", 61 "$skia_root/skia/include/codec", 62 "$skia_root/skia", 63 "$skia_root/skia/include/core", 64 "$skia_root/skia/third_party/libjpeg-turbo", 65 "$skia_root/skia/third_party/skcms", 66 "//third_party/libexif", 67 "//third_party/zlib", 68 ] 69 70 if (use_mingw_win) { 71 include_dirs += 72 [ "//foundation/multimedia/image_framework/mock/native/include" ] 73 } else if (use_clang_mac) { 74 include_dirs += [ 75 "//foundation/multimedia/image_framework/mock/native/include", 76 "//third_party/bounds_checking_function/include", 77 "//commonlibrary/c_utils/base/include", 78 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 79 ] 80 } else if (use_clang_ios) { 81 include_dirs += [ 82 "$image_subsystem/mock/native/include/log", 83 "//foundation/multimedia/image_framework/mock/native/include/secure", 84 ] 85 include_dirs -= [ 86 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 87 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 88 "$graphic_surface_root/interfaces/inner_api/surface", 89 "//foundation/graphic/graphic_2d/interfaces/inner_api/common", 90 "//foundation/graphic/graphic_2d/utils/buffer_handle/export", 91 "//foundation/graphic/graphic_2d/utils/color_manager/export", 92 ] 93 } else if (use_clang_android) { 94 include_dirs += [ 95 "//commonlibrary/c_utils/base/include", 96 "$image_subsystem/mock/native/include/log", 97 ] 98 99 include_dirs -= [ 100 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 101 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 102 "$graphic_surface_root/interfaces/inner_api/surface", 103 "//foundation/graphic/graphic_2d/interfaces/inner_api/common", 104 "//foundation/graphic/graphic_2d/utils/buffer_handle/export", 105 "//foundation/graphic/graphic_2d/utils/color_manager/export", 106 ] 107 } else { 108 include_dirs += [ 109 "//commonlibrary/c_utils/base/include", 110 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 111 ] 112 } 113} 114 115js_declaration("image_js") { 116 part_name = "image_framework" 117 sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ] 118} 119 120ohos_copy("image_declaration") { 121 sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ] 122 outputs = [ target_out_dir + "/$target_name/" ] 123 module_source_dir = target_out_dir + "/$target_name" 124 module_install_name = "" 125} 126 127if (use_clang_ios) { 128 ohos_source_set("image") { 129 public_configs = [ ":image_external_config" ] 130 sources = [ 131 "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp", 132 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 133 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 134 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 135 "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp", 136 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 137 ] 138 139 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 140 141 defines = image_decode_ios_defines 142 deps = [ 143 "//foundation/arkui/napi:ace_napi", 144 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 145 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 146 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 147 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 148 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 149 ] 150 151 #relative_install_dir = "module/multimedia" 152 subsystem_name = "multimedia" 153 part_name = "image_framework" 154 } 155} else { 156 ohos_shared_library("image_napi") { 157 if (!use_clang_android && !use_clang_ios) { 158 sanitize = { 159 cfi = true 160 cfi_cross_dso = true 161 debug = false 162 } 163 } 164 sources = [ 165 "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp", 166 ] 167 168 cflags = [ 169 "-DIMAGE_DEBUG_FLAG", 170 "-DIMAGE_COLORSPACE_FLAG", 171 ] 172 173 deps = [ 174 ":image", 175 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 176 ] 177 178 external_deps = [ 179 "hilog:libhilog", 180 "napi:ace_napi", 181 ] 182 183 output_name = "libimage" 184 relative_install_dir = "module/multimedia" 185 subsystem_name = "multimedia" 186 part_name = "image_framework" 187 } 188 189 ohos_shared_library("image") { 190 if (!use_clang_android && !use_clang_ios) { 191 sanitize = { 192 cfi = true 193 cfi_cross_dso = true 194 debug = false 195 } 196 } 197 public_configs = [ ":image_external_config" ] 198 sources = [ 199 "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp", 200 "$image_subsystem/frameworks/kits/js/common/image_packer_mdk_kits.cpp", 201 "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp", 202 "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp", 203 "$image_subsystem/frameworks/kits/js/common/image_source_mdk_kits.cpp", 204 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 205 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 206 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 207 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 208 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 209 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 210 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 211 ] 212 213 cflags = [ 214 "-DIMAGE_DEBUG_FLAG", 215 "-DIMAGE_COLORSPACE_FLAG", 216 ] 217 external_deps = [] 218 219 if (use_clang_android) { 220 defines = image_decode_android_defines 221 cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ] 222 sources -= [ 223 "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp", 224 "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp", 225 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 226 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 227 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 228 ] 229 deps = [ 230 "//commonlibrary/c_utils/base:utils", 231 "//foundation/arkui/napi:ace_napi", 232 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 233 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 234 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 235 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 236 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 237 ] 238 } else { 239 defines = [] 240 deps = [ 241 "$image_subsystem/frameworks/innerkitsimpl/egl_image:egl_image", 242 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 243 "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils", 244 "$image_subsystem/interfaces/innerkits:image_native", 245 ] 246 external_deps += [ "hilog:libhilog" ] 247 } 248 249 external_deps += [ 250 "c_utils:utils", 251 "graphic_2d:color_manager", 252 "graphic_2d:color_space_object_convertor", 253 "graphic_2d:libgl", 254 "graphic_surface:surface", 255 "graphic_surface:sync_fence", 256 "hitrace:hitrace_meter", 257 "ipc:ipc_napi", 258 "napi:ace_napi", 259 ] 260 261 if (defined(global_parts_info) && 262 defined(global_parts_info.hiviewdfx_hichecker)) { 263 external_deps += [ "hichecker:libhichecker" ] 264 defines += [ "HICHECKER_ENABLE" ] 265 } 266 267 output_name = "libimage_napi" 268 subsystem_name = "multimedia" 269 innerapi_tags = [ "platformsdk" ] 270 part_name = "image_framework" 271 } 272 273 if (use_clang_android) { 274 ohos_shared_library("multimedia_image") { 275 public_configs = [ ":image_external_config" ] 276 sources = [ 277 "$image_subsystem/frameworks/kits/js/common/image_packer_napi.cpp", 278 "$image_subsystem/frameworks/kits/js/common/image_source_napi.cpp", 279 "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp", 280 "$image_subsystem/frameworks/kits/js/common/pixel_map_napi.cpp", 281 "$image_subsystem/kits/js/common/image_napi_utils.cpp", 282 ] 283 284 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 285 286 defines = image_decode_android_defines 287 deps = [ 288 "$commonlibrary_subsystem/base:utils", 289 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 290 "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils", 291 "$image_subsystem/interfaces/innerkits:image_native", 292 "$image_subsystem/mock/native:log_mock_static", 293 "$image_subsystem/plugins/manager:pluginmanager", 294 "$plugins_lib_root/napi:napi_android", 295 ] 296 297 external_deps = [ 298 "c_utils:utils", 299 "hitrace:hitrace_meter", 300 ] 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 relative_install_dir = "module/multimedia" 309 subsystem_name = "multimedia" 310 part_name = "image_framework" 311 } 312 } 313} 314