1e9297d28Sopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
2e9297d28Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3e9297d28Sopenharmony_ci# you may not use this file except in compliance with the License.
4e9297d28Sopenharmony_ci# You may obtain a copy of the License at
5e9297d28Sopenharmony_ci#
6e9297d28Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7e9297d28Sopenharmony_ci#
8e9297d28Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9e9297d28Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10e9297d28Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11e9297d28Sopenharmony_ci# See the License for the specific language governing permissions and
12e9297d28Sopenharmony_ci# limitations under the License.
13e9297d28Sopenharmony_ci
14e9297d28Sopenharmony_ciimport("//build/ohos.gni")
15e9297d28Sopenharmony_ciimport("//foundation/graphic/graphic_2d/graphic_config.gni")
16e9297d28Sopenharmony_ci
17e9297d28Sopenharmony_ci## Build libskeffectchain.so
18e9297d28Sopenharmony_ci
19e9297d28Sopenharmony_ciconfig("effect_SKeffectChian_config") {
20e9297d28Sopenharmony_ci  cflags = [
21e9297d28Sopenharmony_ci    "-Wall",
22e9297d28Sopenharmony_ci    "-Werror",
23e9297d28Sopenharmony_ci    "-g3",
24e9297d28Sopenharmony_ci    "-Wall",
25e9297d28Sopenharmony_ci    "-Wno-pointer-arith",
26e9297d28Sopenharmony_ci    "-Wno-non-virtual-dtor",
27e9297d28Sopenharmony_ci    "-Wno-missing-field-initializers",
28e9297d28Sopenharmony_ci    "-Wno-c++11-narrowing",
29e9297d28Sopenharmony_ci  ]
30e9297d28Sopenharmony_ci  include_dirs =
31e9297d28Sopenharmony_ci      [ "$graphic_2d_root/rosen/modules/render_service_base/include" ]
32e9297d28Sopenharmony_ci}
33e9297d28Sopenharmony_ci
34e9297d28Sopenharmony_ciconfig("effect_SKeffectChian_public_config") {
35e9297d28Sopenharmony_ci  include_dirs = [
36e9297d28Sopenharmony_ci    "../effectChain/include",
37e9297d28Sopenharmony_ci    "../egl/include",
38e9297d28Sopenharmony_ci    "$graphic_2d_root/utils/log",
39e9297d28Sopenharmony_ci    "include",
40e9297d28Sopenharmony_ci  ]
41e9297d28Sopenharmony_ci
42e9297d28Sopenharmony_ci  if (is_arkui_x) {
43e9297d28Sopenharmony_ci    include_dirs += [
44e9297d28Sopenharmony_ci      "//foundation/graphic/graphic_2d/rosen/modules/2d_graphics/include",
45e9297d28Sopenharmony_ci      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
46e9297d28Sopenharmony_ci      "//foundation/graphic/graphic_2d/utils/color_manager/export",
47e9297d28Sopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits",
48e9297d28Sopenharmony_ci    ]
49e9297d28Sopenharmony_ci  }
50e9297d28Sopenharmony_ci
51e9297d28Sopenharmony_ci  if (target_os == "ios") {
52e9297d28Sopenharmony_ci    include_dirs -= [ "../egl/include" ]
53e9297d28Sopenharmony_ci  }
54e9297d28Sopenharmony_ci}
55e9297d28Sopenharmony_ciif (is_arkui_x) {
56e9297d28Sopenharmony_ci  ohos_source_set("skeffectchain") {
57e9297d28Sopenharmony_ci    public_deps = [
58e9297d28Sopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${target_os}",
59e9297d28Sopenharmony_ci      "//foundation/arkui/ace_engine/adapter/${target_os}/build:libarkui_${target_os}",
60e9297d28Sopenharmony_ci    ]
61e9297d28Sopenharmony_ci
62e9297d28Sopenharmony_ci    if (target_os == "android") {
63e9297d28Sopenharmony_ci      defines = [ "ANDROID_PLATFORM" ]
64e9297d28Sopenharmony_ci    } else if (target_os == "ios") {
65e9297d28Sopenharmony_ci      defines = [ "IOS_PLATFORM" ]
66e9297d28Sopenharmony_ci    }
67e9297d28Sopenharmony_ci
68e9297d28Sopenharmony_ci    if (target_os == "android") {
69e9297d28Sopenharmony_ci      public_deps +=
70e9297d28Sopenharmony_ci          [ "$graphic_2d_root/rosen/modules/effect/egl:libegl_effect" ]
71e9297d28Sopenharmony_ci
72e9297d28Sopenharmony_ci      if (rs_enable_gpu) {
73e9297d28Sopenharmony_ci        defines += gpu_defines
74e9297d28Sopenharmony_ci        public_deps += [
75e9297d28Sopenharmony_ci          "$graphic_2d_root/frameworks/opengl_wrapper:EGL",
76e9297d28Sopenharmony_ci          "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3",
77e9297d28Sopenharmony_ci        ]
78e9297d28Sopenharmony_ci      }
79e9297d28Sopenharmony_ci    }
80e9297d28Sopenharmony_ci
81e9297d28Sopenharmony_ci    public_external_deps = [
82e9297d28Sopenharmony_ci      "c_utils:utilsbase",
83e9297d28Sopenharmony_ci      "skia:skia_canvaskit_static",
84e9297d28Sopenharmony_ci    ]
85e9297d28Sopenharmony_ci
86e9297d28Sopenharmony_ci    sources = [
87e9297d28Sopenharmony_ci      "src/sk_image_chain.cpp",
88e9297d28Sopenharmony_ci      "src/sk_image_filter_factory.cpp",
89e9297d28Sopenharmony_ci    ]
90e9297d28Sopenharmony_ci
91e9297d28Sopenharmony_ci    configs = [ ":effect_SKeffectChian_config" ]
92e9297d28Sopenharmony_ci
93e9297d28Sopenharmony_ci    public_configs = [ ":effect_SKeffectChian_public_config" ]
94e9297d28Sopenharmony_ci
95e9297d28Sopenharmony_ci    cflags_cc = [ "-std=c++17" ]
96e9297d28Sopenharmony_ci
97e9297d28Sopenharmony_ci    part_name = "graphic_2d"
98e9297d28Sopenharmony_ci    subsystem_name = "graphic"
99e9297d28Sopenharmony_ci  }
100e9297d28Sopenharmony_ci} else {
101e9297d28Sopenharmony_ci  ohos_shared_library("skeffectchain") {
102e9297d28Sopenharmony_ci    public_deps = [ "$graphic_2d_root/rosen/modules/effect/egl:libegl_effect" ]
103e9297d28Sopenharmony_ci
104e9297d28Sopenharmony_ci    if (rs_enable_gpu) {
105e9297d28Sopenharmony_ci      defines = gpu_defines
106e9297d28Sopenharmony_ci      public_deps += [
107e9297d28Sopenharmony_ci        "$graphic_2d_root/frameworks/opengl_wrapper:EGL",
108e9297d28Sopenharmony_ci        "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3",
109e9297d28Sopenharmony_ci      ]
110e9297d28Sopenharmony_ci    }
111e9297d28Sopenharmony_ci
112e9297d28Sopenharmony_ci    public_external_deps = [
113e9297d28Sopenharmony_ci      "graphic_surface:surface",
114e9297d28Sopenharmony_ci      "skia:skia_canvaskit",
115e9297d28Sopenharmony_ci    ]
116e9297d28Sopenharmony_ci
117e9297d28Sopenharmony_ci    external_deps = [
118e9297d28Sopenharmony_ci      "c_utils:utils",
119e9297d28Sopenharmony_ci      "hilog:libhilog",
120e9297d28Sopenharmony_ci      "hitrace:hitrace_meter",
121e9297d28Sopenharmony_ci      "image_framework:image",
122e9297d28Sopenharmony_ci      "image_framework:image_native",
123e9297d28Sopenharmony_ci      "image_framework:pixelconvertadapter",
124e9297d28Sopenharmony_ci      "init:libbegetutil",
125e9297d28Sopenharmony_ci      "ipc:ipc_core",
126e9297d28Sopenharmony_ci      "napi:ace_napi",
127e9297d28Sopenharmony_ci      "samgr:samgr_proxy",
128e9297d28Sopenharmony_ci    ]
129e9297d28Sopenharmony_ci
130e9297d28Sopenharmony_ci    sources = [
131e9297d28Sopenharmony_ci      "src/sk_image_chain.cpp",
132e9297d28Sopenharmony_ci      "src/sk_image_filter_factory.cpp",
133e9297d28Sopenharmony_ci    ]
134e9297d28Sopenharmony_ci
135e9297d28Sopenharmony_ci    configs = [ ":effect_SKeffectChian_config" ]
136e9297d28Sopenharmony_ci
137e9297d28Sopenharmony_ci    public_configs = [ ":effect_SKeffectChian_public_config" ]
138e9297d28Sopenharmony_ci
139e9297d28Sopenharmony_ci    deps = [ "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base" ]
140e9297d28Sopenharmony_ci
141e9297d28Sopenharmony_ci    cflags_cc = [ "-std=c++17" ]
142e9297d28Sopenharmony_ci
143e9297d28Sopenharmony_ci    install_enable = true
144e9297d28Sopenharmony_ci    part_name = "graphic_2d"
145e9297d28Sopenharmony_ci    subsystem_name = "graphic"
146e9297d28Sopenharmony_ci  }
147e9297d28Sopenharmony_ci}
148