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 "//foundation/graphic/graphic_2d/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 "//drivers/peripheral/display/interfaces/include", 50 "//drivers/peripheral/base", 51 "$skia_root/skia/third_party/externals/libjpeg-turbo", 52 "$ipc_subsystem/communication/ipc/ipc/native/src/napi_common/include", 53 ] 54 55 include_dirs += [ 56 "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase", 57 "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include", 58 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include", 59 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include", 60 "$skia_root/skia/include/codec", 61 "$skia_root/skia", 62 "$skia_root/skia/include/core", 63 "$skia_root/skia/third_party/libjpeg-turbo", 64 "$skia_root/skia/third_party/skcms", 65 "//third_party/libexif", 66 "//third_party/zlib", 67 ] 68 69 if (use_mingw_win) { 70 include_dirs += 71 [ "//foundation/multimedia/image_framework/mock/native/include" ] 72 } else if (use_clang_mac) { 73 include_dirs += [ 74 "//foundation/multimedia/image_framework/mock/native/include", 75 "//third_party/bounds_checking_function/include", 76 "//commonlibrary/c_utils/base/include", 77 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 78 ] 79 } else if (use_clang_ios) { 80 include_dirs += [ 81 "$image_subsystem/mock/native/include/log", 82 "//foundation/multimedia/image_framework/mock/native/include/secure", 83 ] 84 include_dirs -= [ 85 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 86 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 87 "//foundation/graphic/graphic_2d/interfaces/inner_api/surface", 88 "//foundation/graphic/graphic_2d/interfaces/inner_api/common", 89 "//foundation/graphic/graphic_2d/utils/buffer_handle/export", 90 "//foundation/graphic/graphic_2d/utils/color_manager/export", 91 ] 92 } else if (use_clang_android) { 93 include_dirs += [ 94 "//commonlibrary/c_utils/base/include", 95 "$image_subsystem/mock/native/include/log", 96 ] 97 98 include_dirs -= [ 99 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 100 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 101 "//foundation/graphic/graphic_2d/interfaces/inner_api/surface", 102 "//foundation/graphic/graphic_2d/interfaces/inner_api/common", 103 "//foundation/graphic/graphic_2d/utils/buffer_handle/export", 104 "//foundation/graphic/graphic_2d/utils/color_manager/export", 105 ] 106 } else { 107 include_dirs += [ 108 "//commonlibrary/c_utils/base/include", 109 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 110 ] 111 } 112} 113 114js_declaration("image_js") { 115 part_name = "image_framework" 116 sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ] 117} 118 119ohos_copy("image_declaration") { 120 sources = [ "//foundation/multimedia/image_framework/interfaces/kits/js/@ohos.multimedia.image.d.ts" ] 121 outputs = [ target_out_dir + "/$target_name/" ] 122 module_source_dir = target_out_dir + "/$target_name" 123 module_install_name = "" 124} 125 126if (use_clang_ios) { 127 ohos_source_set("image") { 128 public_configs = [ ":image_external_config" ] 129 sources = [ 130 "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp", 131 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 132 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 133 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 134 "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp", 135 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 136 ] 137 138 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 139 140 defines = image_decode_ios_defines 141 deps = [ 142 "//foundation/arkui/napi:ace_napi", 143 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 144 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 145 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 146 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 147 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 148 "//third_party/libpng:png_static", 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 = [ "napi:ace_napi" ] 179 180 output_name = "libimage" 181 relative_install_dir = "module/multimedia" 182 subsystem_name = "multimedia" 183 part_name = "image_framework" 184 } 185 186 ohos_shared_library("image") { 187 if (!use_clang_android && !use_clang_ios) { 188 sanitize = { 189 cfi = true 190 cfi_cross_dso = true 191 debug = false 192 } 193 } 194 public_configs = [ ":image_external_config" ] 195 sources = [ 196 "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp", 197 "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp", 198 "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp", 199 "$image_subsystem/frameworks/kits/js/common/image_source_mdk_kits.cpp", 200 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 201 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 202 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 203 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 204 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 205 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 206 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 207 ] 208 209 cflags = [ 210 "-DIMAGE_DEBUG_FLAG", 211 "-DIMAGE_COLORSPACE_FLAG", 212 ] 213 214 if (use_clang_android) { 215 defines = image_decode_android_defines 216 cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ] 217 sources -= [ 218 "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp", 219 "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp", 220 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 221 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 222 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 223 ] 224 deps = [ 225 "//commonlibrary/c_utils/base:utils", 226 "//foundation/arkui/napi:ace_napi", 227 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 228 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 229 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 230 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 231 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 232 ] 233 } else { 234 deps = [ 235 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 236 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 237 ] 238 } 239 240 external_deps = [ 241 "c_utils:utils", 242 "graphic_2d:color_manager", 243 "graphic_2d:color_space_object_convertor", 244 "graphic_2d:surface", 245 "hichecker:libhichecker", 246 "hitrace:hitrace_meter", 247 "ipc:ipc_napi_common", 248 "napi:ace_napi", 249 ] 250 deps += [ "//third_party/libpng:png_static" ] 251 output_name = "libimage_napi" 252 subsystem_name = "multimedia" 253 innerapi_tags = [ "platformsdk" ] 254 part_name = "image_framework" 255 } 256 257 if (use_clang_android) { 258 ohos_shared_library("multimedia_image") { 259 public_configs = [ ":image_external_config" ] 260 sources = [ 261 "$image_subsystem/frameworks/kits/js/common/image_packer_napi.cpp", 262 "$image_subsystem/frameworks/kits/js/common/image_source_napi.cpp", 263 "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp", 264 "$image_subsystem/frameworks/kits/js/common/pixel_map_napi.cpp", 265 "$image_subsystem/kits/js/common/image_napi_utils.cpp", 266 ] 267 268 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 269 270 defines = image_decode_android_defines 271 deps = [ 272 "$commonlibrary_subsystem/base:utils", 273 "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 274 "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils", 275 "$image_subsystem/interfaces/innerkits:image_native", 276 "$image_subsystem/mock/native:log_mock_static", 277 "$image_subsystem/plugins/manager:pluginmanager", 278 "$plugins_lib_root/napi:napi_android", 279 ] 280 281 external_deps = [ 282 "c_utils:utils", 283 "hichecker:libhichecker", 284 "hitrace:hitrace_meter", 285 ] 286 relative_install_dir = "module/multimedia" 287 subsystem_name = "multimedia" 288 part_name = "image_framework" 289 } 290 } 291} 292