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