1# Copyright (C) 2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/ohos.gni") 15import("//foundation/multimedia/ringtone_library/ringtone_library.gni") 16 17config("ringtone_public_config") { 18 include_dirs = [ 19 "${RINGTONE_SCANNER_PATH}/include", 20 "${RINGTONE_RESTORE_PATH}/include", 21 "${RINGTONE_EXTENSION_PATH}/include", 22 "${RINGTONE_DFX_PATH}/include", 23 "${RINGTONE_UTILS_PATH}/include", 24 "${RINGTONE_INTERFACES_PATH}/inner_api/native", 25 "${RINGTONE_SETTING_PATH}/include", 26 ] 27 ldflags = [ "-Wl,--gc-sections" ] 28 29 cflags = [ 30 "-Wall", 31 "-Werror", 32 "-fvisibility=hidden", 33 "-fdata-sections", 34 "-ffunction-sections", 35 "-Wno-unused-but-set-variable", 36 "-Os", 37 ] 38 39 cflags_cc = [ 40 "-fvisibility-inlines-hidden", 41 "-Os", 42 ] 43 44 if (target_cpu == "arm") { 45 cflags += [ "-DBINDER_IPC_32BIT" ] 46 } 47} 48 49ohos_shared_library("ringtone_data_extension") { 50 install_enable = true 51 52 ringtone_scan_source = [ 53 "${RINGTONE_SCANNER_PATH}/src/ringtone_default_setting.cpp", 54 "${RINGTONE_SCANNER_PATH}/src/ringtone_metadata_extractor.cpp", 55 "${RINGTONE_SCANNER_PATH}/src/ringtone_scan_executor.cpp", 56 "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner.cpp", 57 "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner_db.cpp", 58 "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner_manager.cpp", 59 "${RINGTONE_SCANNER_PATH}/src/ringtone_scanner_utils.cpp", 60 ] 61 62 ringtone_dfx_source = [ 63 "${RINGTONE_DFX_PATH}/src/dfx_manager.cpp", 64 "${RINGTONE_DFX_PATH}/src/dfx_reporter.cpp", 65 "${RINGTONE_DFX_PATH}/src/dfx_worker.cpp", 66 ] 67 68 ringtone_extension_sources = [ 69 "${RINGTONE_EXTENSION_PATH}/src/ringtone_bundle_manager.cpp", 70 "${RINGTONE_EXTENSION_PATH}/src/ringtone_data_command.cpp", 71 "${RINGTONE_EXTENSION_PATH}/src/ringtone_data_manager.cpp", 72 "${RINGTONE_EXTENSION_PATH}/src/ringtone_datashare_extension.cpp", 73 "${RINGTONE_EXTENSION_PATH}/src/ringtone_datashare_stub_impl.cpp", 74 "${RINGTONE_EXTENSION_PATH}/src/ringtone_language_manager.cpp", 75 "${RINGTONE_EXTENSION_PATH}/src/ringtone_rdbstore.cpp", 76 "${RINGTONE_EXTENSION_PATH}/src/ringtone_subscriber.cpp", 77 ] 78 79 sources = ringtone_extension_sources 80 sources += ringtone_scan_source 81 sources += ringtone_dfx_source 82 83 public_configs = [ ":ringtone_public_config" ] 84 85 deps = [ 86 ":ringtone_param.para.dac", 87 ":ringtone_scanner_param.para", 88 ":ringtone_setting", 89 ":ringtone_setting_notifications.para", 90 ":ringtone_setting_ringtones.para", 91 ":ringtone_setting_shots.para", 92 ":ringtone_utils", 93 "${RINGTONE_ROOT_PATH}/services/ringtone_helper:ringtone_data_helper", 94 ] 95 96 external_deps = [ 97 "ability_base:want", 98 "ability_base:zuri", 99 "ability_runtime:app_context", 100 "ability_runtime:app_manager", 101 "ability_runtime:extensionkit_native", 102 "ability_runtime:runtime", 103 "access_token:libaccesstoken_sdk", 104 "access_token:libprivacy_sdk", 105 "c_utils:utils", 106 "common_event_service:cesfwk_innerkits", 107 "data_share:datashare_common", 108 "data_share:datashare_consumer", 109 "data_share:datashare_provider", 110 "hilog:libhilog", 111 "hisysevent:libhisysevent", 112 "hitrace:hitrace_meter", 113 "init:libbegetutil", 114 "ipc:ipc_core", 115 "ipc:ipc_napi", 116 "libxml2:libxml2", 117 "napi:ace_napi", 118 "os_account:os_account_innerkits", 119 "player_framework:media_client", 120 "preferences:native_preferences", 121 "relational_store:native_rdb", 122 "relational_store:rdb_data_share_adapter", 123 "samgr:samgr_proxy", 124 ] 125 126 if (!ringtone_link_opt) { 127 sanitize = { 128 cfi = true 129 cfi_cross_dso = true 130 debug = false 131 integer_overflow = true 132 ubsan = true 133 boundary_sanitize = true 134 stack_protector_ret = true 135 } 136 } 137 138 if (ringtone_config_policy_enable) { 139 defines = [ "USE_CONFIG_POLICY" ] 140 external_deps += [ "config_policy:configpolicy_util" ] 141 } 142 143 subsystem_name = "multimedia" 144 part_name = "ringtone_library" 145} 146 147ohos_shared_library("ringtonerestore") { 148 include_dirs = [ 149 "${RINGTONE_RESTORE_PATH}/include", 150 "${RINGTONE_UTILS_PATH}/include", 151 "${RINGTONE_INTERFACES_PATH}/inner_api/native", 152 ] 153 154 sources = [ 155 "${RINGTONE_RESTORE_PATH}/src/customised_tone_processor.cpp", 156 "${RINGTONE_RESTORE_PATH}/src/dualfwk_conf_loader.cpp", 157 "${RINGTONE_RESTORE_PATH}/src/dualfwk_conf_parser.cpp", 158 "${RINGTONE_RESTORE_PATH}/src/dualfwk_sound_setting.cpp", 159 "${RINGTONE_RESTORE_PATH}/src/native_module_ohos_ringtone_restore.cpp", 160 "${RINGTONE_RESTORE_PATH}/src/ringtone_dualfwk_restore.cpp", 161 "${RINGTONE_RESTORE_PATH}/src/ringtone_rdb_transaction.cpp", 162 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore.cpp", 163 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_base.cpp", 164 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_db_utils.cpp", 165 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_factory.cpp", 166 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_napi.cpp", 167 ] 168 169 configs = [ "//build/config/compiler:exceptions" ] 170 171 ldflags = [ "-Wl" ] 172 173 cflags_cc = [ 174 "-fvisibility-inlines-hidden", 175 "-Os", 176 ] 177 178 deps = [ 179 ":ringtone_data_extension", 180 ":ringtone_setting", 181 ":ringtone_utils", 182 ] 183 184 external_deps = [ 185 "ability_base:zuri", 186 "ability_runtime:app_context", 187 "ability_runtime:app_manager", 188 "ability_runtime:extensionkit_native", 189 "ability_runtime:runtime", 190 "access_token:libaccesstoken_sdk", 191 "access_token:libnativetoken_shared", 192 "access_token:libtoken_setproc", 193 "bundle_framework:appexecfwk_core", 194 "c_utils:utils", 195 "data_share:datashare_common", 196 "data_share:datashare_consumer", 197 "data_share:datashare_provider", 198 "hilog:libhilog", 199 "hitrace:hitrace_meter", 200 "init:libbegetutil", 201 "ipc:ipc_napi", 202 "libxml2:libxml2", 203 "napi:ace_napi", 204 "os_account:os_account_innerkits", 205 "player_framework:media_client", 206 "preferences:native_preferences", 207 "relational_store:native_rdb", 208 "relational_store:rdb_data_share_adapter", 209 "samgr:samgr_proxy", 210 ] 211 212 defines = [] 213 214 sanitize = { 215 cfi = true 216 cfi_cross_dso = true 217 debug = false 218 } 219 220 relative_install_dir = "module/multimedia" 221 subsystem_name = "multimedia" 222 part_name = "ringtone_library" 223} 224 225config("ringtone_public_visible_config") { 226 visibility = [ ":*" ] 227} 228 229ohos_shared_library("ringtone_utils") { 230 install_enable = true 231 232 include_dirs = [ 233 "${RINGTONE_DFX_PATH}/include", 234 "${RINGTONE_UTILS_PATH}/include", 235 "${RINGTONE_INTERFACES_PATH}/inner_api/native", 236 ] 237 238 sources = [ 239 "${RINGTONE_UTILS_PATH}/src/permission_utils.cpp", 240 "${RINGTONE_UTILS_PATH}/src/ringtone_file_utils.cpp", 241 "${RINGTONE_UTILS_PATH}/src/ringtone_mimetype_utils.cpp", 242 "${RINGTONE_UTILS_PATH}/src/ringtone_privacy_manager.cpp", 243 "${RINGTONE_UTILS_PATH}/src/ringtone_rdb_callbacks.cpp", 244 "${RINGTONE_UTILS_PATH}/src/ringtone_utils.cpp", 245 "${RINGTONE_UTILS_PATH}/src/ringtone_xcollie.cpp", 246 ] 247 248 public_configs = [ ":ringtone_public_visible_config" ] 249 250 cflags = [ 251 "-Wall", 252 "-Werror", 253 "-Wno-unused-but-set-variable", 254 "-fdata-sections", 255 "-ffunction-sections", 256 "-Os", 257 ] 258 259 cflags_cc = [ 260 "-fvisibility-inlines-hidden", 261 "-Os", 262 ] 263 264 external_deps = [ 265 "ability_base:want", 266 "access_token:libaccesstoken_sdk", 267 "access_token:libprivacy_sdk", 268 "access_token:libtokenid_sdk", 269 "bundle_framework:appexecfwk_core", 270 "c_utils:utils", 271 "hicollie:libhicollie", 272 "hilog:libhilog", 273 "hitrace:hitrace_meter", 274 "init:libbegetutil", 275 "ipc:ipc_core", 276 "preferences:native_preferences", 277 "relational_store:native_rdb", 278 "samgr:samgr_proxy", 279 ] 280 281 if (!ringtone_link_opt) { 282 sanitize = { 283 cfi = true 284 cfi_cross_dso = true 285 debug = false 286 integer_overflow = true 287 ubsan = true 288 boundary_sanitize = true 289 stack_protector_ret = true 290 } 291 } 292 293 subsystem_name = "multimedia" 294 part_name = "ringtone_library" 295} 296 297ohos_shared_library("ringtone_setting") { 298 install_enable = true 299 include_dirs = [ 300 "${RINGTONE_INTERFACES_PATH}/inner_api/native", 301 "${RINGTONE_SETTING_PATH}/include", 302 "${RINGTONE_UTILS_PATH}/include", 303 ] 304 305 sources = [ 306 "${RINGTONE_SETTING_PATH}/src/ringtone_metadata.cpp", 307 "${RINGTONE_SETTING_PATH}/src/ringtone_setting_manager.cpp", 308 "${RINGTONE_SETTING_PATH}/src/vibrate_metadata.cpp", 309 ] 310 311 configs = [ "//build/config/compiler:exceptions" ] 312 313 deps = [ ":ringtone_utils" ] 314 315 public_configs = [ ":ringtone_public_visible_config" ] 316 317 ldflags = [ "-Wl,--gc-sections" ] 318 319 cflags = [ 320 "-Wall", 321 "-Werror", 322 "-fvisibility=hidden", 323 "-fdata-sections", 324 "-ffunction-sections", 325 "-Wno-unused-but-set-variable", 326 "-Os", 327 ] 328 329 cflags_cc = [ 330 "-fvisibility-inlines-hidden", 331 "-Os", 332 ] 333 334 external_deps = [ 335 "c_utils:utils", 336 "hilog:libhilog", 337 "relational_store:native_rdb", 338 ] 339 340 defines = [] 341 342 if (!ringtone_link_opt) { 343 sanitize = { 344 cfi = true 345 cfi_cross_dso = true 346 debug = false 347 integer_overflow = true 348 ubsan = true 349 boundary_sanitize = true 350 stack_protector_ret = true 351 } 352 } 353 354 subsystem_name = "multimedia" 355 part_name = "ringtone_library" 356} 357 358ohos_prebuilt_etc("ringtone_scanner_param.para") { 359 source = "etc/ringtone_scanner_param.para" 360 subsystem_name = "multimedia" 361 part_name = "ringtone_library" 362 module_install_dir = "etc/param" 363} 364 365ohos_prebuilt_etc("ringtone_setting_notifications.para") { 366 source = "etc/ringtone_setting_notifications.para" 367 subsystem_name = "multimedia" 368 part_name = "ringtone_library" 369 module_install_dir = "etc/param" 370} 371 372ohos_prebuilt_etc("ringtone_setting_ringtones.para") { 373 source = "etc/ringtone_setting_ringtones.para" 374 subsystem_name = "multimedia" 375 part_name = "ringtone_library" 376 module_install_dir = "etc/param" 377} 378 379ohos_prebuilt_etc("ringtone_setting_shots.para") { 380 source = "etc/ringtone_setting_shots.para" 381 subsystem_name = "multimedia" 382 part_name = "ringtone_library" 383 module_install_dir = "etc/param" 384} 385 386ohos_prebuilt_etc("ringtone_param.para.dac") { 387 source = "etc/ringtone_param.para.dac" 388 subsystem_name = "multimedia" 389 part_name = "ringtone_library" 390 module_install_dir = "etc/param" 391} 392