• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2023 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/multimedia/image_framework/ide/image_decode_config.gni")
16third_party_dir = "/third_party"
17third_party_root = "/${third_party_dir}"
18if (use_mingw_win || use_clang_mac) {
19  graphic_root = "/${image_sep_f}${image_oundation}/${graphic_multimedia}"
20}
21
22ohos_static_library("exifhelper") {
23  if (!use_clang_android && !use_clang_ios) {
24    sanitize = {
25      cfi = true
26      cfi_cross_dso = true
27      debug = false
28    }
29  }
30  sources = [
31    "../libjpegplugin/src/exif_info.cpp",
32    "../libjpegplugin/src/exif_maker_note.cpp",
33  ]
34  include_dirs = [
35    "../libjpegplugin/include",
36    "${image_subsystem}/interfaces/innerkits/include",
37    "${third_party_root}/libexif",
38  ]
39  deps = [ "${third_party_root}/libexif:libexif" ]
40  external_deps = [
41    "c_utils:utils",
42    "graphic_2d:surface",
43    "hilog:libhilog",
44    "hitrace:hitrace_meter",
45  ]
46  part_name = "image_framework"
47  subsystem_name = "multimedia"
48}
49
50config("plugins_includes") {
51  include_dirs = [
52    "${image_subsystem}/plugins/manager/include",
53    "${image_subsystem}/plugins/manager/include/image",
54    "${image_subsystem}/plugins/manager/include/pluginbase",
55  ]
56}
57config("skia_includes") {
58  include_dirs = [
59    "${skia_root}/skia",
60    "${skia_root}/skia/include/codec",
61    "${skia_root}/skia/include/core",
62    "${skia_root}/skia/third_party/skcms",
63  ]
64}
65config("third_part_includes") {
66  include_dirs = [
67    "../libjpegplugin/include",
68    "${third_party_root}/libexif",
69  ]
70}
71config("win_config") {
72  if (use_mingw_win) {
73    defines = image_decode_windows_defines
74    include_dirs += [
75      "${image_subsystem}/mock/native/include",
76      "${image_subsystem}/mock/native/include/secure",
77      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/codec",
78      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/config",
79      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/config/win",
80      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/core",
81    ]
82  }
83}
84config("mac_config") {
85  if (use_clang_mac) {
86    defines = image_decode_mac_defines
87    include_dirs += [
88      "${image_subsystem}/mock/native/include",
89      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/codec",
90      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/core",
91      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/config/mac",
92      "${asdk_dir}/static_library/${target_os}_${target_cpu}/include/external/skia/include/config",
93      "${third_party_root}/bounds_checking_function/include",
94    ]
95  }
96}
97
98ohos_shared_library("extplugin") {
99  if (!use_clang_android && !use_clang_ios) {
100    sanitize = {
101      cfi = true
102      cfi_cross_dso = true
103      debug = false
104    }
105  }
106  sources = [
107    "src/ext_decoder.cpp",
108    "src/ext_encoder.cpp",
109    "src/ext_pixel_convert.cpp",
110    "src/ext_stream.cpp",
111    "src/ext_wstream.cpp",
112    "src/plugin_export.cpp",
113  ]
114  configs = [
115    ":plugins_includes",
116    ":skia_includes",
117    ":third_part_includes",
118  ]
119  include_dirs = [
120    "include",
121    "${image_subsystem}/interfaces/innerkits/include",
122    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
123    "${graphic_subsystem}/interfaces/inner_api/surface",
124  ]
125  if (use_mingw_win) {
126    configs += [ ":win_config" ]
127    deps = [
128      "${graphic_root}/ide/libs/skia:skia",
129      "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils_static",
130      "${image_subsystem}/mock/native:log_mock_static",
131      "${image_subsystem}/plugins/manager:pluginmanager_static",
132    ]
133    deps += skia_core
134  } else if (use_clang_mac) {
135    configs += [ ":mac_config" ]
136    deps = [
137      "${graphic_root}/ide/libs/skia:skia",
138      "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils_static",
139      "${image_subsystem}/mock/native:log_mock_static",
140      "${image_subsystem}/plugins/manager:pluginmanager_static",
141      "${third_party_root}/bounds_checking_function:libsec_static",
142    ]
143  } else {
144    include_dirs += [ "${commonlibrary_subsystem}/base/include" ]
145    deps = [
146      ":exifhelper",
147      "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
148      "${image_subsystem}/interfaces/innerkits:image_native",
149      "${image_subsystem}/plugins/manager:pluginmanager",
150    ]
151    deps += skia_platform
152
153    external_deps = [
154      "c_utils:utils",
155      "graphic_2d:color_manager",
156      "hilog:libhilog",
157    ]
158  }
159  cflags = [ "-DIMAGE_COLORSPACE_FLAG" ]
160  subsystem_name = "multimedia"
161  part_name = "image_framework"
162}
163
164ohos_prebuilt_etc("extpluginmetadata") {
165  source = "extplugin.pluginmeta"
166  relative_install_dir = "multimediaplugin/image"
167  subsystem_name = "multimedia"
168  part_name = "image_framework"
169}
170