• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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