• 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/image_error_convert.cpp",
101      "${image_subsystem}/frameworks/kits/js/common/metadata_napi.cpp",
102      "${image_subsystem}/frameworks/kits/js/common/picture_napi.cpp",
103      "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_napi_utils.cpp",
104      "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_packer_napi.cpp",
105      "//foundation/multimedia/image_framework/frameworks/kits/js/common/image_source_napi.cpp",
106      "//foundation/multimedia/image_framework/frameworks/kits/js/common/native_module_ohos_image.cpp",
107      "//foundation/multimedia/image_framework/frameworks/kits/js/common/pixel_map_napi.cpp",
108    ]
109
110    cflags = [ "-DIMAGE_DEBUG_FLAG" ]
111
112    defines = image_decode_ios_defines
113    deps = [
114      "//foundation/arkui/napi:ace_napi",
115      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
116      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
117      "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
118      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
119      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
120    ]
121
122    #relative_install_dir = "module/multimedia"
123    subsystem_name = "multimedia"
124    part_name = "image_framework"
125  }
126} else {
127  ohos_shared_library("image_napi") {
128    if (!use_clang_android && !use_clang_ios) {
129      branch_protector_ret = "pac_ret"
130      sanitize = {
131        cfi = true
132        cfi_cross_dso = true
133        cfi_vcall_icall_only = true
134        debug = false
135      }
136    }
137    sources = [
138      "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp",
139    ]
140
141    cflags = [
142      "-DIMAGE_DEBUG_FLAG",
143      "-DIMAGE_COLORSPACE_FLAG",
144    ]
145
146    deps = [
147      ":image",
148      "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
149    ]
150
151    external_deps = [
152      "c_utils:utils",
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      "graphic_2d:color_manager",
190      "graphic_surface:surface",
191      "hilog:libhilog",
192      "ipc:ipc_single",
193      "napi:ace_napi",
194    ]
195
196    output_name = "libsendableimage"
197    relative_install_dir = "module/multimedia"
198    subsystem_name = "multimedia"
199    part_name = "image_framework"
200  }
201
202  ohos_shared_library("image") {
203    if (!use_clang_android && !use_clang_ios) {
204      branch_protector_ret = "pac_ret"
205      sanitize = {
206        cfi = true
207        cfi_cross_dso = true
208        cfi_vcall_icall_only = true
209        debug = false
210      }
211    }
212    public_configs = [ ":image_external_config" ]
213    sources = [
214      "$image_subsystem/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp",
215      "$image_subsystem/frameworks/innerkitsimpl/accessor/src/exif_metadata_formatter.cpp",
216      "$image_subsystem/frameworks/kits/js/common/image_format_convert_mdk_kits.cpp",
217      "$image_subsystem/frameworks/kits/js/common/image_mdk_kits.cpp",
218      "$image_subsystem/frameworks/kits/js/common/image_packer_mdk_kits.cpp",
219      "$image_subsystem/frameworks/kits/js/common/image_pixel_map_napi_kits.cpp",
220      "$image_subsystem/frameworks/kits/js/common/image_receiver_mdk_kits.cpp",
221      "$image_subsystem/frameworks/kits/js/common/image_source_mdk_kits.cpp",
222      "${image_subsystem}/frameworks/kits/js/common/auxiliary_picture_napi.cpp",
223      "${image_subsystem}/frameworks/kits/js/common/image_error_convert.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", "libjpeg-turbo:turbojpeg"]
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      "drivers_interface_display:libdisplay_composer_proxy_1.2",
280      "drivers_interface_display:libhdifd_parcelable",
281      "ets_runtime:libark_jsruntime",
282      "eventhandler:libeventhandler",
283      "graphic_2d:2d_graphics",
284      "graphic_2d:EGL",
285      "graphic_2d:GLESv3",
286      "graphic_2d:color_manager",
287      "graphic_2d:color_space_object_convertor",
288      "graphic_2d:libcomposer",
289      "graphic_2d:librender_service_base",
290      "graphic_2d:librender_service_client",
291      "graphic_surface:surface",
292      "graphic_surface:sync_fence",
293      "hitrace:hitrace_meter",
294      "ipc:ipc_napi",
295      "ipc:ipc_single",
296      "napi:ace_napi",
297      "resource_management:librawfile",
298    ]
299
300    public_external_deps = [ "graphic_2d:color_manager" ]
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    output_name = "libimage_napi"
309    subsystem_name = "multimedia"
310    innerapi_tags = [ "platformsdk" ]
311    part_name = "image_framework"
312  }
313
314  if (use_clang_android) {
315    ohos_shared_library("multimedia_image") {
316      public_configs = [ ":image_external_config" ]
317      sources = [
318        "$image_subsystem/frameworks/kits/js/common/auxiliary_picture_napi.cpp",
319        "$image_subsystem/frameworks/kits/js/common/image_error_convert.cpp",
320        "$image_subsystem/frameworks/kits/js/common/image_packer_napi.cpp",
321        "$image_subsystem/frameworks/kits/js/common/image_source_napi.cpp",
322        "$image_subsystem/frameworks/kits/js/common/metadata_napi.cpp",
323        "$image_subsystem/frameworks/kits/js/common/native_module_ohos_image.cpp",
324        "$image_subsystem/frameworks/kits/js/common/picture_napi.cpp",
325        "$image_subsystem/frameworks/kits/js/common/pixel_map_napi.cpp",
326        "$image_subsystem/kits/js/common/image_napi_utils.cpp",
327      ]
328
329      cflags = [ "-DIMAGE_DEBUG_FLAG" ]
330
331      defines = image_decode_android_defines
332      deps = [
333        "$commonlibrary_subsystem/base:utils",
334        "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
335        "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils",
336        "$image_subsystem/interfaces/innerkits:image_native",
337        "$image_subsystem/mock/native:log_mock_static",
338        "$image_subsystem/plugins/manager:pluginmanager",
339        "$plugins_lib_root/napi:napi_android",
340      ]
341
342      external_deps = [
343        "c_utils:utils",
344        "hitrace:hitrace_meter",
345      ]
346
347      if (defined(global_parts_info) &&
348          defined(global_parts_info.hiviewdfx_hichecker)) {
349        external_deps += [ "hichecker:libhichecker" ]
350        defines += [ "HICHECKER_ENABLE" ]
351      }
352
353      relative_install_dir = "module/multimedia"
354      subsystem_name = "multimedia"
355      part_name = "image_framework"
356    }
357  }
358}
359