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