1e5c4badcSopenharmony_ci# Copyright (C) 2022-2023 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("ffi_image_native_config") { 18e5c4badcSopenharmony_ci include_dirs = [ "include" ] 19e5c4badcSopenharmony_ci cflags_cc = [ "-std=c++17" ] 20e5c4badcSopenharmony_ci} 21e5c4badcSopenharmony_ci 22e5c4badcSopenharmony_ciohos_shared_library("cj_image_ffi") { 23e5c4badcSopenharmony_ci public_configs = [ ":ffi_image_native_config" ] 24e5c4badcSopenharmony_ci 25e5c4badcSopenharmony_ci include_dirs = [ 26e5c4badcSopenharmony_ci "$image_subsystem/interfaces/innerkits/include", 27e5c4badcSopenharmony_ci "$image_subsystem/image_framework/frameworks/innerkitsimpl/utils/include", 28e5c4badcSopenharmony_ci ] 29e5c4badcSopenharmony_ci 30e5c4badcSopenharmony_ci if (!use_clang_android && !use_clang_ios) { 31e5c4badcSopenharmony_ci sanitize = { 32e5c4badcSopenharmony_ci cfi = true 33e5c4badcSopenharmony_ci cfi_cross_dso = true 34e5c4badcSopenharmony_ci cfi_vcall_icall_only = true 35e5c4badcSopenharmony_ci debug = false 36e5c4badcSopenharmony_ci } 37e5c4badcSopenharmony_ci } 38e5c4badcSopenharmony_ci 39e5c4badcSopenharmony_ci cflags = [ 40e5c4badcSopenharmony_ci "-DIMAGE_DEBUG_FLAG", 41e5c4badcSopenharmony_ci "-DIMAGE_COLORSPACE_FLAG", 42e5c4badcSopenharmony_ci ] 43e5c4badcSopenharmony_ci 44e5c4badcSopenharmony_ci if (!defined(defines)) { 45e5c4badcSopenharmony_ci defines = [] 46e5c4badcSopenharmony_ci } 47e5c4badcSopenharmony_ci 48e5c4badcSopenharmony_ci if (!ohos_indep_compiler_enable && !build_ohos_sdk && 49e5c4badcSopenharmony_ci product_name != "qemu-arm-linux-min" && 50e5c4badcSopenharmony_ci product_name != "rk3568_mini_system") { 51e5c4badcSopenharmony_ci deps = [ 52e5c4badcSopenharmony_ci "$image_subsystem/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter", 53e5c4badcSopenharmony_ci "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils", 54e5c4badcSopenharmony_ci "$image_subsystem/interfaces/innerkits:image_native", 55e5c4badcSopenharmony_ci ] 56e5c4badcSopenharmony_ci external_deps = [ 57e5c4badcSopenharmony_ci "c_utils:utils", 58e5c4badcSopenharmony_ci "graphic_2d:cj_color_manager_ffi", 59e5c4badcSopenharmony_ci "hilog:libhilog", 60e5c4badcSopenharmony_ci "hitrace:hitrace_meter", 61e5c4badcSopenharmony_ci "ipc:ipc_napi", 62e5c4badcSopenharmony_ci "napi:ace_napi", 63e5c4badcSopenharmony_ci "napi:cj_bind_ffi", 64e5c4badcSopenharmony_ci "napi:cj_bind_native", 65e5c4badcSopenharmony_ci ] 66e5c4badcSopenharmony_ci sources = [ 67e5c4badcSopenharmony_ci "src/image_creator_impl.cpp", 68e5c4badcSopenharmony_ci "src/image_ffi.cpp", 69e5c4badcSopenharmony_ci "src/image_impl.cpp", 70e5c4badcSopenharmony_ci "src/image_packer_impl.cpp", 71e5c4badcSopenharmony_ci "src/image_receiver_impl.cpp", 72e5c4badcSopenharmony_ci "src/image_source_impl.cpp", 73e5c4badcSopenharmony_ci "src/pixel_map_impl.cpp", 74e5c4badcSopenharmony_ci ] 75e5c4badcSopenharmony_ci } else { 76e5c4badcSopenharmony_ci defines += [ "PREVIEWER" ] 77e5c4badcSopenharmony_ci sources = [ "src/cj_image_mock.cpp" ] 78e5c4badcSopenharmony_ci } 79e5c4badcSopenharmony_ci 80e5c4badcSopenharmony_ci if (is_ohos) { 81e5c4badcSopenharmony_ci defines += [ "OHOS_PLATFORM" ] 82e5c4badcSopenharmony_ci } 83e5c4badcSopenharmony_ci 84e5c4badcSopenharmony_ci if (is_mingw) { 85e5c4badcSopenharmony_ci defines += [ "WINDOWS_PLATFORM" ] 86e5c4badcSopenharmony_ci } 87e5c4badcSopenharmony_ci 88e5c4badcSopenharmony_ci innerapi_tags = [ "platformsdk" ] 89e5c4badcSopenharmony_ci 90e5c4badcSopenharmony_ci subsystem_name = "multimedia" 91e5c4badcSopenharmony_ci part_name = "image_framework" 92e5c4badcSopenharmony_ci} 93