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/multimedia/image_framework/ide/image_decode_config.gni")
16
17if (use_clang_ios) {
18  ohos_source_set("pluginmanager") {
19    sources = [
20      "//foundation/multimedia/image_framework/plugins/manager/src/common/attr_data.cpp",
21      "//foundation/multimedia/image_framework/plugins/manager/src/common/platform_adp.cpp",
22      "//foundation/multimedia/image_framework/plugins/manager/src/framework/capability.cpp",
23      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class.cpp",
24      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_key.cpp",
25      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_mgr.cpp",
26      "//foundation/multimedia/image_framework/plugins/manager/src/framework/json_helper.cpp",
27      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin.cpp",
28      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_fw.cpp",
29      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_info_lock.cpp",
30      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_mgr.cpp",
31      "//foundation/multimedia/image_framework/plugins/manager/src/plugin_server.cpp",
32      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase/plugin_class_base.cpp",
33      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer/gst_plugin_fw.cpp",
34    ]
35
36    cflags = [
37      "-DIMAGE_DEBUG_FLAG",
38      #"-DIMAGE_COLORSPACE_FLAG",
39    ]
40
41    include_dirs = [
42      "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/include",
43      "//foundation/multimedia/image_framework/plugins/manager/include",
44      "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
45      "//foundation/multimedia/image_framework/plugins/manager/include/utils",
46      "//foundation/multimedia/image_framework/plugins/manager/src/common",
47      "//foundation/multimedia/image_framework/plugins/manager/src/framework",
48      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
49      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
50      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
51      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
52      "//foundation/multimedia/utils/include",
53      "//third_party/json/single_include/nlohmann",
54      "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
55      "$image_subsystem/mock/native/include/log",
56    ]
57
58    defines = image_decode_ios_defines
59    include_dirs += [
60      "//commonlibrary/c_utils/base/include",
61      "$image_subsystem/mock/native/include/log",
62      "//foundation/multimedia/image_framework/mock/native/include/secure",
63    ]
64
65    deps = [ "$image_subsystem/mock/native:log_mock_static" ]
66
67    #relative_install_dir = "module/multimedia"
68    subsystem_name = "multimedia"
69    part_name = "image_framework"
70  }
71} else {
72  ohos_shared_library("pluginmanager") {
73    if (!use_clang_android) {
74      branch_protector_ret = "pac_ret"
75      sanitize = {
76        cfi = true
77        cfi_cross_dso = true
78        cfi_vcall_icall_only = true
79        debug = false
80      }
81    }
82    sources = [
83      "//foundation/multimedia/image_framework/plugins/manager/src/common/attr_data.cpp",
84      "//foundation/multimedia/image_framework/plugins/manager/src/common/platform_adp.cpp",
85      "//foundation/multimedia/image_framework/plugins/manager/src/framework/capability.cpp",
86      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class.cpp",
87      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_key.cpp",
88      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_mgr.cpp",
89      "//foundation/multimedia/image_framework/plugins/manager/src/framework/json_helper.cpp",
90      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin.cpp",
91      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_fw.cpp",
92      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_info_lock.cpp",
93      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_mgr.cpp",
94      "//foundation/multimedia/image_framework/plugins/manager/src/plugin_server.cpp",
95      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase/plugin_class_base.cpp",
96      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer/gst_plugin_fw.cpp",
97    ]
98
99    cflags = [
100      "-DIMAGE_DEBUG_FLAG",
101      "-DIMAGE_COLORSPACE_FLAG",
102    ]
103
104    include_dirs = [
105      "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/include",
106      "//foundation/multimedia/image_framework/plugins/manager/include",
107      "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
108      "//foundation/multimedia/image_framework/plugins/manager/include/utils",
109      "//foundation/multimedia/image_framework/plugins/manager/src/common",
110      "//foundation/multimedia/image_framework/plugins/manager/src/framework",
111      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
112      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
113      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
114      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
115      "$image_subsystem/mock/native/include/log",
116    ]
117
118    if (use_mingw_win) {
119      defines = image_decode_windows_defines
120      include_dirs += [ "$image_subsystem/mock/native/include/log" ]
121      deps = [ "$image_subsystem/mock/native:log_mock_static" ]
122    } else if (use_clang_mac) {
123      defines = image_decode_mac_defines
124      include_dirs += [
125        "//foundation/multimedia/image_framework/mock/native/include",
126        "//third_party/bounds_checking_function/include",
127      ]
128      deps = [
129        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
130        "//third_party/bounds_checking_function:libsec_static",
131      ]
132    } else if (use_clang_android) {
133      include_dirs += [ "//commonlibrary/c_utils/base/include" ]
134      cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ]
135
136      deps = [
137        "//commonlibrary/c_utils/base:utils",
138        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
139      ]
140    } else {
141      ldflags = [ "-Wl,-Bsymbolic" ]
142
143      external_deps = [
144        "c_utils:utils",
145        "graphic_2d:color_manager",
146        "hilog:libhilog",
147        "json:nlohmann_json_static",
148      ]
149    }
150
151    #relative_install_dir = "module/multimedia"
152    subsystem_name = "multimedia"
153    innerapi_tags = [ "platformsdk_indirect" ]
154    part_name = "image_framework"
155  }
156}
157
158ohos_static_library("pluginmanager_static") {
159  if (!is_arkui_x) {
160    sanitize = {
161      cfi = true
162      cfi_cross_dso = true
163      cfi_vcall_icall_only = true
164      debug = false
165    }
166  }
167  sources = [
168    "//foundation/multimedia/image_framework/plugins/manager/src/common/attr_data.cpp",
169    "//foundation/multimedia/image_framework/plugins/manager/src/common/platform_adp.cpp",
170    "//foundation/multimedia/image_framework/plugins/manager/src/framework/capability.cpp",
171    "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class.cpp",
172    "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_key.cpp",
173    "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_mgr.cpp",
174    "//foundation/multimedia/image_framework/plugins/manager/src/framework/json_helper.cpp",
175    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin.cpp",
176    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_fw.cpp",
177    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_info_lock.cpp",
178    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_mgr.cpp",
179    "//foundation/multimedia/image_framework/plugins/manager/src/plugin_server.cpp",
180    "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase/plugin_class_base.cpp",
181    "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer/gst_plugin_fw.cpp",
182  ]
183
184  include_dirs = [
185    "//foundation/multimedia/image_framework/plugins/manager/include",
186    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
187    "//foundation/multimedia/image_framework/plugins/manager/include/utils",
188    "//foundation/multimedia/image_framework/plugins/manager/src/common",
189    "//foundation/multimedia/image_framework/plugins/manager/src/framework",
190    "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
191    "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
192    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
193    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
194  ]
195
196  if (use_mingw_win) {
197    defines = image_decode_windows_defines
198    include_dirs +=
199        [ "//foundation/multimedia/image_framework/mock/native/include" ]
200    deps = [
201      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
202    ]
203  } else if (use_clang_mac) {
204    defines = image_decode_mac_defines
205    include_dirs += [
206      "//foundation/multimedia/image_framework/mock/native/include",
207      "//third_party/bounds_checking_function/include",
208    ]
209    deps = [
210      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
211      "//third_party/bounds_checking_function:libsec_static",
212    ]
213  } else if (use_clang_ios) {
214    defines = image_decode_ios_defines
215    include_dirs += [ "$image_subsystem/mock/native/include/log" ]
216    deps = [ "$image_subsystem/mock/native:log_mock_static" ]
217  } else if (use_clang_android) {
218    include_dirs += [
219      "//commonlibrary/c_utils/base/include",
220      "$image_subsystem/mock/native/include/log",
221    ]
222
223    deps = [
224      "$image_subsystem/mock/native:log_mock_static",
225      "//commonlibrary/c_utils/base:utils",
226    ]
227  } else {
228    ldflags = [ "-Wl,-Bsymbolic" ]
229
230    external_deps = [
231      "c_utils:utils",
232      "graphic_2d:color_manager",
233      "hilog:libhilog",
234      "json:nlohmann_json_static",
235    ]
236  }
237  subsystem_name = "multimedia"
238  part_name = "image_framework"
239}
240