• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022-2023 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("../../castplus_cast_engine_part.gni")
16import("../../config.gni")
17import("../../efficiency_manager_part.gni")
18
19openssl_dir = "//third_party/openssl"
20
21group("avsession_server") {
22  deps = [
23    ":avsession_item",
24    ":avsession_service",
25    "../../sa_profile:avsession_sa_profile",
26    "../etc:avsession_service.rc",
27  ]
28}
29
30ohos_shared_library("avsession_service") {
31  stack_protector_ret = true
32  install_enable = true
33  sanitize = {
34    cfi = true
35    cfi_cross_dso = true
36    debug = false
37    blocklist = "../../cfi_blocklist.txt"
38  }
39  ipc_sources = [
40    "ipc/proxy/session_listener_proxy.cpp",
41    "ipc/stub/avsession_callback_stub.cpp",
42    "ipc/stub/avsession_service_stub.cpp",
43  ]
44
45  service_sources = [
46    "server/avsession_dumper.cpp",
47    "server/avsession_service.cpp",
48    "server/avsession_service_ext.cpp",
49    "server/background_audio_controller.cpp",
50    "server/focus_session_strategy.cpp",
51    "server/migrate/migrate_avsession_manager.cpp",
52    "server/migrate/migrate_avsession_server.cpp",
53    "server/session_stack.cpp",
54    "server/softbus/softbus_distributed_data_manager.cpp",
55    "server/softbus/softbus_session.cpp",
56    "server/softbus/softbus_session_manager.cpp",
57    "server/softbus/softbus_session_server.cpp",
58  ]
59
60  adapter_sources = [
61    "adapter/ability_connect_helper.cpp",
62    "adapter/ability_manager_adapter.cpp",
63    "adapter/app_manager_adapter.cpp",
64    "adapter/audio_adapter.cpp",
65    "adapter/bundle_status_adapter.cpp",
66    "adapter/key_event_adapter.cpp",
67    "adapter/params_config_operator.cpp",
68    "adapter/permission_checker.cpp",
69  ]
70
71  sources = ipc_sources + adapter_sources + service_sources
72
73  include_dirs = [
74    "ipc/base",
75    "ipc/proxy",
76    "ipc/stub",
77    "adapter",
78    "server",
79    "server/migrate",
80    "server/softbus",
81    "server/remote",
82    "../../frameworks/native/session/include",
83    "../../interfaces/inner_api/native/session/include",
84    "//third_party/json/single_include",
85    "$openssl_dir/include/",
86    "$commontype_dir/include",
87  ]
88
89  cflags = [
90    "-fPIC",
91    "-fdata-sections",
92    "-ffunction-sections",
93    "-fno-asynchronous-unwind-tables",
94    "-fno-unwind-tables",
95    "-Os",
96  ]
97
98  if (multimedia_av_session_enable_background_audio_control) {
99    cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
100  }
101
102  if (!use_libfuzzer) {
103    cflags += [ "-flto" ]
104    ldflags = [
105      "-flto",
106      "-Wl,--gc-sections",
107    ]
108  }
109  cflags_cc = cflags
110  cflags_cc += [ "-fvisibility-inlines-hidden" ]
111
112  defines = []
113  if (target_cpu == "arm64") {
114    system_lib_path = "\"/system/lib64/\""
115  } else {
116    system_lib_path = "\"/system/lib/\""
117  }
118  defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
119
120  deps = [
121    "$openssl_dir:libcrypto_shared",
122    "./../../frameworks/common:avsession_common",
123    "./../../utils:avsession_utils",
124    "./../session:avsession_item",
125    "//third_party/jsoncpp:jsoncpp",
126    "//third_party/openssl:libcrypto_shared",
127  ]
128
129  external_deps = [
130    "ability_base:base",
131    "ability_base:want",
132    "ability_base:zuri",
133    "ability_runtime:ability_manager",
134    "ability_runtime:app_manager",
135    "ability_runtime:wantagent_innerkits",
136    "access_token:libaccesstoken_sdk",
137    "access_token:libtokenid_sdk",
138    "audio_framework:audio_client",
139    "bundle_framework:appexecfwk_base",
140    "bundle_framework:appexecfwk_core",
141    "c_utils:utils",
142    "data_object:distributeddataobject_impl",
143    "device_manager:devicemanagersdk",
144    "distributed_notification_service:ans_innerkits",
145    "dsoftbus:softbus_client",
146    "graphic_surface:surface",
147    "hilog:libhilog",
148    "init:libbegetutil",
149    "input:libmmi-client",
150    "ipc:ipc_single",
151    "relational_store:native_rdb",
152    "safwk:system_ability_fwk",
153    "samgr:samgr_proxy",
154  ]
155
156  if (castplus_cast_engine_enable) {
157    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
158    external_deps += [
159      "cast_engine:cast_engine_client",
160      "graphic_surface:surface",
161    ]
162    deps += [
163      "../../frameworks/native/session:avsession_cast_client",
164      "./../session:avsession_cast_item",
165      "./../session:avsession_router",
166    ]
167  }
168
169  if (efficiency_manager_enable_in_avsession) {
170    cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ]
171  }
172
173  if (multimedia_av_session_enable_trace_control) {
174    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
175    external_deps += [ "hitrace:hitrace_meter" ]
176  }
177  if (multimedia_av_session_enable_sysevent_control) {
178    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
179    external_deps += [ "hisysevent:libhisysevent" ]
180  }
181
182  subsystem_name = "multimedia"
183  part_name = "av_session"
184}
185
186ohos_shared_library("avsession_router") {
187  install_enable = true
188  sanitize = {
189    cfi = true
190    cfi_cross_dso = true
191    debug = false
192    blocklist = "../../cfi_blocklist.txt"
193  }
194  ipc_sources = []
195
196  service_sources = [
197    "server/avcast_provider_manager.cpp",
198    "server/avrouter.cpp",
199    "server/avrouter_impl.cpp",
200    "server/hw_cast_provider.cpp",
201    "server/hw_cast_provider_session.cpp",
202    "server/hw_cast_stream_player.cpp",
203  ]
204
205  adapter_sources = []
206
207  sources = ipc_sources + adapter_sources + service_sources
208
209  include_dirs = [
210    "./../../frameworks/native/session/include",
211    "./../../interfaces/inner_api/native/session/include",
212    "./adapter",
213    "./server",
214    "./ipc/stub",
215  ]
216
217  cflags = [
218    "-fPIC",
219    "-fdata-sections",
220    "-ffunction-sections",
221    "-fno-asynchronous-unwind-tables",
222    "-fno-unwind-tables",
223    "-Os",
224  ]
225
226  if (multimedia_av_session_enable_background_audio_control) {
227    cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
228  }
229
230  if (!use_libfuzzer) {
231    cflags += [ "-flto" ]
232    ldflags = [
233      "-flto",
234      "-Wl,--gc-sections",
235    ]
236  }
237  cflags_cc = cflags
238  cflags_cc += [ "-fvisibility-inlines-hidden" ]
239
240  defines = []
241  if (target_cpu == "arm64") {
242    system_lib_path = "\"/system/lib64/\""
243  } else {
244    system_lib_path = "\"/system/lib/\""
245  }
246  defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
247
248  deps = [
249    "../../frameworks/common:avsession_common",
250    "../../frameworks/native/session:avsession_client",
251    "../../utils:avsession_utils",
252  ]
253
254  external_deps = [
255    "ability_base:base",
256    "ability_base:want",
257    "ability_runtime:app_manager",
258    "ability_runtime:wantagent_innerkits",
259    "access_token:libaccesstoken_sdk",
260    "access_token:libtokenid_sdk",
261    "audio_framework:audio_client",
262    "bundle_framework:appexecfwk_base",
263    "bundle_framework:appexecfwk_core",
264    "c_utils:utils",
265    "data_object:distributeddataobject_impl",
266    "device_manager:devicemanagersdk",
267    "graphic_surface:surface",
268    "hilog:libhilog",
269    "image_framework:image_native",
270    "input:libmmi-client",
271    "ipc:ipc_single",
272    "safwk:system_ability_fwk",
273    "samgr:samgr_proxy",
274  ]
275
276  if (castplus_cast_engine_enable) {
277    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
278    external_deps += [
279      "cast_engine:cast_engine_client",
280      "graphic_surface:surface",
281    ]
282    service_sources += [ "" ]
283  }
284
285  if (multimedia_av_session_enable_trace_control) {
286    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
287    external_deps += [ "hitrace:hitrace_meter" ]
288  }
289  if (multimedia_av_session_enable_sysevent_control) {
290    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
291    external_deps += [ "hisysevent:libhisysevent" ]
292  }
293
294  subsystem_name = "multimedia"
295  part_name = "av_session"
296}
297
298ohos_shared_library("avsession_item") {
299  install_enable = true
300  ipc_sources = [
301    "ipc/proxy/avcontroller_callback_proxy.cpp",
302    "ipc/proxy/avsession_callback_proxy.cpp",
303    "ipc/stub/avsession_controller_stub.cpp",
304    "ipc/stub/avsession_stub.cpp",
305  ]
306
307  service_sources = [
308    "server/avcontroller_item.cpp",
309    "server/avsession_item.cpp",
310    "server/remote/json_utils.cpp",
311    "server/remote/remote_session_command_process.cpp",
312    "server/remote/remote_session_sink_proxy.cpp",
313    "server/remote/remote_session_source_proxy.cpp",
314  ]
315
316  adapter_sources = [
317    "adapter/command_send_limit.cpp",
318    "adapter/permission_checker.cpp",
319  ]
320
321  sources = ipc_sources + adapter_sources + service_sources
322
323  include_dirs = [
324    "./../../frameworks/native/session/include",
325    "./../../interfaces/inner_api/native/session/include",
326    "./ipc/base",
327    "./ipc/proxy",
328    "./ipc/stub",
329    "./adapter",
330    "./server",
331    "./server/remote",
332    "//third_party/json/single_include",
333    "$commontype_dir/include",
334  ]
335
336  cflags = [
337    "-fPIC",
338    "-fdata-sections",
339    "-ffunction-sections",
340    "-fno-asynchronous-unwind-tables",
341    "-fno-unwind-tables",
342    "-Os",
343  ]
344
345  if (multimedia_av_session_enable_background_audio_control) {
346    cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
347  }
348
349  if (!use_libfuzzer) {
350    cflags += [ "-flto" ]
351    ldflags = [
352      "-flto",
353      "-Wl,--gc-sections",
354    ]
355  }
356  cflags_cc = cflags
357  cflags_cc += [ "-fvisibility-inlines-hidden" ]
358
359  defines = []
360  if (target_cpu == "arm64") {
361    system_lib_path = "\"/system/lib64/\""
362  } else {
363    system_lib_path = "\"/system/lib/\""
364  }
365  defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
366
367  deps = [
368    "../../frameworks/common:avsession_common",
369    "../../utils:avsession_utils",
370    "//third_party/openssl:libcrypto_shared",
371  ]
372
373  external_deps = [
374    "ability_base:want",
375    "ability_runtime:app_manager",
376    "ability_runtime:wantagent_innerkits",
377    "access_token:libaccesstoken_sdk",
378    "access_token:libtokenid_sdk",
379    "audio_framework:audio_client",
380    "bundle_framework:appexecfwk_base",
381    "bundle_framework:appexecfwk_core",
382    "c_utils:utils",
383    "data_object:distributeddataobject_impl",
384    "device_manager:devicemanagersdk",
385    "hilog:libhilog",
386    "input:libmmi-client",
387    "ipc:ipc_single",
388    "safwk:system_ability_fwk",
389    "samgr:samgr_proxy",
390  ]
391
392  if (castplus_cast_engine_enable) {
393    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
394    external_deps += [ "cast_engine:cast_engine_client" ]
395    deps += [
396      "../../frameworks/native/session:avsession_cast_client",
397      "./../session:avsession_cast_item",
398      "./../session:avsession_router",
399    ]
400  }
401
402  if (multimedia_av_session_enable_trace_control) {
403    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
404    external_deps += [ "hitrace:hitrace_meter" ]
405  }
406  if (multimedia_av_session_enable_sysevent_control) {
407    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
408    external_deps += [ "hisysevent:libhisysevent" ]
409  }
410
411  subsystem_name = "multimedia"
412  part_name = "av_session"
413}
414
415ohos_shared_library("avsession_cast_item") {
416  install_enable = true
417  sanitize = {
418    cfi = true
419    cfi_cross_dso = true
420    debug = false
421    blocklist = "../../cfi_blocklist.txt"
422  }
423  ipc_sources = [
424    "ipc/proxy/avcast_controller_callback_proxy.cpp",
425    "ipc/stub/avcast_controller_stub.cpp",
426  ]
427
428  service_sources = [ "server/avcast_controller_item.cpp" ]
429
430  adapter_sources = []
431
432  sources = ipc_sources + adapter_sources + service_sources
433
434  include_dirs = [
435    "./../../frameworks/native/session/include",
436    "./../../interfaces/inner_api/native/session/include",
437    "./ipc/base",
438    "./ipc/proxy",
439    "./ipc/stub",
440    "./adapter",
441    "./server",
442    "./server/remote",
443    "//third_party/json/single_include",
444  ]
445
446  cflags = [
447    "-fPIC",
448    "-fdata-sections",
449    "-ffunction-sections",
450    "-fno-asynchronous-unwind-tables",
451    "-fno-unwind-tables",
452    "-Os",
453  ]
454
455  if (multimedia_av_session_enable_background_audio_control) {
456    cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
457  }
458
459  if (!use_libfuzzer) {
460    cflags += [ "-flto" ]
461    ldflags = [
462      "-flto",
463      "-Wl,--gc-sections",
464    ]
465  }
466  cflags_cc = cflags
467  cflags_cc += [ "-fvisibility-inlines-hidden" ]
468
469  defines = []
470  if (target_cpu == "arm64") {
471    system_lib_path = "\"/system/lib64/\""
472  } else {
473    system_lib_path = "\"/system/lib/\""
474  }
475  defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
476
477  deps = [
478    "../../frameworks/common:avsession_common",
479    "../../utils:avsession_utils",
480    "//third_party/openssl:libcrypto_shared",
481  ]
482
483  external_deps = [
484    "ability_base:want",
485    "ability_runtime:app_manager",
486    "ability_runtime:wantagent_innerkits",
487    "access_token:libaccesstoken_sdk",
488    "access_token:libtokenid_sdk",
489    "audio_framework:audio_client",
490    "bundle_framework:appexecfwk_base",
491    "bundle_framework:appexecfwk_core",
492    "c_utils:utils",
493    "data_object:distributeddataobject_impl",
494    "device_manager:devicemanagersdk",
495    "graphic_surface:surface",
496    "hilog:libhilog",
497    "input:libmmi-client",
498    "ipc:ipc_single",
499    "safwk:system_ability_fwk",
500    "samgr:samgr_proxy",
501  ]
502
503  if (castplus_cast_engine_enable) {
504    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
505    external_deps += [
506      "cast_engine:cast_engine_client",
507      "graphic_surface:surface",
508    ]
509    deps += [ "./../session:avsession_router" ]
510  }
511
512  if (multimedia_av_session_enable_trace_control) {
513    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
514    external_deps += [ "hitrace:hitrace_meter" ]
515  }
516  if (multimedia_av_session_enable_sysevent_control) {
517    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
518    external_deps += [ "hisysevent:libhisysevent" ]
519  }
520
521  subsystem_name = "multimedia"
522  part_name = "av_session"
523}
524