• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2021 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("//foundation/arkui/ace_engine/ace_config.gni")
16import("//foundation/multimedia/image_framework/ide/image_decode_config.gni")
17import("//third_party/flutter/flutter_config.gni")
18
19ohos_shared_library("jpegplugin") {
20  sanitize = {
21    cfi = true
22    debug = false
23    blocklist = "./cfi_blocklist.txt"
24  }
25  sources = [
26    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/exif_info.cpp",
27    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/icc_profile_info.cpp",
28    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_decoder.cpp",
29    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_utils.cpp",
30    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/plugin_export.cpp",
31  ]
32
33  cflags = [
34    "-DIMAGE_DEBUG_FLAG",
35    "-DIMAGE_COLORSPACE_FLAG",
36  ]
37
38  include_dirs = [
39    "//foundation/multimedia/utils/include",
40    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
41    "//foundation/multimedia/image_framework/plugins/manager/include",
42    "//foundation/multimedia/image_framework/plugins/manager/include/image",
43    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
44    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include",
45    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
46    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
47    "//foundation/graphic/graphic_2d/utils/color_manager/export",
48    "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
49    "//third_party/flutter/skia/include/codec",
50    "//third_party/flutter/skia",
51    "//third_party/flutter/skia/include/core",
52    "//third_party/flutter/skia/third_party/libjpeg-turbo",
53    "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
54    "//third_party/flutter/skia/third_party/skcms",
55    "//third_party/libexif",
56  ]
57
58  if (use_mingw_win) {
59    defines = image_decode_windows_defines
60    include_dirs += [
61      "//foundation/multimedia/image_framework/mock/native/include",
62      "//third_party/flutter/skia/third_party/libjpeg-turbo",
63      "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
64    ]
65    deps = [
66      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
67      "//foundation/multimedia/image_framework/interfaces/innerkits:image_static",
68      "//foundation/multimedia/image_framework/mock/native:utils_mock_static",
69      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
70      "//third_party/flutter/build/libjpeg:ace_libjpeg",
71      "//third_party/flutter/build/skia:ace_skcms",
72      "//third_party/flutter/build/skia:ace_skia_ohos",
73      "//third_party/libexif:libexif",
74    ]
75  } else if (use_clang_mac) {
76    defines = image_decode_mac_defines
77    include_dirs += [
78      "//foundation/multimedia/image_framework/mock/native/include",
79      "//third_party/flutter/skia/third_party/libjpeg-turbo",
80      "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
81    ]
82    deps = [
83      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
84      "//foundation/multimedia/image_framework/interfaces/innerkits:image_static",
85      "//foundation/multimedia/image_framework/mock/native:utils_mock_static",
86      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
87      "//third_party/flutter/build/libjpeg:ace_libjpeg",
88      "//third_party/flutter/build/skia:ace_skcms",
89      "//third_party/flutter/build/skia:ace_skia_ohos",
90      "//third_party/libexif:libexif",
91    ]
92  } else if (use_clang_ios) {
93    defines = image_decode_ios_defines
94    cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ]
95    include_dirs += [
96      "//commonlibrary/c_utils/base/include",
97      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
98      "//foundation/multimedia/image_framework/mock/native/include",
99    ]
100    sources += [
101      "$flutter_root/skia/third_party/externals/libjpeg-turbo/jdicc.c",
102      "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_encoder.cpp",
103    ]
104    deps = [
105      "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
106      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
107      "//foundation/multimedia/image_framework/mock/native:utils_mock_static",
108      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
109      "//third_party/flutter/build/libjpeg:ace_libjpeg",
110      "//third_party/flutter/build/skia:ace_skcms",
111      "//third_party/flutter/build/skia:ace_skia_ios",
112      "//third_party/libexif:libexif",
113    ]
114  } else if (use_clang_android) {
115    defines = image_decode_android_defines
116    cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ]
117    include_dirs += [
118      "//commonlibrary/c_utils/base/include",
119      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
120      "//foundation/multimedia/image_framework/mock/native/include",
121    ]
122    sources += [
123      "$flutter_root/skia/third_party/externals/libjpeg-turbo/jdicc.c",
124      "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_encoder.cpp",
125    ]
126    deps = [
127      #"//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
128      "//commonlibrary/c_utils/base:utils",
129      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
130      "//foundation/multimedia/image_framework/mock/native:utils_mock_static",
131      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
132      "//third_party/flutter/build/libjpeg:ace_libjpeg",
133      "//third_party/flutter/build/skia:ace_skcms",
134
135      #"//third_party/flutter/build/skia:ace_skia_android",
136      "//third_party/libexif:libexif",
137    ]
138  } else {
139    defines = [ "DUAL_ADAPTER" ]
140    DUAL_ADAPTER = true
141    include_dirs += [ "//commonlibrary/c_utils/base/include" ]
142    sources += [
143      "$flutter_root/skia/third_party/externals/libjpeg-turbo/jdicc.c",
144      "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_encoder.cpp",
145    ]
146    deps = [
147      #"//third_party/flutter/skia/third_party/libjpeg-turbo:libjpeg",
148      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
149      "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
150      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
151      "//third_party/flutter/build/libjpeg:ace_libjpeg",
152      "//third_party/flutter/build/skia:ace_skcms",
153      "//third_party/flutter/build/skia:ace_skia_ohos",
154      "//third_party/libexif:libexif",
155    ]
156
157    if (DUAL_ADAPTER) {
158    } else {
159      deps += [
160        "//third_party/flutter/build/libjpeg:ace_libjpeg",
161        "//third_party/libexif:libexif",
162      ]
163      include_dirs += [
164        "//third_party/flutter/skia/third_party/libjpeg-turbo",
165        "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
166      ]
167    }
168
169    external_deps = [
170      "c_utils:utils",
171      "hiviewdfx_hilog_native:libhilog",
172    ]
173  }
174
175  part_name = "multimedia_image_framework"
176
177  subsystem_name = "multimedia"
178}
179
180ohos_prebuilt_etc("jpegpluginmetadata") {
181  source = "jpegplugin.pluginmeta"
182  relative_install_dir = "multimediaplugin/image"
183  subsystem_name = "multimedia"
184  part_name = "multimedia_image_framework"
185}
186