14d949f91Sopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd.
24d949f91Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
34d949f91Sopenharmony_ci# you may not use this file except in compliance with the License.
44d949f91Sopenharmony_ci# You may obtain a copy of the License at
54d949f91Sopenharmony_ci#
64d949f91Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
74d949f91Sopenharmony_ci#
84d949f91Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
94d949f91Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
104d949f91Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
114d949f91Sopenharmony_ci# See the License for the specific language governing permissions and
124d949f91Sopenharmony_ci# limitations under the License.
134d949f91Sopenharmony_ci
144d949f91Sopenharmony_ciimport("//build/ohos.gni")
154d949f91Sopenharmony_ciimport("//foundation/multimedia/image_effect/config.gni")
164d949f91Sopenharmony_ci
174d949f91Sopenharmony_ciconfig("image_effect_impl_public_config") {
184d949f91Sopenharmony_ci  include_dirs = [
194d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native",
204d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/base",
214d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/colorspace",
224d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/common",
234d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/custom",
244d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/effect",
254d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/efilter",
264d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/memory",
274d949f91Sopenharmony_ci    "$image_effect_root_dir/interfaces/inner_api/native/utils",
284d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/include/core",
294d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/include/factory",
304d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/include/filters/sink",
314d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/include/filters/source",
324d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/base",
334d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/colorspace_manager",
344d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/base",
354d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/dfx",
364d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment",
374d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/render_thread/queue",
384d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/render_thread/task",
394d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/render_thread/worker",
404d949f91Sopenharmony_ci    "//foundation/multimedia/media_foundation/engine/include",
414d949f91Sopenharmony_ci  ]
424d949f91Sopenharmony_ci
434d949f91Sopenharmony_ci  defines = [
444d949f91Sopenharmony_ci    "HST_ANY_WITH_NO_RTTI",
454d949f91Sopenharmony_ci    "IMAGE_COLORSPACE_FLAG",
464d949f91Sopenharmony_ci  ]
474d949f91Sopenharmony_ci}
484d949f91Sopenharmony_ci
494d949f91Sopenharmony_ciohos_shared_library("image_effect_impl") {
504d949f91Sopenharmony_ci  sanitize = image_effect_sanitize
514d949f91Sopenharmony_ci
524d949f91Sopenharmony_ci  stack_protector_ret = true
534d949f91Sopenharmony_ci
544d949f91Sopenharmony_ci  public_configs = [ ":image_effect_impl_public_config" ]
554d949f91Sopenharmony_ci
564d949f91Sopenharmony_ci  include_dirs = [
574d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/colorspace_manager",
584d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/custom",
594d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/brightness",
604d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/contrast",
614d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/crop",
624d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/common",
634d949f91Sopenharmony_ci    "//third_party/skia/third_party/externals/oboe/samples/RhythmGame/third_party",
644d949f91Sopenharmony_ci  ]
654d949f91Sopenharmony_ci
664d949f91Sopenharmony_ci  sources = [
674d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/base/effect.cpp",
684d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/base/effect_context.cpp",
694d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/base/effect_surface_adapter.cpp",
704d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/base/external_loader.cpp",
714d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/base/image_effect_inner.cpp",
724d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/colorspace_manager/colorspace_converter.cpp",
734d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/colorspace_manager/colorspace_helper.cpp",
744d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/colorspace_manager/colorspace_manager.cpp",
754d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/colorspace_manager/colorspace_strategy.cpp",
764d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/colorspace_manager/metadata_generator.cpp",
774d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/memory_manager/effect_memory.cpp",
784d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/manager/memory_manager/effect_memory_manager.cpp",
794d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/core/capability_negotiate.cpp",
804d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/core/filter_base.cpp",
814d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/core/pipeline_core.cpp",
824d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/core/port.cpp",
834d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/factory/filter_factory.cpp",
844d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/filters/sink/image_sink_filter.cpp",
854d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/effect/pipeline/filters/source/image_source_filter.cpp",
864d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/base/efilter.cpp",
874d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/base/efilter_base.cpp",
884d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/base/efilter_factory.cpp",
894d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/base/render_strategy.cpp",
904d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/custom/custom_efilter.cpp",
914d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/brightness/brightness_efilter.cpp",
924d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/brightness/cpu_brightness_algo.cpp",
934d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/brightness/gpu_brightness_algo.cpp",
944d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/contrast/contrast_efilter.cpp",
954d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/contrast/cpu_contrast_algo.cpp",
964d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/contrast/gpu_contrast_algo.cpp",
974d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/efilter/filterimpl/crop/crop_efilter.cpp",
984d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/core/algorithm_program.cpp",
994d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/core/render_mesh.cpp",
1004d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/core/render_opengl_renderer.cpp",
1014d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/graphic/gl_utils.cpp",
1024d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/graphic/render_attribute.cpp",
1034d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/graphic/render_context.cpp",
1044d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/graphic/render_frame_buffer.cpp",
1054d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/graphic/render_general_program.cpp",
1064d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/graphic/render_program.cpp",
1074d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/graphic/render_surface.cpp",
1084d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/render_environment/render_environment.cpp",
1094d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/common/common_utils.cpp",
1104d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/common/effect_json_helper.cpp",
1114d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/common/memcpy_helper.cpp",
1124d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/common/string_helper.cpp",
1134d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/common/vpe_helper.cpp",
1144d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/dfx/error_code.cpp",
1154d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/dfx/event_report.cpp",
1164d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/format/format_helper.cpp",
1174d949f91Sopenharmony_ci  ]
1184d949f91Sopenharmony_ci
1194d949f91Sopenharmony_ci  use_exceptions = true
1204d949f91Sopenharmony_ci
1214d949f91Sopenharmony_ci  external_deps = [
1224d949f91Sopenharmony_ci    "ability_base:zuri",
1234d949f91Sopenharmony_ci    "bounds_checking_function:libsec_shared",
1244d949f91Sopenharmony_ci    "cJSON:cjson",
1254d949f91Sopenharmony_ci    "c_utils:utils",
1264d949f91Sopenharmony_ci    "drivers_interface_display:display_commontype_idl_headers",
1274d949f91Sopenharmony_ci    "graphic_2d:EGL",
1284d949f91Sopenharmony_ci    "graphic_2d:GLESv3",
1294d949f91Sopenharmony_ci    "graphic_2d:color_manager",
1304d949f91Sopenharmony_ci    "graphic_2d:librender_service_client",
1314d949f91Sopenharmony_ci    "graphic_surface:surface",
1324d949f91Sopenharmony_ci    "hilog:libhilog",
1334d949f91Sopenharmony_ci    "hisysevent:libhisysevent",
1344d949f91Sopenharmony_ci    "hitrace:hitrace_meter",
1354d949f91Sopenharmony_ci    "image_framework:image_native",
1364d949f91Sopenharmony_ci    "libexif:libexif",
1374d949f91Sopenharmony_ci    "napi:ace_napi",
1384d949f91Sopenharmony_ci  ]
1394d949f91Sopenharmony_ci
1404d949f91Sopenharmony_ci  cflags_cc = [
1414d949f91Sopenharmony_ci    "-ffunction-sections",
1424d949f91Sopenharmony_ci    "-fdata-sections",
1434d949f91Sopenharmony_ci    "-fno-rtti",
1444d949f91Sopenharmony_ci    "-Os",
1454d949f91Sopenharmony_ci    "-fvisibility=hidden",
1464d949f91Sopenharmony_ci  ]
1474d949f91Sopenharmony_ci
1484d949f91Sopenharmony_ci  ldflags = [ "-Wl,--gc-sections" ]
1494d949f91Sopenharmony_ci
1504d949f91Sopenharmony_ci  output_extension = "so"
1514d949f91Sopenharmony_ci  subsystem_name = "multimedia"
1524d949f91Sopenharmony_ci  innerapi_tags = [
1534d949f91Sopenharmony_ci    "platformsdk",
1544d949f91Sopenharmony_ci    "sasdk",
1554d949f91Sopenharmony_ci  ]
1564d949f91Sopenharmony_ci  part_name = "image_effect"
1574d949f91Sopenharmony_ci}
1584d949f91Sopenharmony_ci
1594d949f91Sopenharmony_ciconfig("image_effect_ndk_public_config") {
1604d949f91Sopenharmony_ci  include_dirs = [ "$image_effect_root_dir/interfaces/kits/native" ]
1614d949f91Sopenharmony_ci}
1624d949f91Sopenharmony_ci
1634d949f91Sopenharmony_ciohos_shared_library("image_effect") {
1644d949f91Sopenharmony_ci  sanitize = image_effect_sanitize
1654d949f91Sopenharmony_ci
1664d949f91Sopenharmony_ci  stack_protector_ret = true
1674d949f91Sopenharmony_ci
1684d949f91Sopenharmony_ci  public_configs = [ ":image_effect_ndk_public_config" ]
1694d949f91Sopenharmony_ci
1704d949f91Sopenharmony_ci  include_dirs = [
1714d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/capi",
1724d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/utils/common",
1734d949f91Sopenharmony_ci  ]
1744d949f91Sopenharmony_ci
1754d949f91Sopenharmony_ci  sources = [
1764d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/capi/image_effect.cpp",
1774d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/capi/image_effect_filter.cpp",
1784d949f91Sopenharmony_ci    "$image_effect_root_dir/frameworks/native/capi/native_common_utils.cpp",
1794d949f91Sopenharmony_ci  ]
1804d949f91Sopenharmony_ci
1814d949f91Sopenharmony_ci  use_exceptions = true
1824d949f91Sopenharmony_ci
1834d949f91Sopenharmony_ci  deps = [ ":image_effect_impl" ]
1844d949f91Sopenharmony_ci
1854d949f91Sopenharmony_ci  external_deps = [
1864d949f91Sopenharmony_ci    "cJSON:cjson",
1874d949f91Sopenharmony_ci    "c_utils:utils",
1884d949f91Sopenharmony_ci    "graphic_2d:librender_service_client",
1894d949f91Sopenharmony_ci    "graphic_surface:surface",
1904d949f91Sopenharmony_ci    "hilog:libhilog",
1914d949f91Sopenharmony_ci    "image_framework:image_native",
1924d949f91Sopenharmony_ci    "image_framework:picture",
1934d949f91Sopenharmony_ci    "image_framework:pixelmap",
1944d949f91Sopenharmony_ci    "napi:ace_napi",
1954d949f91Sopenharmony_ci  ]
1964d949f91Sopenharmony_ci
1974d949f91Sopenharmony_ci  cflags_cc = [
1984d949f91Sopenharmony_ci    "-ffunction-sections",
1994d949f91Sopenharmony_ci    "-fdata-sections",
2004d949f91Sopenharmony_ci    "-fno-rtti",
2014d949f91Sopenharmony_ci    "-Os",
2024d949f91Sopenharmony_ci    "-fvisibility=hidden",
2034d949f91Sopenharmony_ci  ]
2044d949f91Sopenharmony_ci
2054d949f91Sopenharmony_ci  ldflags = [ "-Wl,--gc-sections" ]
2064d949f91Sopenharmony_ci
2074d949f91Sopenharmony_ci  output_extension = "so"
2084d949f91Sopenharmony_ci  subsystem_name = "multimedia"
2094d949f91Sopenharmony_ci  innerapi_tags = [ "ndk" ]
2104d949f91Sopenharmony_ci  part_name = "image_effect"
2114d949f91Sopenharmony_ci}
212