# Copyright (C) 2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//build/ohos.gni") import("//foundation/multimedia/ringtone_library/ringtone_library.gni") config("ringtone_public_config") { include_dirs = [ "${RINGTONE_SCANNER_PATH}/include", "${RINGTONE_RESTORE_PATH}/include", "${RINGTONE_EXTENSION_PATH}/include", "${RINGTONE_DFX_PATH}/include", "${RINGTONE_UTILS_PATH}/include", "${RINGTONE_INTERFACES_PATH}/inner_api/native", "${RINGTONE_HELPER_PATH}/include", "${RINGTONE_SETTING_PATH}/include", ] ldflags = [ "-Wl,--gc-sections" ] cflags = [ "-Wall", "-Werror", "-fvisibility=hidden", "-fdata-sections", "-ffunction-sections", "-Wno-unused-but-set-variable", "-Os", ] cflags_cc = [ "-fvisibility-inlines-hidden", "-Os", ] if (target_cpu == "arm") { cflags += [ "-DBINDER_IPC_32BIT" ] } } ohos_shared_library("ringtone_data_extension") { install_enable = true ringtone_scan_source = [ "${RINGTONE_SCANNER_PATH}/src/ringtone_default_setting.cpp", "${RINGTONE_SCANNER_PATH}/src/ringtone_metadata_extractor.cpp", "${RINGTONE_SCANNER_PATH}/src/ringtone_scan_executor.cpp", "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner.cpp", "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner_db.cpp", "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner_manager.cpp", "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner_utils.cpp", ] ringtone_dfx_source = [ "${RINGTONE_DFX_PATH}/src/dfx_manager.cpp", "${RINGTONE_DFX_PATH}/src/dfx_reporter.cpp", "${RINGTONE_DFX_PATH}/src/dfx_worker.cpp", ] ringtone_extension_sources = [ "${RINGTONE_EXTENSION_PATH}/src/ringtone_bundle_manager.cpp", "${RINGTONE_EXTENSION_PATH}/src/ringtone_data_command.cpp", "${RINGTONE_EXTENSION_PATH}/src/ringtone_data_manager.cpp", "${RINGTONE_EXTENSION_PATH}/src/ringtone_datashare_extension.cpp", "${RINGTONE_EXTENSION_PATH}/src/ringtone_datashare_stub_impl.cpp", "${RINGTONE_EXTENSION_PATH}/src/ringtone_language_manager.cpp", "${RINGTONE_EXTENSION_PATH}/src/ringtone_rdbstore.cpp", "${RINGTONE_EXTENSION_PATH}/src/ringtone_subscriber.cpp", ] sources = ringtone_extension_sources sources += ringtone_scan_source sources += ringtone_dfx_source public_configs = [ ":ringtone_public_config" ] deps = [ ":ringtone_param.para.dac", ":ringtone_scanner_param.para", ":ringtone_setting", ":ringtone_setting_notifications.para", ":ringtone_setting_ringtones.para", ":ringtone_setting_shots.para", ":ringtone_utils", "${RINGTONE_ROOT_PATH}/services/ringtone_helper:ringtone_data_helper", ] external_deps = [ "ability_base:want", "ability_base:zuri", "ability_runtime:app_context", "ability_runtime:app_manager", "ability_runtime:extensionkit_native", "ability_runtime:runtime", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", "c_utils:utils", "common_event_service:cesfwk_innerkits", "data_share:datashare_common", "data_share:datashare_consumer", "data_share:datashare_provider", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbegetutil", "ipc:ipc_core", "libxml2:libxml2", "napi:ace_napi", "player_framework:media_client", "preferences:native_preferences", "relational_store:native_rdb", "relational_store:rdb_data_share_adapter", "samgr:samgr_proxy", ] if (!ringtone_link_opt) { sanitize = { cfi = true cfi_cross_dso = true debug = false integer_overflow = true ubsan = true boundary_sanitize = true stack_protector_ret = true } } if (ringtone_config_policy_enable) { defines = [ "USE_CONFIG_POLICY" ] external_deps += [ "config_policy:configpolicy_util" ] } subsystem_name = "multimedia" part_name = "ringtone_library" } ohos_shared_library("ringtonerestore") { include_dirs = [ "${RINGTONE_RESTORE_PATH}/include", "${RINGTONE_UTILS_PATH}/include", "${RINGTONE_INTERFACES_PATH}/inner_api/native", ] sources = [ "${RINGTONE_RESTORE_PATH}/src/dualfwk_conf_loader.cpp", "${RINGTONE_RESTORE_PATH}/src/dualfwk_conf_parser.cpp", "${RINGTONE_RESTORE_PATH}/src/dualfwk_sound_setting.cpp", "${RINGTONE_RESTORE_PATH}/src/native_module_ohos_ringtone_restore.cpp", "${RINGTONE_RESTORE_PATH}/src/ringtone_dualfwk_restore.cpp", "${RINGTONE_RESTORE_PATH}/src/ringtone_rdb_transaction.cpp", "${RINGTONE_RESTORE_PATH}/src/ringtone_restore.cpp", "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_base.cpp", "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_db_utils.cpp", "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_factory.cpp", "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_napi.cpp", ] configs = [ "//build/config/compiler:exceptions" ] ldflags = [ "-Wl" ] deps = [ ":ringtone_data_extension", ":ringtone_setting", ":ringtone_utils", ] external_deps = [ "ability_base:zuri", "ability_runtime:app_context", "ability_runtime:app_manager", "ability_runtime:extensionkit_native", "ability_runtime:runtime", "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", "bundle_framework:appexecfwk_core", "c_utils:utils", "data_share:datashare_common", "data_share:datashare_consumer", "data_share:datashare_provider", "hilog:libhilog", "init:libbegetutil", "libxml2:libxml2", "media_library:media_library", "napi:ace_napi", "os_account:os_account_innerkits", "player_framework:media_client", "preferences:native_preferences", "relational_store:native_rdb", "relational_store:rdb_data_share_adapter", "samgr:samgr_proxy", ] defines = [] sanitize = { cfi = true cfi_cross_dso = true debug = false } relative_install_dir = "module/multimedia" subsystem_name = "multimedia" part_name = "ringtone_library" } config("ringtone_public_visible_config") { visibility = [ ":*" ] } ohos_shared_library("ringtone_utils") { install_enable = true include_dirs = [ "${RINGTONE_DFX_PATH}/include", "${RINGTONE_UTILS_PATH}/include", "${RINGTONE_INTERFACES_PATH}/inner_api/native", ] sources = [ "${RINGTONE_UTILS_PATH}/src/permission_utils.cpp", "${RINGTONE_UTILS_PATH}/src/ringtone_file_utils.cpp", "${RINGTONE_UTILS_PATH}/src/ringtone_mimetype_utils.cpp", "${RINGTONE_UTILS_PATH}/src/ringtone_privacy_manager.cpp", "${RINGTONE_UTILS_PATH}/src/ringtone_rdb_callbacks.cpp", "${RINGTONE_UTILS_PATH}/src/ringtone_utils.cpp", ] public_configs = [ ":ringtone_public_visible_config" ] cflags = [ "-Wall", "-Werror", "-Wno-unused-but-set-variable", "-fdata-sections", "-ffunction-sections", "-Os", ] cflags_cc = [ "-Os" ] external_deps = [ "ability_base:want", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", "access_token:libtokenid_sdk", "bundle_framework:appexecfwk_core", "c_utils:utils", "hilog:libhilog", "hitrace:hitrace_meter", "init:libbegetutil", "ipc:ipc_core", "preferences:native_preferences", "relational_store:native_rdb", "samgr:samgr_proxy", ] if (!ringtone_link_opt) { sanitize = { cfi = true cfi_cross_dso = true debug = false integer_overflow = true ubsan = true boundary_sanitize = true stack_protector_ret = true } } subsystem_name = "multimedia" part_name = "ringtone_library" } ohos_shared_library("ringtone_setting") { install_enable = true include_dirs = [ "${RINGTONE_INTERFACES_PATH}/inner_api/native", "${RINGTONE_SETTING_PATH}/include", "${RINGTONE_UTILS_PATH}/include", ] sources = [ "${RINGTONE_SETTING_PATH}/src/ringtone_metadata.cpp", "${RINGTONE_SETTING_PATH}/src/ringtone_setting_manager.cpp", "${RINGTONE_SETTING_PATH}/src/vibrate_metadata.cpp", ] configs = [ "//build/config/compiler:exceptions" ] deps = [ ":ringtone_utils" ] public_configs = [ ":ringtone_public_visible_config" ] ldflags = [ "-Wl,--gc-sections" ] cflags = [ "-Wall", "-Werror", "-fvisibility=hidden", "-fdata-sections", "-ffunction-sections", "-Wno-unused-but-set-variable", "-Os", ] cflags_cc = [ "-fvisibility-inlines-hidden", "-Os", ] external_deps = [ "c_utils:utils", "hilog:libhilog", "relational_store:native_rdb", ] defines = [] if (!ringtone_link_opt) { sanitize = { cfi = true cfi_cross_dso = true debug = false integer_overflow = true ubsan = true boundary_sanitize = true stack_protector_ret = true } } subsystem_name = "multimedia" part_name = "ringtone_library" } ohos_prebuilt_etc("ringtone_scanner_param.para") { source = "etc/ringtone_scanner_param.para" subsystem_name = "multimedia" part_name = "ringtone_library" module_install_dir = "etc/param" } ohos_prebuilt_etc("ringtone_setting_notifications.para") { source = "etc/ringtone_setting_notifications.para" subsystem_name = "multimedia" part_name = "ringtone_library" module_install_dir = "etc/param" } ohos_prebuilt_etc("ringtone_setting_ringtones.para") { source = "etc/ringtone_setting_ringtones.para" subsystem_name = "multimedia" part_name = "ringtone_library" module_install_dir = "etc/param" } ohos_prebuilt_etc("ringtone_setting_shots.para") { source = "etc/ringtone_setting_shots.para" subsystem_name = "multimedia" part_name = "ringtone_library" module_install_dir = "etc/param" } ohos_prebuilt_etc("ringtone_param.para.dac") { source = "etc/ringtone_param.para.dac" subsystem_name = "multimedia" part_name = "ringtone_library" module_install_dir = "etc/param" }