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_ci 142f0d0f1aSopenharmony_ci# for ohos_shared_library("drm_framework") 152f0d0f1aSopenharmony_ci 162f0d0f1aSopenharmony_ciimport("//build/ohos.gni") 172f0d0f1aSopenharmony_ci 182f0d0f1aSopenharmony_ciconfig("drm_framework_public_config") { 192f0d0f1aSopenharmony_ci include_dirs = [ 202f0d0f1aSopenharmony_ci "./../../interfaces/inner_api/native/drm", 212f0d0f1aSopenharmony_ci "./../../services/drm_service", 222f0d0f1aSopenharmony_ci ] 232f0d0f1aSopenharmony_ci} 242f0d0f1aSopenharmony_ci 252f0d0f1aSopenharmony_ciconfig("drm_framework_local_config") { 262f0d0f1aSopenharmony_ci include_dirs = [ 272f0d0f1aSopenharmony_ci "./../../interfaces/inner_api/native/drm", 282f0d0f1aSopenharmony_ci "./../../services/drm_service/client/include", 292f0d0f1aSopenharmony_ci "./../../services/drm_service/ipc", 302f0d0f1aSopenharmony_ci "./../../services/drm_service/server/include", 312f0d0f1aSopenharmony_ci "./../../services/include", 322f0d0f1aSopenharmony_ci "./../../services/utils", 332f0d0f1aSopenharmony_ci "./../../services/utils/include", 342f0d0f1aSopenharmony_ci ] 352f0d0f1aSopenharmony_ci} 362f0d0f1aSopenharmony_ci 372f0d0f1aSopenharmony_ciconfig("drm_framework_drivers_config") { 382f0d0f1aSopenharmony_ci include_dirs = [ "./../../services/drm_service/ipc/" ] 392f0d0f1aSopenharmony_ci} 402f0d0f1aSopenharmony_ci 412f0d0f1aSopenharmony_ciohos_shared_library("drm_framework") { 422f0d0f1aSopenharmony_ci branch_protector_ret = "pac_ret" 432f0d0f1aSopenharmony_ci install_enable = true 442f0d0f1aSopenharmony_ci sources = [ 452f0d0f1aSopenharmony_ci "./../../services/drm_service/client/src/key_session_service_proxy.cpp", 462f0d0f1aSopenharmony_ci "./../../services/drm_service/client/src/media_decrypt_module_service_proxy.cpp", 472f0d0f1aSopenharmony_ci "./../../services/drm_service/client/src/mediakeysystem_service_proxy.cpp", 482f0d0f1aSopenharmony_ci "./../../services/drm_service/client/src/mediakeysystemfactory_service_proxy.cpp", 492f0d0f1aSopenharmony_ci "./../../services/drm_service/server/src/drm_listener_stub.cpp", 502f0d0f1aSopenharmony_ci "./../../services/drm_service/server/src/key_session_service_callback_stub.cpp", 512f0d0f1aSopenharmony_ci "./../../services/drm_service/server/src/mediakeysystem_service_callback_stub.cpp", 522f0d0f1aSopenharmony_ci "./../../services/utils/drm_trace.cpp", 532f0d0f1aSopenharmony_ci "./drm/key_session_impl.cpp", 542f0d0f1aSopenharmony_ci "./drm/media_key_system_factory_impl.cpp", 552f0d0f1aSopenharmony_ci "./drm/media_key_system_impl.cpp", 562f0d0f1aSopenharmony_ci ] 572f0d0f1aSopenharmony_ci 582f0d0f1aSopenharmony_ci cflags = [ 592f0d0f1aSopenharmony_ci "-fPIC", 602f0d0f1aSopenharmony_ci "-Wall", 612f0d0f1aSopenharmony_ci "-fdata-sections", 622f0d0f1aSopenharmony_ci "-ffunction-sections", 632f0d0f1aSopenharmony_ci "-fno-asynchronous-unwind-tables", 642f0d0f1aSopenharmony_ci "-fno-unwind-tables", 652f0d0f1aSopenharmony_ci "-Os", 662f0d0f1aSopenharmony_ci ] 672f0d0f1aSopenharmony_ci 682f0d0f1aSopenharmony_ci if (target_cpu == "arm") { 692f0d0f1aSopenharmony_ci cflags += [ "-DBINDER_IPC_32BIT" ] 702f0d0f1aSopenharmony_ci } 712f0d0f1aSopenharmony_ci sanitize = { 722f0d0f1aSopenharmony_ci cfi = true 732f0d0f1aSopenharmony_ci cfi_cross_dso = true 742f0d0f1aSopenharmony_ci cfi_vcall_icall_only = true 752f0d0f1aSopenharmony_ci debug = false 762f0d0f1aSopenharmony_ci } 772f0d0f1aSopenharmony_ci 782f0d0f1aSopenharmony_ci public_configs = [ 792f0d0f1aSopenharmony_ci ":drm_framework_drivers_config", 802f0d0f1aSopenharmony_ci ":drm_framework_local_config", 812f0d0f1aSopenharmony_ci ":drm_framework_public_config", 822f0d0f1aSopenharmony_ci ] 832f0d0f1aSopenharmony_ci 842f0d0f1aSopenharmony_ci include_dirs = [ 852f0d0f1aSopenharmony_ci "./drm", 862f0d0f1aSopenharmony_ci "//foundation//arkui/napi/interfaces/kits", 872f0d0f1aSopenharmony_ci ] 882f0d0f1aSopenharmony_ci 892f0d0f1aSopenharmony_ci deps = [ ":drm_api_operation" ] 902f0d0f1aSopenharmony_ci 912f0d0f1aSopenharmony_ci external_deps = [ 922f0d0f1aSopenharmony_ci "ability_runtime:abilitykit_native", 932f0d0f1aSopenharmony_ci "ability_runtime:napi_base_context", 942f0d0f1aSopenharmony_ci "c_utils:utils", 952f0d0f1aSopenharmony_ci "hilog:libhilog", 962f0d0f1aSopenharmony_ci "hisysevent:libhisysevent", 972f0d0f1aSopenharmony_ci "hitrace:hitrace_meter", 982f0d0f1aSopenharmony_ci "hitrace:libhitracechain", 992f0d0f1aSopenharmony_ci "ipc:ipc_core", 1002f0d0f1aSopenharmony_ci "napi:ace_napi", 1012f0d0f1aSopenharmony_ci "safwk:system_ability_fwk", 1022f0d0f1aSopenharmony_ci "samgr:samgr_proxy", 1032f0d0f1aSopenharmony_ci ] 1042f0d0f1aSopenharmony_ci 1052f0d0f1aSopenharmony_ci cflags_cc = cflags 1062f0d0f1aSopenharmony_ci innerapi_tags = [ "platformsdk" ] 1072f0d0f1aSopenharmony_ci part_name = "drm_framework" 1082f0d0f1aSopenharmony_ci subsystem_name = "multimedia" 1092f0d0f1aSopenharmony_ci} 1102f0d0f1aSopenharmony_ci 1112f0d0f1aSopenharmony_ciohos_prebuilt_etc("drm_api_operation") { 1122f0d0f1aSopenharmony_ci source = "../../services/etc/drm_api_operation.cfg" 1132f0d0f1aSopenharmony_ci relative_install_dir = "drm" 1142f0d0f1aSopenharmony_ci part_name = "drm_framework" 1152f0d0f1aSopenharmony_ci subsystem_name = "multimedia" 1162f0d0f1aSopenharmony_ci} 117