1fa7767c5Sopenharmony_ci# Copyright (C) 2023 Huawei Device Co., Ltd. 2fa7767c5Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3fa7767c5Sopenharmony_ci# you may not use this file except in compliance with the License. 4fa7767c5Sopenharmony_ci# You may obtain a copy of the License at 5fa7767c5Sopenharmony_ci# 6fa7767c5Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7fa7767c5Sopenharmony_ci# 8fa7767c5Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9fa7767c5Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10fa7767c5Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11fa7767c5Sopenharmony_ci# See the License for the specific language governing permissions and 12fa7767c5Sopenharmony_ci# limitations under the License. 13fa7767c5Sopenharmony_ci 14fa7767c5Sopenharmony_ciimport("//build/ohos.gni") 15fa7767c5Sopenharmony_ciimport("//foundation/multimedia/media_foundation/config.gni") 16fa7767c5Sopenharmony_ci 17fa7767c5Sopenharmony_ciif (hst_is_standard_sys) { 18fa7767c5Sopenharmony_ci group("capi_packages") { 19fa7767c5Sopenharmony_ci deps = [ ":native_media_core" ] 20fa7767c5Sopenharmony_ci } 21fa7767c5Sopenharmony_ci 22fa7767c5Sopenharmony_ci config("media_foundation_capi_public_config") { 23fa7767c5Sopenharmony_ci include_dirs = [ 24fa7767c5Sopenharmony_ci "./", 25fa7767c5Sopenharmony_ci "./common", 26fa7767c5Sopenharmony_ci "$histreamer_root_dir/interface/inner_api", 27fa7767c5Sopenharmony_ci ] 28fa7767c5Sopenharmony_ci defines = [ 29fa7767c5Sopenharmony_ci "HST_ANY_WITH_NO_RTTI", 30fa7767c5Sopenharmony_ci "MEDIA_OHOS", 31fa7767c5Sopenharmony_ci ] 32fa7767c5Sopenharmony_ci } 33fa7767c5Sopenharmony_ci 34fa7767c5Sopenharmony_ci config("media_foundation_capi_config") { 35fa7767c5Sopenharmony_ci cflags = [ 36fa7767c5Sopenharmony_ci "-fno-exceptions", 37fa7767c5Sopenharmony_ci "-Wall", 38fa7767c5Sopenharmony_ci "-fno-common", 39fa7767c5Sopenharmony_ci "-fstack-protector-all", 40fa7767c5Sopenharmony_ci "-Wshadow", 41fa7767c5Sopenharmony_ci "-FPIC", 42fa7767c5Sopenharmony_ci "-FS", 43fa7767c5Sopenharmony_ci "-O2", 44fa7767c5Sopenharmony_ci "-D_FORTIFY_SOURCE=2", 45fa7767c5Sopenharmony_ci "-Wformat=2", 46fa7767c5Sopenharmony_ci "-Wdate-time", 47fa7767c5Sopenharmony_ci ] 48fa7767c5Sopenharmony_ci 49fa7767c5Sopenharmony_ci cflags_cc = [ 50fa7767c5Sopenharmony_ci "-std=c++17", 51fa7767c5Sopenharmony_ci "-fno-rtti", 52fa7767c5Sopenharmony_ci ] 53fa7767c5Sopenharmony_ci } 54fa7767c5Sopenharmony_ci 55fa7767c5Sopenharmony_ci ohos_shared_library("native_media_core") { 56fa7767c5Sopenharmony_ci stack_protector_ret = true 57fa7767c5Sopenharmony_ci install_enable = true 58fa7767c5Sopenharmony_ci 59fa7767c5Sopenharmony_ci sanitize = { 60fa7767c5Sopenharmony_ci ubsan = true 61fa7767c5Sopenharmony_ci boundary_sanitize = true 62fa7767c5Sopenharmony_ci cfi = true 63fa7767c5Sopenharmony_ci cfi_cross_dso = true 64fa7767c5Sopenharmony_ci debug = false 65fa7767c5Sopenharmony_ci integer_overflow = true 66fa7767c5Sopenharmony_ci } 67fa7767c5Sopenharmony_ci 68fa7767c5Sopenharmony_ci configs = [ ":media_foundation_capi_config" ] 69fa7767c5Sopenharmony_ci public_configs = [ ":media_foundation_capi_public_config" ] 70fa7767c5Sopenharmony_ci 71fa7767c5Sopenharmony_ci deps = [ "$histreamer_root_dir/src:media_foundation" ] 72fa7767c5Sopenharmony_ci 73fa7767c5Sopenharmony_ci sources = [ 74fa7767c5Sopenharmony_ci "./native_avbuffer.cpp", 75fa7767c5Sopenharmony_ci "./native_avformat.cpp", 76fa7767c5Sopenharmony_ci "./native_avmemory.cpp", 77fa7767c5Sopenharmony_ci ] 78fa7767c5Sopenharmony_ci 79fa7767c5Sopenharmony_ci external_deps = [ 80fa7767c5Sopenharmony_ci "c_utils:utils", 81fa7767c5Sopenharmony_ci "graphic_surface:surface", 82fa7767c5Sopenharmony_ci "graphic_surface:sync_fence", 83fa7767c5Sopenharmony_ci "hilog:libhilog", 84fa7767c5Sopenharmony_ci "ipc:ipc_core", 85fa7767c5Sopenharmony_ci ] 86fa7767c5Sopenharmony_ci 87fa7767c5Sopenharmony_ci output_extension = "so" 88fa7767c5Sopenharmony_ci innerapi_tags = [ "ndk" ] 89fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 90fa7767c5Sopenharmony_ci part_name = "media_foundation" 91fa7767c5Sopenharmony_ci } 92fa7767c5Sopenharmony_ci} else { 93fa7767c5Sopenharmony_ci group("capi_packages") { 94fa7767c5Sopenharmony_ci } 95fa7767c5Sopenharmony_ci group("native_media_core") { 96fa7767c5Sopenharmony_ci } 97fa7767c5Sopenharmony_ci} 98