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