• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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