• 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    "//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