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 "//foundation/ability/ability_runtime/interfaces/inner_api/runtime/include/", 24 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 25 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 26 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include", 27 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include", 28 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/codec/include", 29 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include", 30 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/include", 31 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include", 32 "//foundation/multimedia/image_framework/frameworks/kits/js/common/include", 33 "//foundation/multimedia/image_framework/interfaces/kits/js/common/include", 34 "//foundation/multimedia/utils/include", 35 "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin", 36 "//foundation/multimedia/image_framework/plugins/manager/include", 37 "//foundation/multimedia/image_framework/plugins/manager/include/image", 38 "//foundation/multimedia/image_framework/interfaces/innerkits/include", 39 "//foundation/multimedia/image_framework/interfaces/kits/native/include", 40 "//utils/jni/jnikit/include", 41 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 42 "//foundation/graphic/graphic_2d/interfaces/inner_api/surface", 43 "//foundation/graphic/graphic_2d/interfaces/inner_api/common", 44 "//foundation/graphic/graphic_2d/interfaces/kits/napi/graphic/color_manager/color_space_object_convertor", 45 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 46 "//foundation/graphic/graphic_2d/utils/buffer_handle/export", 47 "//foundation/graphic/graphic_2d/utils/color_manager/export", 48 "//drivers/peripheral/display/interfaces/include", 49 "//drivers/peripheral/base", 50 "//third_party/flutter/skia/third_party/externals/libjpeg-turbo", 51 ] 52 53 include_dirs += [ 54 "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase", 55 "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include", 56 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include", 57 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include", 58 "//third_party/flutter/skia/include/codec", 59 "//third_party/flutter/skia", 60 "//third_party/flutter/skia/include/core", 61 "//third_party/flutter/skia/third_party/libjpeg-turbo", 62 "//third_party/skia/third_party/externals/libjpeg-turbo", 63 "//third_party/flutter/skia/third_party/skcms", 64 "//third_party/libexif", 65 ] 66 67 if (use_mingw_win) { 68 include_dirs += 69 [ "//foundation/multimedia/image_framework/mock/native/include" ] 70 } else if (use_clang_mac) { 71 include_dirs += [ 72 "//foundation/multimedia/image_framework/mock/native/include", 73 "//third_party/bounds_checking_function/include", 74 "//commonlibrary/c_utils/base/include", 75 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 76 ] 77 } else if (use_clang_ios) { 78 include_dirs += [ 79 "//third_party/libpng", 80 "//foundation/multimedia/image_framework/mock/native/include", 81 "//foundation/multimedia/image_framework/mock/native/include/secure", 82 ] 83 include_dirs -= [ 84 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/receiver/include", 85 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include", 86 "//foundation/graphic/graphic_2d/interfaces/inner_api/surface", 87 "//foundation/graphic/graphic_2d/interfaces/inner_api/common", 88 "//foundation/graphic/graphic_2d/utils/buffer_handle/export", 89 "//foundation/graphic/graphic_2d/utils/color_manager/export", 90 ] 91 } else if (use_clang_android) { 92 include_dirs += [ 93 "//commonlibrary/c_utils/base/include", 94 "//third_party/libpng", 95 "//foundation/multimedia/image_framework/mock/native/include", 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 "//third_party/libpng", 110 "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 111 ] 112 } 113} 114 115js_declaration("image_js") { 116 part_name = "multimedia_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 "//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/mock/native:utils_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 = "multimedia_image_framework" 154 } 155} else { 156 ohos_shared_library("image") { 157 sanitize = { 158 cfi = true 159 debug = false 160 } 161 public_configs = [ ":image_external_config" ] 162 sources = [ 163 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 164 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 165 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 166 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 167 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 168 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 169 "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp", 170 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 171 ] 172 173 cflags = [ 174 "-DIMAGE_DEBUG_FLAG", 175 "-DIMAGE_COLORSPACE_FLAG", 176 ] 177 178 if (use_clang_android) { 179 defines = image_decode_android_defines 180 cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ] 181 sources -= [ 182 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_creator_napi.cpp", 183 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi.cpp", 184 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_receiver_napi.cpp", 185 ] 186 deps = [ 187 "//commonlibrary/c_utils/base:utils", 188 "//foundation/arkui/napi:ace_napi", 189 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 190 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 191 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 192 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 193 "//foundation/multimedia/image_framework/mock/native:utils_mock_static", 194 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 195 ] 196 } else { 197 deps = [ 198 "//foundation/arkui/napi:ace_napi", 199 "//foundation/graphic/graphic_2d:libsurface", 200 "//foundation/graphic/graphic_2d/interfaces/kits/napi/graphic/color_manager:color_space_object_convertor", 201 "//foundation/graphic/graphic_2d/utils/color_manager:color_manager", 202 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 203 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 204 ] 205 } 206 207 external_deps = [ 208 "c_utils:utils", 209 "hichecker_native:libhichecker", 210 "hitrace_native:hitrace_meter", 211 ] 212 relative_install_dir = "module/multimedia" 213 subsystem_name = "multimedia" 214 part_name = "multimedia_image_framework" 215 } 216 217 ohos_shared_library("multimedia_image") { 218 public_configs = [ ":image_external_config" ] 219 sources = [ 220 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp", 221 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp", 222 "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp", 223 "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp", 224 "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp", 225 ] 226 227 cflags = [ "-DIMAGE_DEBUG_FLAG" ] 228 229 defines = image_decode_android_defines 230 deps = [ 231 "//commonlibrary/c_utils/base:utils", 232 "//foundation/arkui/napi:ace_napi", 233 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 234 "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils", 235 "//foundation/multimedia/image_framework/interfaces/innerkits:image_native", 236 "//foundation/multimedia/image_framework/mock/native:log_mock_static", 237 "//foundation/multimedia/image_framework/mock/native:utils_mock_static", 238 "//foundation/multimedia/image_framework/plugins/manager:pluginmanager", 239 ] 240 241 external_deps = [ 242 "c_utils:utils", 243 "hichecker_native:libhichecker", 244 "hitrace_native:hitrace_meter", 245 ] 246 relative_install_dir = "module/multimedia" 247 subsystem_name = "multimedia" 248 part_name = "multimedia_image_framework" 249 } 250}