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