• 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  if (!use_clang_android && !use_clang_ios) {
21    sanitize = {
22      cfi = true
23      cfi_cross_dso = true
24      debug = false
25      blocklist = "./cfi_blocklist.txt"
26    }
27  }
28  sources = [
29    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/exif_info.cpp",
30    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/icc_profile_info.cpp",
31    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_decoder.cpp",
32    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_utils.cpp",
33    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/plugin_export.cpp",
34    "src/exif_maker_note.cpp",
35  ]
36
37  cflags = [
38    "-DIMAGE_DEBUG_FLAG",
39    "-DIMAGE_COLORSPACE_FLAG",
40  ]
41
42  include_dirs = [
43    "//foundation/multimedia/utils/include",
44    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
45    "//foundation/multimedia/image_framework/plugins/manager/include",
46    "//foundation/multimedia/image_framework/plugins/manager/include/image",
47    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
48    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include",
49    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
50    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
51    "//foundation/graphic/graphic_2d/utils/color_manager/export",
52    "${graphic_subsystem}/interfaces/inner_api/surface",
53    "$skia_root/skia/include/codec",
54    "$skia_root/skia",
55    "$skia_root/skia/include/core",
56    "//third_party/flutter/skia/third_party/libjpeg-turbo",
57    "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
58    "//third_party/flutter/skia/third_party/skcms",
59    "//third_party/libexif",
60  ]
61
62  if (use_mingw_win) {
63    defines = image_decode_windows_defines
64    include_dirs += [
65      "//foundation/multimedia/image_framework/mock/native/include",
66      "//third_party/flutter/skia/third_party/libjpeg-turbo",
67      "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
68    ]
69    deps = [
70      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
71      "//foundation/multimedia/image_framework/interfaces/innerkits:image_static",
72      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
73      "//third_party/flutter/build/libjpeg:ace_libjpeg",
74      "//third_party/libexif:libexif",
75    ]
76    deps += skia_skcms
77    deps += skia_platform
78  } else if (use_clang_mac) {
79    defines = image_decode_mac_defines
80    include_dirs += [
81      "//foundation/multimedia/image_framework/mock/native/include",
82      "//third_party/flutter/skia/third_party/libjpeg-turbo",
83      "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
84    ]
85    deps = [
86      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
87      "//foundation/multimedia/image_framework/interfaces/innerkits:image_static",
88      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
89      "//third_party/flutter/build/libjpeg:ace_libjpeg",
90      "//third_party/libexif:libexif",
91    ]
92    deps += skia_skcms
93    deps += skia_platform
94  } else {
95    defines = [ "DUAL_ADAPTER" ]
96    DUAL_ADAPTER = true
97    include_dirs += [ "//commonlibrary/c_utils/base/include" ]
98    sources += [
99      "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/src/jpeg_encoder.cpp",
100      "//third_party/flutter/skia/third_party/externals/libjpeg-turbo/jdicc.c",
101    ]
102    deps = [
103      #"//third_party/flutter/skia/third_party/libjpeg-turbo:libjpeg",
104      "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
105      "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
106      "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
107      "//third_party/flutter/build/libjpeg:ace_libjpeg",
108      "//third_party/libexif:libexif",
109    ]
110    deps += skia_skcms
111    deps += skia_platform
112
113    if (DUAL_ADAPTER) {
114    } else {
115      deps += [
116        "//third_party/flutter/build/libjpeg:ace_libjpeg",
117        "//third_party/libexif:libexif",
118      ]
119      include_dirs += [
120        "//third_party/flutter/skia/third_party/libjpeg-turbo",
121        "//third_party/flutter/skia/third_party/externals/libjpeg-turbo",
122      ]
123    }
124
125    external_deps = [
126      "c_utils:utils",
127      "graphic_2d:color_manager",
128      "graphic_2d:surface",
129      "hilog:libhilog",
130      "hitrace:hitrace_meter",
131    ]
132  }
133
134  part_name = "image_framework"
135
136  subsystem_name = "multimedia"
137}
138
139ohos_prebuilt_etc("jpegpluginmetadata") {
140  source = "jpegplugin.pluginmeta"
141  relative_install_dir = "multimediaplugin/image"
142  subsystem_name = "multimedia"
143  part_name = "image_framework"
144}
145