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 "libxml2:libxml2", 116 "napi:ace_napi", 117 "player_framework:media_client", 118 "preferences:native_preferences", 119 "relational_store:native_rdb", 120 "relational_store:rdb_data_share_adapter", 121 "samgr:samgr_proxy", 122 ] 123 124 if (!ringtone_link_opt) { 125 sanitize = { 126 cfi = true 127 cfi_cross_dso = true 128 debug = false 129 integer_overflow = true 130 ubsan = true 131 boundary_sanitize = true 132 stack_protector_ret = true 133 } 134 } 135 136 if (ringtone_config_policy_enable) { 137 defines = [ "USE_CONFIG_POLICY" ] 138 external_deps += [ "config_policy:configpolicy_util" ] 139 } 140 141 subsystem_name = "multimedia" 142 part_name = "ringtone_library" 143} 144 145ohos_shared_library("ringtonerestore") { 146 include_dirs = [ 147 "${RINGTONE_RESTORE_PATH}/include", 148 "${RINGTONE_UTILS_PATH}/include", 149 "${RINGTONE_INTERFACES_PATH}/inner_api/native", 150 ] 151 152 sources = [ 153 "${RINGTONE_RESTORE_PATH}/src/dualfwk_conf_loader.cpp", 154 "${RINGTONE_RESTORE_PATH}/src/dualfwk_conf_parser.cpp", 155 "${RINGTONE_RESTORE_PATH}/src/dualfwk_sound_setting.cpp", 156 "${RINGTONE_RESTORE_PATH}/src/native_module_ohos_ringtone_restore.cpp", 157 "${RINGTONE_RESTORE_PATH}/src/ringtone_dualfwk_restore.cpp", 158 "${RINGTONE_RESTORE_PATH}/src/ringtone_rdb_transaction.cpp", 159 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore.cpp", 160 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_base.cpp", 161 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_db_utils.cpp", 162 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_factory.cpp", 163 "${RINGTONE_RESTORE_PATH}/src/ringtone_restore_napi.cpp", 164 ] 165 166 configs = [ "//build/config/compiler:exceptions" ] 167 168 ldflags = [ "-Wl" ] 169 170 cflags_cc = [ 171 "-fvisibility-inlines-hidden", 172 "-Os", 173 ] 174 175 deps = [ 176 ":ringtone_data_extension", 177 ":ringtone_setting", 178 ":ringtone_utils", 179 ] 180 181 external_deps = [ 182 "ability_base:zuri", 183 "ability_runtime:app_context", 184 "ability_runtime:app_manager", 185 "ability_runtime:extensionkit_native", 186 "ability_runtime:runtime", 187 "access_token:libaccesstoken_sdk", 188 "access_token:libnativetoken", 189 "access_token:libtoken_setproc", 190 "bundle_framework:appexecfwk_core", 191 "c_utils:utils", 192 "data_share:datashare_common", 193 "data_share:datashare_consumer", 194 "data_share:datashare_provider", 195 "hilog:libhilog", 196 "init:libbegetutil", 197 "libxml2:libxml2", 198 "media_library:media_library", 199 "napi:ace_napi", 200 "os_account:os_account_innerkits", 201 "player_framework:media_client", 202 "preferences:native_preferences", 203 "relational_store:native_rdb", 204 "relational_store:rdb_data_share_adapter", 205 "samgr:samgr_proxy", 206 ] 207 208 defines = [] 209 210 sanitize = { 211 cfi = true 212 cfi_cross_dso = true 213 debug = false 214 } 215 216 relative_install_dir = "module/multimedia" 217 subsystem_name = "multimedia" 218 part_name = "ringtone_library" 219} 220 221config("ringtone_public_visible_config") { 222 visibility = [ ":*" ] 223} 224 225ohos_shared_library("ringtone_utils") { 226 install_enable = true 227 228 include_dirs = [ 229 "${RINGTONE_DFX_PATH}/include", 230 "${RINGTONE_UTILS_PATH}/include", 231 "${RINGTONE_INTERFACES_PATH}/inner_api/native", 232 ] 233 234 sources = [ 235 "${RINGTONE_UTILS_PATH}/src/permission_utils.cpp", 236 "${RINGTONE_UTILS_PATH}/src/ringtone_file_utils.cpp", 237 "${RINGTONE_UTILS_PATH}/src/ringtone_mimetype_utils.cpp", 238 "${RINGTONE_UTILS_PATH}/src/ringtone_privacy_manager.cpp", 239 "${RINGTONE_UTILS_PATH}/src/ringtone_rdb_callbacks.cpp", 240 "${RINGTONE_UTILS_PATH}/src/ringtone_utils.cpp", 241 ] 242 243 public_configs = [ ":ringtone_public_visible_config" ] 244 245 cflags = [ 246 "-Wall", 247 "-Werror", 248 "-Wno-unused-but-set-variable", 249 "-fdata-sections", 250 "-ffunction-sections", 251 "-Os", 252 ] 253 254 cflags_cc = [ 255 "-fvisibility-inlines-hidden", 256 "-Os", 257 ] 258 259 external_deps = [ 260 "ability_base:want", 261 "access_token:libaccesstoken_sdk", 262 "access_token:libprivacy_sdk", 263 "access_token:libtokenid_sdk", 264 "bundle_framework:appexecfwk_core", 265 "c_utils:utils", 266 "hilog:libhilog", 267 "hitrace:hitrace_meter", 268 "init:libbegetutil", 269 "ipc:ipc_core", 270 "preferences:native_preferences", 271 "relational_store:native_rdb", 272 "samgr:samgr_proxy", 273 ] 274 275 if (!ringtone_link_opt) { 276 sanitize = { 277 cfi = true 278 cfi_cross_dso = true 279 debug = false 280 integer_overflow = true 281 ubsan = true 282 boundary_sanitize = true 283 stack_protector_ret = true 284 } 285 } 286 287 subsystem_name = "multimedia" 288 part_name = "ringtone_library" 289} 290 291ohos_shared_library("ringtone_setting") { 292 install_enable = true 293 include_dirs = [ 294 "${RINGTONE_INTERFACES_PATH}/inner_api/native", 295 "${RINGTONE_SETTING_PATH}/include", 296 "${RINGTONE_UTILS_PATH}/include", 297 ] 298 299 sources = [ 300 "${RINGTONE_SETTING_PATH}/src/ringtone_metadata.cpp", 301 "${RINGTONE_SETTING_PATH}/src/ringtone_setting_manager.cpp", 302 "${RINGTONE_SETTING_PATH}/src/vibrate_metadata.cpp", 303 ] 304 305 configs = [ "//build/config/compiler:exceptions" ] 306 307 deps = [ ":ringtone_utils" ] 308 309 public_configs = [ ":ringtone_public_visible_config" ] 310 311 ldflags = [ "-Wl,--gc-sections" ] 312 313 cflags = [ 314 "-Wall", 315 "-Werror", 316 "-fvisibility=hidden", 317 "-fdata-sections", 318 "-ffunction-sections", 319 "-Wno-unused-but-set-variable", 320 "-Os", 321 ] 322 323 cflags_cc = [ 324 "-fvisibility-inlines-hidden", 325 "-Os", 326 ] 327 328 external_deps = [ 329 "c_utils:utils", 330 "hilog:libhilog", 331 "relational_store:native_rdb", 332 ] 333 334 defines = [] 335 336 if (!ringtone_link_opt) { 337 sanitize = { 338 cfi = true 339 cfi_cross_dso = true 340 debug = false 341 integer_overflow = true 342 ubsan = true 343 boundary_sanitize = true 344 stack_protector_ret = true 345 } 346 } 347 348 subsystem_name = "multimedia" 349 part_name = "ringtone_library" 350} 351 352ohos_prebuilt_etc("ringtone_scanner_param.para") { 353 source = "etc/ringtone_scanner_param.para" 354 subsystem_name = "multimedia" 355 part_name = "ringtone_library" 356 module_install_dir = "etc/param" 357} 358 359ohos_prebuilt_etc("ringtone_setting_notifications.para") { 360 source = "etc/ringtone_setting_notifications.para" 361 subsystem_name = "multimedia" 362 part_name = "ringtone_library" 363 module_install_dir = "etc/param" 364} 365 366ohos_prebuilt_etc("ringtone_setting_ringtones.para") { 367 source = "etc/ringtone_setting_ringtones.para" 368 subsystem_name = "multimedia" 369 part_name = "ringtone_library" 370 module_install_dir = "etc/param" 371} 372 373ohos_prebuilt_etc("ringtone_setting_shots.para") { 374 source = "etc/ringtone_setting_shots.para" 375 subsystem_name = "multimedia" 376 part_name = "ringtone_library" 377 module_install_dir = "etc/param" 378} 379 380ohos_prebuilt_etc("ringtone_param.para.dac") { 381 source = "etc/ringtone_param.para.dac" 382 subsystem_name = "multimedia" 383 part_name = "ringtone_library" 384 module_install_dir = "etc/param" 385} 386