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_ciconfig("pixelconvertadapter_public_config") {
18e5c4badcSopenharmony_ci  visibility = [ ":*" ]
19e5c4badcSopenharmony_ci  include_dirs = [
20e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
21e5c4badcSopenharmony_ci    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include",
22e5c4badcSopenharmony_ci    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
23e5c4badcSopenharmony_ci  ]
24e5c4badcSopenharmony_ci
25e5c4badcSopenharmony_ci  if (use_mingw_win) {
26e5c4badcSopenharmony_ci    include_dirs += [
27e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native/include",
28e5c4badcSopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
29e5c4badcSopenharmony_ci      "//foundation/communication/ipc/utils/include",
30e5c4badcSopenharmony_ci      "$skia_root/skia/include/core",
31e5c4badcSopenharmony_ci      "$skia_root/skia/include/encode",
32e5c4badcSopenharmony_ci      "$skia_root/skia",
33e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports/skia_ohos",
34e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports",
35e5c4badcSopenharmony_ci      "$skia_root/skia/src/images",
36e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports/skia_ohos",
37e5c4badcSopenharmony_ci      "$skia_root/skia/third_party/externals/freetype/include/freetype",
38e5c4badcSopenharmony_ci      "//third_party/bounds_checking_function/include",
39e5c4badcSopenharmony_ci    ]
40e5c4badcSopenharmony_ci  } else if (use_clang_mac) {
41e5c4badcSopenharmony_ci    include_dirs += [
42e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native/include",
43e5c4badcSopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
44e5c4badcSopenharmony_ci      "$skia_root/skia/include/core",
45e5c4badcSopenharmony_ci      "$skia_root/skia/include/encode",
46e5c4badcSopenharmony_ci      "$skia_root/skia",
47e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports/skia_ohos",
48e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports",
49e5c4badcSopenharmony_ci      "$skia_root/skia/src/images",
50e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports/skia_ohos",
51e5c4badcSopenharmony_ci      "$skia_root/skia/third_party/externals/freetype/include/freetype",
52e5c4badcSopenharmony_ci      "//third_party/bounds_checking_function/include",
53e5c4badcSopenharmony_ci    ]
54e5c4badcSopenharmony_ci  } else if (use_clang_ios) {
55e5c4badcSopenharmony_ci    include_dirs += [
56e5c4badcSopenharmony_ci      "//commonlibrary/c_utils/base/include",
57e5c4badcSopenharmony_ci      "//foundation/communication/ipc/utils/include",
58e5c4badcSopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
59e5c4badcSopenharmony_ci      "$skia_root/skia/include/core",
60e5c4badcSopenharmony_ci      "$skia_root/skia/include/encode",
61e5c4badcSopenharmony_ci      "$skia_root/skia",
62e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports/skia_ohos",
63e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports",
64e5c4badcSopenharmony_ci      "$skia_root/skia/src/images",
65e5c4badcSopenharmony_ci      "//third_party/expat/lib",
66e5c4badcSopenharmony_ci      "$skia_root/skia/include/private",
67e5c4badcSopenharmony_ci      "$skia_root/skia/third_party/externals/freetype/include/freetype",
68e5c4badcSopenharmony_ci      "//third_party/bounds_checking_function/include",
69e5c4badcSopenharmony_ci      "$image_subsystem/mock/native/include/log",
70e5c4badcSopenharmony_ci    ]
71e5c4badcSopenharmony_ci  } else if (use_clang_android) {
72e5c4badcSopenharmony_ci    include_dirs += [
73e5c4badcSopenharmony_ci      "//commonlibrary/c_utils/base/include",
74e5c4badcSopenharmony_ci      "//foundation/communication/ipc/utils/include",
75e5c4badcSopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
76e5c4badcSopenharmony_ci      "$skia_root/skia/include/encode",
77e5c4badcSopenharmony_ci      "$skia_root/skia",
78e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports/skia_ohos",
79e5c4badcSopenharmony_ci      "$skia_root/skia/src/ports",
80e5c4badcSopenharmony_ci      "$skia_root/skia/src/images",
81e5c4badcSopenharmony_ci      "//third_party/expat/lib",
82e5c4badcSopenharmony_ci      "$skia_root/skia/include/private",
83e5c4badcSopenharmony_ci      "$skia_root/skia/third_party/externals/freetype/include/freetype",
84e5c4badcSopenharmony_ci      "//third_party/bounds_checking_function/include",
85e5c4badcSopenharmony_ci      "$image_subsystem/mock/native/include/log",
86e5c4badcSopenharmony_ci    ]
87e5c4badcSopenharmony_ci  }
88e5c4badcSopenharmony_ci}
89e5c4badcSopenharmony_ci
90e5c4badcSopenharmony_ciif (use_clang_ios) {
91e5c4badcSopenharmony_ci  ohos_source_set("pixelconvertadapter") {
92e5c4badcSopenharmony_ci    sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/src/pixel_convert_adapter.cpp" ]
93e5c4badcSopenharmony_ci
94e5c4badcSopenharmony_ci    public_configs = [ ":pixelconvertadapter_public_config" ]
95e5c4badcSopenharmony_ci
96e5c4badcSopenharmony_ci    defines = image_decode_ios_defines
97e5c4badcSopenharmony_ci    deps = [
98e5c4badcSopenharmony_ci      "../utils:image_utils",
99e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
100e5c4badcSopenharmony_ci    ]
101e5c4badcSopenharmony_ci    deps += skia_platform
102e5c4badcSopenharmony_ci
103e5c4badcSopenharmony_ci    #relative_install_dir = "module/multimedia"
104e5c4badcSopenharmony_ci    subsystem_name = "multimedia"
105e5c4badcSopenharmony_ci    part_name = "image_framework"
106e5c4badcSopenharmony_ci  }
107e5c4badcSopenharmony_ci} else {
108e5c4badcSopenharmony_ci  ohos_shared_library("pixelconvertadapter") {
109e5c4badcSopenharmony_ci    if (!use_clang_android) {
110e5c4badcSopenharmony_ci      branch_protector_ret = "pac_ret"
111e5c4badcSopenharmony_ci      sanitize = {
112e5c4badcSopenharmony_ci        cfi = true
113e5c4badcSopenharmony_ci        cfi_cross_dso = true
114e5c4badcSopenharmony_ci        cfi_vcall_icall_only = true
115e5c4badcSopenharmony_ci        debug = false
116e5c4badcSopenharmony_ci      }
117e5c4badcSopenharmony_ci    }
118e5c4badcSopenharmony_ci    sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/src/pixel_convert_adapter.cpp" ]
119e5c4badcSopenharmony_ci
120e5c4badcSopenharmony_ci    public_configs = [ ":pixelconvertadapter_public_config" ]
121e5c4badcSopenharmony_ci
122e5c4badcSopenharmony_ci    if (use_mingw_win) {
123e5c4badcSopenharmony_ci      defines = image_decode_windows_defines
124e5c4badcSopenharmony_ci      deps = [
125e5c4badcSopenharmony_ci        "../utils:image_utils",
126e5c4badcSopenharmony_ci        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
127e5c4badcSopenharmony_ci      ]
128e5c4badcSopenharmony_ci      deps += skia_platform
129e5c4badcSopenharmony_ci    } else if (use_clang_mac) {
130e5c4badcSopenharmony_ci      defines = image_decode_mac_defines
131e5c4badcSopenharmony_ci      deps = [
132e5c4badcSopenharmony_ci        "../utils:image_utils",
133e5c4badcSopenharmony_ci        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
134e5c4badcSopenharmony_ci      ]
135e5c4badcSopenharmony_ci      deps += skia_platform
136e5c4badcSopenharmony_ci    } else if (use_clang_android) {
137e5c4badcSopenharmony_ci      deps = [
138e5c4badcSopenharmony_ci        "../utils:image_utils",
139e5c4badcSopenharmony_ci        "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
140e5c4badcSopenharmony_ci        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
141e5c4badcSopenharmony_ci      ]
142e5c4badcSopenharmony_ci
143e5c4badcSopenharmony_ci      libs = [ "nativewindow" ]
144e5c4badcSopenharmony_ci    } else {
145e5c4badcSopenharmony_ci      deps = [
146e5c4badcSopenharmony_ci        "../utils:image_utils",
147e5c4badcSopenharmony_ci        "//foundation/multimedia/image_framework/mock/native:log_mock_static",
148e5c4badcSopenharmony_ci      ]
149e5c4badcSopenharmony_ci      external_deps = [
150e5c4badcSopenharmony_ci        "c_utils:utils",
151e5c4badcSopenharmony_ci        "ffmpeg:libohosffmpeg",
152e5c4badcSopenharmony_ci        "graphic_2d:color_manager",
153e5c4badcSopenharmony_ci        "hilog:libhilog",
154e5c4badcSopenharmony_ci        "skia:skia_canvaskit",
155e5c4badcSopenharmony_ci      ]
156e5c4badcSopenharmony_ci    }
157e5c4badcSopenharmony_ci
158e5c4badcSopenharmony_ci    #relative_install_dir = "module/multimedia"
159e5c4badcSopenharmony_ci    subsystem_name = "multimedia"
160e5c4badcSopenharmony_ci    innerapi_tags = [ "platformsdk" ]
161e5c4badcSopenharmony_ci    part_name = "image_framework"
162e5c4badcSopenharmony_ci  }
163e5c4badcSopenharmony_ci}
164e5c4badcSopenharmony_ci
165e5c4badcSopenharmony_ciohos_static_library("pixelconvertadapter_static") {
166e5c4badcSopenharmony_ci  sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/src/pixel_convert_adapter.cpp" ]
167e5c4badcSopenharmony_ci  public_configs = [ ":pixelconvertadapter_public_config" ]
168e5c4badcSopenharmony_ci
169e5c4badcSopenharmony_ci  if (!is_arkui_x) {
170e5c4badcSopenharmony_ci    sanitize = {
171e5c4badcSopenharmony_ci      cfi = true
172e5c4badcSopenharmony_ci      cfi_cross_dso = true
173e5c4badcSopenharmony_ci      cfi_vcall_icall_only = true
174e5c4badcSopenharmony_ci      debug = false
175e5c4badcSopenharmony_ci    }
176e5c4badcSopenharmony_ci  }
177e5c4badcSopenharmony_ci
178e5c4badcSopenharmony_ci  if (is_arkui_x) {
179e5c4badcSopenharmony_ci    include_dirs = [ "//third_party/ffmpeg" ]
180e5c4badcSopenharmony_ci  }
181e5c4badcSopenharmony_ci
182e5c4badcSopenharmony_ci  if (use_mingw_win) {
183e5c4badcSopenharmony_ci    defines = image_decode_windows_defines
184e5c4badcSopenharmony_ci    deps = [
185e5c4badcSopenharmony_ci      "../utils:image_utils",
186e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
187e5c4badcSopenharmony_ci    ]
188e5c4badcSopenharmony_ci    deps += skia_platform
189e5c4badcSopenharmony_ci  } else if (use_clang_mac) {
190e5c4badcSopenharmony_ci    defines = image_decode_mac_defines
191e5c4badcSopenharmony_ci    deps = [
192e5c4badcSopenharmony_ci      "../utils:image_utils",
193e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
194e5c4badcSopenharmony_ci    ]
195e5c4badcSopenharmony_ci    deps += skia_platform
196e5c4badcSopenharmony_ci  } else if (use_clang_ios) {
197e5c4badcSopenharmony_ci    defines = image_decode_ios_defines
198e5c4badcSopenharmony_ci    deps = [
199e5c4badcSopenharmony_ci      "../utils:image_utils_static",
200e5c4badcSopenharmony_ci      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
201e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
202e5c4badcSopenharmony_ci    ]
203e5c4badcSopenharmony_ci    deps += skia_platform
204e5c4badcSopenharmony_ci  } else if (use_clang_android) {
205e5c4badcSopenharmony_ci    deps = [
206e5c4badcSopenharmony_ci      "../utils:image_utils_static",
207e5c4badcSopenharmony_ci      "//foundation/graphic/graphic_2d/utils/color_manager:color_manager",
208e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
209e5c4badcSopenharmony_ci    ]
210e5c4badcSopenharmony_ci    deps += skia_platform
211e5c4badcSopenharmony_ci
212e5c4badcSopenharmony_ci    libs = [ "nativewindow" ]
213e5c4badcSopenharmony_ci  } else {
214e5c4badcSopenharmony_ci    deps = [
215e5c4badcSopenharmony_ci      "../utils:image_utils",
216e5c4badcSopenharmony_ci      "//foundation/multimedia/image_framework/mock/native:log_mock_static",
217e5c4badcSopenharmony_ci    ]
218e5c4badcSopenharmony_ci
219e5c4badcSopenharmony_ci    external_deps = [
220e5c4badcSopenharmony_ci      "c_utils:utils",
221e5c4badcSopenharmony_ci      "graphic_2d:color_manager",
222e5c4badcSopenharmony_ci      "hilog:libhilog",
223e5c4badcSopenharmony_ci      "skia:skia_canvaskit",
224e5c4badcSopenharmony_ci    ]
225e5c4badcSopenharmony_ci  }
226e5c4badcSopenharmony_ci  subsystem_name = "multimedia"
227e5c4badcSopenharmony_ci  part_name = "image_framework"
228e5c4badcSopenharmony_ci}
229