12f0d0f1aSopenharmony_ci# Copyright (c) 2023-2024 Huawei Device Co., Ltd. 22f0d0f1aSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 32f0d0f1aSopenharmony_ci# you may not use this file except in compliance with the License. 42f0d0f1aSopenharmony_ci# You may obtain a copy of the License at 52f0d0f1aSopenharmony_ci# 62f0d0f1aSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 72f0d0f1aSopenharmony_ci# 82f0d0f1aSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 92f0d0f1aSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 102f0d0f1aSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 112f0d0f1aSopenharmony_ci# See the License for the specific language governing permissions and 122f0d0f1aSopenharmony_ci# limitations under the License. 132f0d0f1aSopenharmony_ciimport("//build/ohos.gni") 142f0d0f1aSopenharmony_ci 152f0d0f1aSopenharmony_ciohos_shared_library("drm_service") { 162f0d0f1aSopenharmony_ci stack_protector_ret = true 172f0d0f1aSopenharmony_ci install_enable = true 182f0d0f1aSopenharmony_ci 192f0d0f1aSopenharmony_ci include_dirs = [ 202f0d0f1aSopenharmony_ci "./client/include", 212f0d0f1aSopenharmony_ci "./server/include", 222f0d0f1aSopenharmony_ci "./server/include/v1_0", 232f0d0f1aSopenharmony_ci "./ipc", 242f0d0f1aSopenharmony_ci "./../../interfaces/inner_api/native", 252f0d0f1aSopenharmony_ci "./../../interfaces/inner_api/native/drm", 262f0d0f1aSopenharmony_ci "./../../interfaces/kits/c/drm_capi/common", 272f0d0f1aSopenharmony_ci "./../utils", 282f0d0f1aSopenharmony_ci "./../utils/include", 292f0d0f1aSopenharmony_ci "//foundation//arkui/napi/interfaces/kits", 302f0d0f1aSopenharmony_ci ] 312f0d0f1aSopenharmony_ci 322f0d0f1aSopenharmony_ci sources = [ 332f0d0f1aSopenharmony_ci "./../utils/drm_dfx.cpp", 342f0d0f1aSopenharmony_ci "./../utils/drm_dfx_utils.cpp", 352f0d0f1aSopenharmony_ci "./../utils/drm_trace.cpp", 362f0d0f1aSopenharmony_ci "./../utils/hdi_err_convertor.cpp", 372f0d0f1aSopenharmony_ci "./client/src/drm_listener_proxy.cpp", 382f0d0f1aSopenharmony_ci "./client/src/key_session_service_callback_proxy.cpp", 392f0d0f1aSopenharmony_ci "./client/src/mediakeysystem_service_callback_proxy.cpp", 402f0d0f1aSopenharmony_ci "./server/src/drm_host_manager.cpp", 412f0d0f1aSopenharmony_ci "./server/src/key_session_service.cpp", 422f0d0f1aSopenharmony_ci "./server/src/key_session_service_stub.cpp", 432f0d0f1aSopenharmony_ci "./server/src/media_decrypt_module_service.cpp", 442f0d0f1aSopenharmony_ci "./server/src/media_decrypt_module_service_stub.cpp", 452f0d0f1aSopenharmony_ci "./server/src/mediakeysystem_service.cpp", 462f0d0f1aSopenharmony_ci "./server/src/mediakeysystem_service_stub.cpp", 472f0d0f1aSopenharmony_ci "./server/src/mediakeysystemfactory_service.cpp", 482f0d0f1aSopenharmony_ci "./server/src/mediakeysystemfactory_service_stub.cpp", 492f0d0f1aSopenharmony_ci ] 502f0d0f1aSopenharmony_ci deps = [ ":drm_plugin_lazyloding" ] 512f0d0f1aSopenharmony_ci external_deps = [ 522f0d0f1aSopenharmony_ci "ability_base:want", 532f0d0f1aSopenharmony_ci "ability_runtime:abilitykit_native", 542f0d0f1aSopenharmony_ci "ability_runtime:napi_base_context", 552f0d0f1aSopenharmony_ci "bundle_framework:appexecfwk_base", 562f0d0f1aSopenharmony_ci "bundle_framework:appexecfwk_core", 572f0d0f1aSopenharmony_ci "c_utils:utils", 582f0d0f1aSopenharmony_ci "drivers_interface_drm:libdrm_proxy_1.0", 592f0d0f1aSopenharmony_ci "hdf_core:libhdf_host", 602f0d0f1aSopenharmony_ci "hdf_core:libhdf_ipc_adapter", 612f0d0f1aSopenharmony_ci "hdf_core:libhdf_utils", 622f0d0f1aSopenharmony_ci "hdf_core:libhdi", 632f0d0f1aSopenharmony_ci "hicollie:libhicollie", 642f0d0f1aSopenharmony_ci "hidumper:lib_dump_usage", 652f0d0f1aSopenharmony_ci "hilog:libhilog", 662f0d0f1aSopenharmony_ci "hisysevent:libhisysevent", 672f0d0f1aSopenharmony_ci "hitrace:hitrace_meter", 682f0d0f1aSopenharmony_ci "hitrace:libhitracechain", 692f0d0f1aSopenharmony_ci "ipc:ipc_core", 702f0d0f1aSopenharmony_ci "ipc:ipc_single", 712f0d0f1aSopenharmony_ci "memmgr:memmgrclient", 722f0d0f1aSopenharmony_ci "napi:ace_napi", 732f0d0f1aSopenharmony_ci "safwk:system_ability_fwk", 742f0d0f1aSopenharmony_ci "samgr:samgr_proxy", 752f0d0f1aSopenharmony_ci ] 762f0d0f1aSopenharmony_ci 772f0d0f1aSopenharmony_ci public_external_deps = [ "json:nlohmann_json_static" ] 782f0d0f1aSopenharmony_ci 792f0d0f1aSopenharmony_ci cflags = [ 802f0d0f1aSopenharmony_ci "-Wall", 812f0d0f1aSopenharmony_ci "-fPIC", 822f0d0f1aSopenharmony_ci "-fdata-sections", 832f0d0f1aSopenharmony_ci "-ffunction-sections", 842f0d0f1aSopenharmony_ci "-fno-asynchronous-unwind-tables", 852f0d0f1aSopenharmony_ci "-fno-unwind-tables", 862f0d0f1aSopenharmony_ci "-Os", 872f0d0f1aSopenharmony_ci ] 882f0d0f1aSopenharmony_ci if (target_cpu == "arm") { 892f0d0f1aSopenharmony_ci cflags += [ "-DBINDER_IPC_32BIT" ] 902f0d0f1aSopenharmony_ci } 912f0d0f1aSopenharmony_ci 922f0d0f1aSopenharmony_ci sanitize = { 932f0d0f1aSopenharmony_ci integer_overflow = true 942f0d0f1aSopenharmony_ci ubsan = true 952f0d0f1aSopenharmony_ci boundary_sanitize = true 962f0d0f1aSopenharmony_ci cfi = true 972f0d0f1aSopenharmony_ci cfi_cross_dso = true 982f0d0f1aSopenharmony_ci cfi_vcall_icall_only = true 992f0d0f1aSopenharmony_ci debug = false 1002f0d0f1aSopenharmony_ci } 1012f0d0f1aSopenharmony_ci 1022f0d0f1aSopenharmony_ci if (use_musl) { 1032f0d0f1aSopenharmony_ci if (musl_use_jemalloc && musl_use_jemalloc_dfx_intf) { 1042f0d0f1aSopenharmony_ci cflags += [ "-DCONFIG_USE_JEMALLOC_DFX_INTF" ] 1052f0d0f1aSopenharmony_ci } 1062f0d0f1aSopenharmony_ci } 1072f0d0f1aSopenharmony_ci 1082f0d0f1aSopenharmony_ci cflags_cc = cflags 1092f0d0f1aSopenharmony_ci 1102f0d0f1aSopenharmony_ci subsystem_name = "multimedia" 1112f0d0f1aSopenharmony_ci part_name = "drm_framework" 1122f0d0f1aSopenharmony_ci} 1132f0d0f1aSopenharmony_ci 1142f0d0f1aSopenharmony_ciohos_prebuilt_etc("drm_plugin_lazyloding") { 1152f0d0f1aSopenharmony_ci source = "../etc/drm_plugin_lazyloding.cfg" 1162f0d0f1aSopenharmony_ci relative_install_dir = "drm" 1172f0d0f1aSopenharmony_ci part_name = "drm_framework" 1182f0d0f1aSopenharmony_ci subsystem_name = "multimedia" 1192f0d0f1aSopenharmony_ci} 120