1e5c4badcSopenharmony_ci# Copyright (C) 2021 Huawei Device Co., Ltd.
2e5c4badcSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3e5c4badcSopenharmony_ci# you may not use this file except in compliance with the License.
4e5c4badcSopenharmony_ci# You may obtain a copy of the License at
5e5c4badcSopenharmony_ci#
6e5c4badcSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7e5c4badcSopenharmony_ci#
8e5c4badcSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9e5c4badcSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10e5c4badcSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11e5c4badcSopenharmony_ci# See the License for the specific language governing permissions and
12e5c4badcSopenharmony_ci# limitations under the License.
13e5c4badcSopenharmony_ci
14e5c4badcSopenharmony_ciimport("//build/ohos.gni")
15e5c4badcSopenharmony_ciimport("//foundation/multimedia/image_framework/ide/image_decode_config.gni")
16e5c4badcSopenharmony_ci
17e5c4badcSopenharmony_ciif (use_clang_ios) {
18e5c4badcSopenharmony_ci  ohos_source_set("pluginmanager") {
19e5c4badcSopenharmony_ci    sources = [
20e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/common/attr_data.cpp",
21e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/common/platform_adp.cpp",
22e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/capability.cpp",
23e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class.cpp",
24e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_key.cpp",
25e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_mgr.cpp",
26e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/json_helper.cpp",
27e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin.cpp",
28e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_fw.cpp",
29e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_info_lock.cpp",
30e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_mgr.cpp",
31e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/plugin_server.cpp",
32e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase/plugin_class_base.cpp",
33e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer/gst_plugin_fw.cpp",
34e5c4badcSopenharmony_ci    ]
35e5c4badcSopenharmony_ci
36e5c4badcSopenharmony_ci    cflags = [
37e5c4badcSopenharmony_ci      "-DIMAGE_DEBUG_FLAG",
38e5c4badcSopenharmony_ci      #"-DIMAGE_COLORSPACE_FLAG",
39e5c4badcSopenharmony_ci    ]
40e5c4badcSopenharmony_ci
41e5c4badcSopenharmony_ci    include_dirs = [
42e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/include",
43e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/include",
44e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
45e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/include/utils",
46e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/common",
47e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework",
48e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
49e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
50e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
51e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
52e5c4badcSopenharmony_ci      "//foundation/multimedia/utils/include",
53e5c4badcSopenharmony_ci      "//third_party/json/single_include/nlohmann",
54e5c4badcSopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
55e5c4badcSopenharmony_ci      "$image_subsystem/mock/native/include/log",
56e5c4badcSopenharmony_ci    ]
57e5c4badcSopenharmony_ci
58e5c4badcSopenharmony_ci    defines = image_decode_ios_defines
59e5c4badcSopenharmony_ci    include_dirs += [
60e5c4badcSopenharmony_ci      "//commonlibrary/c_utils/base/include",
61e5c4badcSopenharmony_ci      "$image_subsystem/mock/native/include/log",
62e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native/include/secure",
63e5c4badcSopenharmony_ci    ]
64e5c4badcSopenharmony_ci
65e5c4badcSopenharmony_ci    deps = [ "$image_subsystem/mock/native:log_mock_static" ]
66e5c4badcSopenharmony_ci
67e5c4badcSopenharmony_ci    #relative_install_dir = "module/multimedia"
68e5c4badcSopenharmony_ci    subsystem_name = "multimedia"
69e5c4badcSopenharmony_ci    part_name = "image_framework"
70e5c4badcSopenharmony_ci  }
71e5c4badcSopenharmony_ci} else {
72e5c4badcSopenharmony_ci  ohos_shared_library("pluginmanager") {
73e5c4badcSopenharmony_ci    if (!use_clang_android) {
74e5c4badcSopenharmony_ci      branch_protector_ret = "pac_ret"
75e5c4badcSopenharmony_ci      sanitize = {
76e5c4badcSopenharmony_ci        cfi = true
77e5c4badcSopenharmony_ci        cfi_cross_dso = true
78e5c4badcSopenharmony_ci        cfi_vcall_icall_only = true
79e5c4badcSopenharmony_ci        debug = false
80e5c4badcSopenharmony_ci      }
81e5c4badcSopenharmony_ci    }
82e5c4badcSopenharmony_ci    sources = [
83e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/common/attr_data.cpp",
84e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/common/platform_adp.cpp",
85e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/capability.cpp",
86e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class.cpp",
87e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_key.cpp",
88e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_mgr.cpp",
89e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/json_helper.cpp",
90e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin.cpp",
91e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_fw.cpp",
92e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_info_lock.cpp",
93e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_mgr.cpp",
94e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/plugin_server.cpp",
95e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase/plugin_class_base.cpp",
96e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer/gst_plugin_fw.cpp",
97e5c4badcSopenharmony_ci    ]
98e5c4badcSopenharmony_ci
99e5c4badcSopenharmony_ci    cflags = [
100e5c4badcSopenharmony_ci      "-DIMAGE_DEBUG_FLAG",
101e5c4badcSopenharmony_ci      "-DIMAGE_COLORSPACE_FLAG",
102e5c4badcSopenharmony_ci    ]
103e5c4badcSopenharmony_ci
104e5c4badcSopenharmony_ci    include_dirs = [
105e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/common/libs/image/libextplugin/include",
106e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/include",
107e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
108e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/include/utils",
109e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/common",
110e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/framework",
111e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
112e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
113e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
114e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
115e5c4badcSopenharmony_ci      "$image_subsystem/mock/native/include/log",
116e5c4badcSopenharmony_ci    ]
117e5c4badcSopenharmony_ci
118e5c4badcSopenharmony_ci    if (use_mingw_win) {
119e5c4badcSopenharmony_ci      defines = image_decode_windows_defines
120e5c4badcSopenharmony_ci      include_dirs += [ "$image_subsystem/mock/native/include/log" ]
121e5c4badcSopenharmony_ci      deps = [ "$image_subsystem/mock/native:log_mock_static" ]
122e5c4badcSopenharmony_ci    } else if (use_clang_mac) {
123e5c4badcSopenharmony_ci      defines = image_decode_mac_defines
124e5c4badcSopenharmony_ci      include_dirs += [
125e5c4badcSopenharmony_ci        "//foundation/multimedia/image_framework/mock/native/include",
126e5c4badcSopenharmony_ci        "//third_party/bounds_checking_function/include",
127e5c4badcSopenharmony_ci      ]
128e5c4badcSopenharmony_ci      deps = [
129e5c4badcSopenharmony_ci        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
130e5c4badcSopenharmony_ci        "//third_party/bounds_checking_function:libsec_static",
131e5c4badcSopenharmony_ci      ]
132e5c4badcSopenharmony_ci    } else if (use_clang_android) {
133e5c4badcSopenharmony_ci      include_dirs += [ "//commonlibrary/c_utils/base/include" ]
134e5c4badcSopenharmony_ci      cflags -= [ "-DIMAGE_COLORSPACE_FLAG" ]
135e5c4badcSopenharmony_ci
136e5c4badcSopenharmony_ci      deps = [
137e5c4badcSopenharmony_ci        "//commonlibrary/c_utils/base:utils",
138e5c4badcSopenharmony_ci        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
139e5c4badcSopenharmony_ci      ]
140e5c4badcSopenharmony_ci    } else {
141e5c4badcSopenharmony_ci      ldflags = [ "-Wl,-Bsymbolic" ]
142e5c4badcSopenharmony_ci
143e5c4badcSopenharmony_ci      external_deps = [
144e5c4badcSopenharmony_ci        "c_utils:utils",
145e5c4badcSopenharmony_ci        "graphic_2d:color_manager",
146e5c4badcSopenharmony_ci        "hilog:libhilog",
147e5c4badcSopenharmony_ci        "json:nlohmann_json_static",
148e5c4badcSopenharmony_ci      ]
149e5c4badcSopenharmony_ci    }
150e5c4badcSopenharmony_ci
151e5c4badcSopenharmony_ci    #relative_install_dir = "module/multimedia"
152e5c4badcSopenharmony_ci    subsystem_name = "multimedia"
153e5c4badcSopenharmony_ci    innerapi_tags = [ "platformsdk_indirect" ]
154e5c4badcSopenharmony_ci    part_name = "image_framework"
155e5c4badcSopenharmony_ci  }
156e5c4badcSopenharmony_ci}
157e5c4badcSopenharmony_ci
158e5c4badcSopenharmony_ciohos_static_library("pluginmanager_static") {
159e5c4badcSopenharmony_ci  if (!is_arkui_x) {
160e5c4badcSopenharmony_ci    sanitize = {
161e5c4badcSopenharmony_ci      cfi = true
162e5c4badcSopenharmony_ci      cfi_cross_dso = true
163e5c4badcSopenharmony_ci      cfi_vcall_icall_only = true
164e5c4badcSopenharmony_ci      debug = false
165e5c4badcSopenharmony_ci    }
166e5c4badcSopenharmony_ci  }
167e5c4badcSopenharmony_ci  sources = [
168e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/common/attr_data.cpp",
169e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/common/platform_adp.cpp",
170e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/capability.cpp",
171e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class.cpp",
172e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_key.cpp",
173e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/impl_class_mgr.cpp",
174e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/json_helper.cpp",
175e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin.cpp",
176e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_fw.cpp",
177e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_info_lock.cpp",
178e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework/plugin_mgr.cpp",
179e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/plugin_server.cpp",
180e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase/plugin_class_base.cpp",
181e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer/gst_plugin_fw.cpp",
182e5c4badcSopenharmony_ci  ]
183e5c4badcSopenharmony_ci
184e5c4badcSopenharmony_ci  include_dirs = [
185e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/include",
186e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
187e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/include/utils",
188e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/common",
189e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/framework",
190e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
191e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
192e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
193e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
194e5c4badcSopenharmony_ci  ]
195e5c4badcSopenharmony_ci
196e5c4badcSopenharmony_ci  if (use_mingw_win) {
197e5c4badcSopenharmony_ci    defines = image_decode_windows_defines
198e5c4badcSopenharmony_ci    include_dirs +=
199e5c4badcSopenharmony_ci        [ "//foundation/multimedia/image_framework/mock/native/include" ]
200e5c4badcSopenharmony_ci    deps = [
201e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
202e5c4badcSopenharmony_ci    ]
203e5c4badcSopenharmony_ci  } else if (use_clang_mac) {
204e5c4badcSopenharmony_ci    defines = image_decode_mac_defines
205e5c4badcSopenharmony_ci    include_dirs += [
206e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native/include",
207e5c4badcSopenharmony_ci      "//third_party/bounds_checking_function/include",
208e5c4badcSopenharmony_ci    ]
209e5c4badcSopenharmony_ci    deps = [
210e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
211e5c4badcSopenharmony_ci      "//third_party/bounds_checking_function:libsec_static",
212e5c4badcSopenharmony_ci    ]
213e5c4badcSopenharmony_ci  } else if (use_clang_ios) {
214e5c4badcSopenharmony_ci    defines = image_decode_ios_defines
215e5c4badcSopenharmony_ci    include_dirs += [ "$image_subsystem/mock/native/include/log" ]
216e5c4badcSopenharmony_ci    deps = [ "$image_subsystem/mock/native:log_mock_static" ]
217e5c4badcSopenharmony_ci  } else if (use_clang_android) {
218e5c4badcSopenharmony_ci    include_dirs += [
219e5c4badcSopenharmony_ci      "//commonlibrary/c_utils/base/include",
220e5c4badcSopenharmony_ci      "$image_subsystem/mock/native/include/log",
221e5c4badcSopenharmony_ci    ]
222e5c4badcSopenharmony_ci
223e5c4badcSopenharmony_ci    deps = [
224e5c4badcSopenharmony_ci      "$image_subsystem/mock/native:log_mock_static",
225e5c4badcSopenharmony_ci      "//commonlibrary/c_utils/base:utils",
226e5c4badcSopenharmony_ci    ]
227e5c4badcSopenharmony_ci  } else {
228e5c4badcSopenharmony_ci    ldflags = [ "-Wl,-Bsymbolic" ]
229e5c4badcSopenharmony_ci
230e5c4badcSopenharmony_ci    external_deps = [
231e5c4badcSopenharmony_ci      "c_utils:utils",
232e5c4badcSopenharmony_ci      "graphic_2d:color_manager",
233e5c4badcSopenharmony_ci      "hilog:libhilog",
234e5c4badcSopenharmony_ci      "json:nlohmann_json_static",
235e5c4badcSopenharmony_ci    ]
236e5c4badcSopenharmony_ci  }
237e5c4badcSopenharmony_ci  subsystem_name = "multimedia"
238e5c4badcSopenharmony_ci  part_name = "image_framework"
239e5c4badcSopenharmony_ci}
240