180922886Sopenharmony_ci# Copyright (c) 2022-2024 Huawei Device Co., Ltd.
280922886Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
380922886Sopenharmony_ci# you may not use this file except in compliance with the License.
480922886Sopenharmony_ci# You may obtain a copy of the License at
580922886Sopenharmony_ci#
680922886Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
780922886Sopenharmony_ci#
880922886Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
980922886Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1080922886Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1180922886Sopenharmony_ci# See the License for the specific language governing permissions and
1280922886Sopenharmony_ci# limitations under the License.
1380922886Sopenharmony_ci
1480922886Sopenharmony_ciimport("//build/ohos.gni")
1580922886Sopenharmony_ciimport("../../bluetooth_part.gni")
1680922886Sopenharmony_ciimport("../../castplus_cast_engine_part.gni")
1780922886Sopenharmony_ciimport("../../config.gni")
1880922886Sopenharmony_ciimport("../../efficiency_manager_part.gni")
1980922886Sopenharmony_ci
2080922886Sopenharmony_ciopenssl_dir = "//third_party/openssl"
2180922886Sopenharmony_ci
2280922886Sopenharmony_cigroup("avsession_server") {
2380922886Sopenharmony_ci  deps = [
2480922886Sopenharmony_ci    ":avsession_dynamic_display",
2580922886Sopenharmony_ci    ":avsession_dynamic_insight",
2680922886Sopenharmony_ci    ":avsession_item",
2780922886Sopenharmony_ci    ":avsession_service",
2880922886Sopenharmony_ci    "../../sa_profile:avsession_sa_profile",
2980922886Sopenharmony_ci    "../etc:avsession_service.rc",
3080922886Sopenharmony_ci    "../etc:ohos.para.dac",
3180922886Sopenharmony_ci  ]
3280922886Sopenharmony_ci}
3380922886Sopenharmony_ci
3480922886Sopenharmony_ciohos_shared_library("avsession_service") {
3580922886Sopenharmony_ci  stack_protector_ret = true
3680922886Sopenharmony_ci  install_enable = true
3780922886Sopenharmony_ci  sanitize = {
3880922886Sopenharmony_ci    cfi = true
3980922886Sopenharmony_ci    cfi_cross_dso = true
4080922886Sopenharmony_ci    debug = false
4180922886Sopenharmony_ci  }
4280922886Sopenharmony_ci  ipc_sources = [
4380922886Sopenharmony_ci    "ipc/proxy/session_listener_proxy.cpp",
4480922886Sopenharmony_ci    "ipc/stub/avsession_callback_stub.cpp",
4580922886Sopenharmony_ci    "ipc/stub/avsession_service_stub.cpp",
4680922886Sopenharmony_ci  ]
4780922886Sopenharmony_ci
4880922886Sopenharmony_ci  service_sources = [
4980922886Sopenharmony_ci    "server/avsession_dumper.cpp",
5080922886Sopenharmony_ci    "server/avsession_service.cpp",
5180922886Sopenharmony_ci    "server/avsession_service_ext.cpp",
5280922886Sopenharmony_ci    "server/avsession_users_manager.cpp",
5380922886Sopenharmony_ci    "server/background_audio_controller.cpp",
5480922886Sopenharmony_ci    "server/focus_session_strategy.cpp",
5580922886Sopenharmony_ci    "server/migrate/migrate_avsession_manager.cpp",
5680922886Sopenharmony_ci    "server/migrate/migrate_avsession_server.cpp",
5780922886Sopenharmony_ci    "server/session_stack.cpp",
5880922886Sopenharmony_ci    "server/softbus/softbus_distributed_data_manager.cpp",
5980922886Sopenharmony_ci    "server/softbus/softbus_session.cpp",
6080922886Sopenharmony_ci    "server/softbus/softbus_session_manager.cpp",
6180922886Sopenharmony_ci    "server/softbus/softbus_session_server.cpp",
6280922886Sopenharmony_ci  ]
6380922886Sopenharmony_ci
6480922886Sopenharmony_ci  adapter_sources = [
6580922886Sopenharmony_ci    "adapter/ability_connect_helper.cpp",
6680922886Sopenharmony_ci    "adapter/ability_manager_adapter.cpp",
6780922886Sopenharmony_ci    "adapter/account_manager_adapter.cpp",
6880922886Sopenharmony_ci    "adapter/app_manager_adapter.cpp",
6980922886Sopenharmony_ci    "adapter/audio_adapter.cpp",
7080922886Sopenharmony_ci    "adapter/bundle_status_adapter.cpp",
7180922886Sopenharmony_ci    "adapter/collaboration_manager.cpp",
7280922886Sopenharmony_ci    "adapter/key_event_adapter.cpp",
7380922886Sopenharmony_ci    "adapter/params_config_operator.cpp",
7480922886Sopenharmony_ci    "adapter/session_xcollie.cpp",
7580922886Sopenharmony_ci  ]
7680922886Sopenharmony_ci
7780922886Sopenharmony_ci  sources = ipc_sources + adapter_sources + service_sources
7880922886Sopenharmony_ci
7980922886Sopenharmony_ci  include_dirs = [
8080922886Sopenharmony_ci    "ipc/base",
8180922886Sopenharmony_ci    "ipc/proxy",
8280922886Sopenharmony_ci    "ipc/stub",
8380922886Sopenharmony_ci    "adapter",
8480922886Sopenharmony_ci    "server",
8580922886Sopenharmony_ci    "server/migrate",
8680922886Sopenharmony_ci    "server/softbus",
8780922886Sopenharmony_ci    "server/remote",
8880922886Sopenharmony_ci    "../../frameworks/native/session/include",
8980922886Sopenharmony_ci    "../../interfaces/inner_api/native/session/include",
9080922886Sopenharmony_ci    "//third_party/json/single_include",
9180922886Sopenharmony_ci    "$openssl_dir/include/",
9280922886Sopenharmony_ci    "$commontype_dir/include",
9380922886Sopenharmony_ci  ]
9480922886Sopenharmony_ci
9580922886Sopenharmony_ci  cflags = [
9680922886Sopenharmony_ci    "-fPIC",
9780922886Sopenharmony_ci    "-fdata-sections",
9880922886Sopenharmony_ci    "-ffunction-sections",
9980922886Sopenharmony_ci    "-fno-asynchronous-unwind-tables",
10080922886Sopenharmony_ci    "-fno-unwind-tables",
10180922886Sopenharmony_ci    "-Os",
10280922886Sopenharmony_ci  ]
10380922886Sopenharmony_ci
10480922886Sopenharmony_ci  if (multimedia_av_session_enable_background_audio_control) {
10580922886Sopenharmony_ci    cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
10680922886Sopenharmony_ci  }
10780922886Sopenharmony_ci
10880922886Sopenharmony_ci  if (!use_libfuzzer) {
10980922886Sopenharmony_ci    cflags += [ "-flto" ]
11080922886Sopenharmony_ci    ldflags = [
11180922886Sopenharmony_ci      "-flto",
11280922886Sopenharmony_ci      "-Wl,--gc-sections",
11380922886Sopenharmony_ci    ]
11480922886Sopenharmony_ci  }
11580922886Sopenharmony_ci  cflags_cc = cflags
11680922886Sopenharmony_ci  cflags_cc += [ "-fvisibility-inlines-hidden" ]
11780922886Sopenharmony_ci
11880922886Sopenharmony_ci  defines = []
11980922886Sopenharmony_ci  if (target_cpu == "arm64" || is_emulator) {
12080922886Sopenharmony_ci    system_lib_path = "\"/system/lib64/\""
12180922886Sopenharmony_ci  } else {
12280922886Sopenharmony_ci    system_lib_path = "\"/system/lib/\""
12380922886Sopenharmony_ci  }
12480922886Sopenharmony_ci  defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
12580922886Sopenharmony_ci
12680922886Sopenharmony_ci  deps = [
12780922886Sopenharmony_ci    "$openssl_dir:libcrypto_shared",
12880922886Sopenharmony_ci    "./../../frameworks/common:avsession_common",
12980922886Sopenharmony_ci    "./../../frameworks/native/session:avsession_client",
13080922886Sopenharmony_ci    "./../../utils:avsession_utils",
13180922886Sopenharmony_ci    "./../session:avsession_item",
13280922886Sopenharmony_ci    "//third_party/openssl:libcrypto_shared",
13380922886Sopenharmony_ci  ]
13480922886Sopenharmony_ci
13580922886Sopenharmony_ci  external_deps = [
13680922886Sopenharmony_ci    "ability_base:base",
13780922886Sopenharmony_ci    "ability_base:want",
13880922886Sopenharmony_ci    "ability_base:zuri",
13980922886Sopenharmony_ci    "ability_runtime:app_manager",
14080922886Sopenharmony_ci    "ability_runtime:wantagent_innerkits",
14180922886Sopenharmony_ci    "access_token:libaccesstoken_sdk",
14280922886Sopenharmony_ci    "access_token:libtokenid_sdk",
14380922886Sopenharmony_ci    "access_token:libtokensetproc_shared",
14480922886Sopenharmony_ci    "audio_framework:audio_client",
14580922886Sopenharmony_ci    "background_task_mgr:bgtaskmgr_innerkits",
14680922886Sopenharmony_ci    "bundle_framework:appexecfwk_base",
14780922886Sopenharmony_ci    "bundle_framework:appexecfwk_core",
14880922886Sopenharmony_ci    "c_utils:utils",
14980922886Sopenharmony_ci    "data_object:distributeddataobject_impl",
15080922886Sopenharmony_ci    "device_manager:devicemanagersdk",
15180922886Sopenharmony_ci    "distributed_notification_service:ans_innerkits",
15280922886Sopenharmony_ci    "dsoftbus:softbus_client",
15380922886Sopenharmony_ci    "graphic_surface:surface",
15480922886Sopenharmony_ci    "hilog:libhilog",
15580922886Sopenharmony_ci    "image_framework:image_native",
15680922886Sopenharmony_ci    "init:libbegetutil",
15780922886Sopenharmony_ci    "input:libmmi-client",
15880922886Sopenharmony_ci    "ipc:ipc_single",
15980922886Sopenharmony_ci    "jsoncpp:jsoncpp",
16080922886Sopenharmony_ci    "relational_store:native_rdb",
16180922886Sopenharmony_ci    "safwk:system_ability_fwk",
16280922886Sopenharmony_ci    "samgr:samgr_proxy",
16380922886Sopenharmony_ci  ]
16480922886Sopenharmony_ci
16580922886Sopenharmony_ci  if (castplus_cast_engine_enable) {
16680922886Sopenharmony_ci    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
16780922886Sopenharmony_ci    external_deps += [ "cast_engine:cast_engine_client" ]
16880922886Sopenharmony_ci    deps += [
16980922886Sopenharmony_ci      "../../frameworks/native/session:avsession_cast_client",
17080922886Sopenharmony_ci      "./../session:avsession_cast_item",
17180922886Sopenharmony_ci      "./../session:avsession_router",
17280922886Sopenharmony_ci    ]
17380922886Sopenharmony_ci  }
17480922886Sopenharmony_ci
17580922886Sopenharmony_ci  if (bluetooth_part_enable) {
17680922886Sopenharmony_ci    cflags += [ "-DBLUETOOTH_ENABLE" ]
17780922886Sopenharmony_ci    external_deps += [ "bluetooth:btframework" ]
17880922886Sopenharmony_ci  }
17980922886Sopenharmony_ci
18080922886Sopenharmony_ci  if (efficiency_manager_enable_in_avsession) {
18180922886Sopenharmony_ci    cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ]
18280922886Sopenharmony_ci  }
18380922886Sopenharmony_ci
18480922886Sopenharmony_ci  if (multimedia_av_session_enable_trace_control) {
18580922886Sopenharmony_ci    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
18680922886Sopenharmony_ci    external_deps += [ "hitrace:hitrace_meter" ]
18780922886Sopenharmony_ci  }
18880922886Sopenharmony_ci
18980922886Sopenharmony_ci  if (multimedia_av_session_enable_sysevent_control) {
19080922886Sopenharmony_ci    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
19180922886Sopenharmony_ci    external_deps += [ "hisysevent:libhisysevent" ]
19280922886Sopenharmony_ci  }
19380922886Sopenharmony_ci
19480922886Sopenharmony_ci  if (multimedia_av_session_enable_hicollie) {
19580922886Sopenharmony_ci    external_deps += [ "hicollie:libhicollie" ]
19680922886Sopenharmony_ci    defines += [ "HICOLLIE_ENABLE" ]
19780922886Sopenharmony_ci  }
19880922886Sopenharmony_ci
19980922886Sopenharmony_ci  if (use_libfuzzer || use_clang_coverage) {
20080922886Sopenharmony_ci    defines += [ "TEST_COVERAGE" ]
20180922886Sopenharmony_ci  }
20280922886Sopenharmony_ci
20380922886Sopenharmony_ci  subsystem_name = "multimedia"
20480922886Sopenharmony_ci  part_name = "av_session"
20580922886Sopenharmony_ci}
20680922886Sopenharmony_ci
20780922886Sopenharmony_ciif (castplus_cast_engine_enable) {
20880922886Sopenharmony_ci  ohos_shared_library("avsession_router") {
20980922886Sopenharmony_ci    install_enable = true
21080922886Sopenharmony_ci    sanitize = {
21180922886Sopenharmony_ci      cfi = true
21280922886Sopenharmony_ci      cfi_cross_dso = true
21380922886Sopenharmony_ci      debug = false
21480922886Sopenharmony_ci    }
21580922886Sopenharmony_ci    ipc_sources = []
21680922886Sopenharmony_ci
21780922886Sopenharmony_ci    service_sources = [
21880922886Sopenharmony_ci      "server/avcast_provider_manager.cpp",
21980922886Sopenharmony_ci      "server/avrouter.cpp",
22080922886Sopenharmony_ci      "server/avrouter_impl.cpp",
22180922886Sopenharmony_ci      "server/hw_cast_provider.cpp",
22280922886Sopenharmony_ci      "server/hw_cast_provider_session.cpp",
22380922886Sopenharmony_ci      "server/hw_cast_stream_player.cpp",
22480922886Sopenharmony_ci    ]
22580922886Sopenharmony_ci
22680922886Sopenharmony_ci    adapter_sources = []
22780922886Sopenharmony_ci
22880922886Sopenharmony_ci    sources = ipc_sources + adapter_sources + service_sources
22980922886Sopenharmony_ci
23080922886Sopenharmony_ci    include_dirs = [
23180922886Sopenharmony_ci      "./../../frameworks/native/session/include",
23280922886Sopenharmony_ci      "./../../interfaces/inner_api/native/session/include",
23380922886Sopenharmony_ci      "./adapter",
23480922886Sopenharmony_ci      "./server",
23580922886Sopenharmony_ci      "./ipc/stub",
23680922886Sopenharmony_ci    ]
23780922886Sopenharmony_ci
23880922886Sopenharmony_ci    cflags = [
23980922886Sopenharmony_ci      "-fPIC",
24080922886Sopenharmony_ci      "-fdata-sections",
24180922886Sopenharmony_ci      "-ffunction-sections",
24280922886Sopenharmony_ci      "-fno-asynchronous-unwind-tables",
24380922886Sopenharmony_ci      "-fno-unwind-tables",
24480922886Sopenharmony_ci      "-Os",
24580922886Sopenharmony_ci    ]
24680922886Sopenharmony_ci
24780922886Sopenharmony_ci    if (multimedia_av_session_enable_background_audio_control) {
24880922886Sopenharmony_ci      cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
24980922886Sopenharmony_ci    }
25080922886Sopenharmony_ci
25180922886Sopenharmony_ci    if (!use_libfuzzer) {
25280922886Sopenharmony_ci      cflags += [ "-flto" ]
25380922886Sopenharmony_ci      ldflags = [
25480922886Sopenharmony_ci        "-flto",
25580922886Sopenharmony_ci        "-Wl,--gc-sections",
25680922886Sopenharmony_ci      ]
25780922886Sopenharmony_ci    }
25880922886Sopenharmony_ci    cflags_cc = cflags
25980922886Sopenharmony_ci    cflags_cc += [ "-fvisibility-inlines-hidden" ]
26080922886Sopenharmony_ci
26180922886Sopenharmony_ci    defines = []
26280922886Sopenharmony_ci    if (target_cpu == "arm64" || is_emulator) {
26380922886Sopenharmony_ci      system_lib_path = "\"/system/lib64/\""
26480922886Sopenharmony_ci    } else {
26580922886Sopenharmony_ci      system_lib_path = "\"/system/lib/\""
26680922886Sopenharmony_ci    }
26780922886Sopenharmony_ci    defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
26880922886Sopenharmony_ci
26980922886Sopenharmony_ci    deps = [
27080922886Sopenharmony_ci      "../../frameworks/common:avsession_common",
27180922886Sopenharmony_ci      "../../frameworks/native/session:avsession_client",
27280922886Sopenharmony_ci      "../../utils:avsession_utils",
27380922886Sopenharmony_ci    ]
27480922886Sopenharmony_ci
27580922886Sopenharmony_ci    external_deps = [
27680922886Sopenharmony_ci      "ability_base:base",
27780922886Sopenharmony_ci      "ability_base:want",
27880922886Sopenharmony_ci      "ability_runtime:app_manager",
27980922886Sopenharmony_ci      "ability_runtime:wantagent_innerkits",
28080922886Sopenharmony_ci      "access_token:libaccesstoken_sdk",
28180922886Sopenharmony_ci      "access_token:libtokenid_sdk",
28280922886Sopenharmony_ci      "audio_framework:audio_client",
28380922886Sopenharmony_ci      "bundle_framework:appexecfwk_base",
28480922886Sopenharmony_ci      "bundle_framework:appexecfwk_core",
28580922886Sopenharmony_ci      "c_utils:utils",
28680922886Sopenharmony_ci      "data_object:distributeddataobject_impl",
28780922886Sopenharmony_ci      "device_manager:devicemanagersdk",
28880922886Sopenharmony_ci      "graphic_surface:surface",
28980922886Sopenharmony_ci      "hilog:libhilog",
29080922886Sopenharmony_ci      "image_framework:image_native",
29180922886Sopenharmony_ci      "input:libmmi-client",
29280922886Sopenharmony_ci      "ipc:ipc_single",
29380922886Sopenharmony_ci      "safwk:system_ability_fwk",
29480922886Sopenharmony_ci      "samgr:samgr_proxy",
29580922886Sopenharmony_ci    ]
29680922886Sopenharmony_ci
29780922886Sopenharmony_ci    if (castplus_cast_engine_enable) {
29880922886Sopenharmony_ci      cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
29980922886Sopenharmony_ci      external_deps += [ "cast_engine:cast_engine_client" ]
30080922886Sopenharmony_ci      service_sources += [ "" ]
30180922886Sopenharmony_ci    }
30280922886Sopenharmony_ci
30380922886Sopenharmony_ci    if (multimedia_av_session_enable_trace_control) {
30480922886Sopenharmony_ci      cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
30580922886Sopenharmony_ci      external_deps += [ "hitrace:hitrace_meter" ]
30680922886Sopenharmony_ci    }
30780922886Sopenharmony_ci    if (multimedia_av_session_enable_sysevent_control) {
30880922886Sopenharmony_ci      cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
30980922886Sopenharmony_ci      external_deps += [ "hisysevent:libhisysevent" ]
31080922886Sopenharmony_ci    }
31180922886Sopenharmony_ci
31280922886Sopenharmony_ci    subsystem_name = "multimedia"
31380922886Sopenharmony_ci    part_name = "av_session"
31480922886Sopenharmony_ci  }
31580922886Sopenharmony_ci}
31680922886Sopenharmony_ci
31780922886Sopenharmony_ciohos_shared_library("avsession_dynamic_insight") {
31880922886Sopenharmony_ci  install_enable = true
31980922886Sopenharmony_ci  sanitize = {
32080922886Sopenharmony_ci    cfi = true
32180922886Sopenharmony_ci    cfi_cross_dso = true
32280922886Sopenharmony_ci    debug = false
32380922886Sopenharmony_ci  }
32480922886Sopenharmony_ci
32580922886Sopenharmony_ci  sources = [ "adapter/avsession_dynamic_insight.cpp" ]
32680922886Sopenharmony_ci
32780922886Sopenharmony_ci  include_dirs = [
32880922886Sopenharmony_ci    "./../../frameworks/native/session/include",
32980922886Sopenharmony_ci    "./../../interfaces/inner_api/native/session/include",
33080922886Sopenharmony_ci    "./adapter",
33180922886Sopenharmony_ci    "ipc/base",
33280922886Sopenharmony_ci  ]
33380922886Sopenharmony_ci
33480922886Sopenharmony_ci  cflags = [
33580922886Sopenharmony_ci    "-fPIC",
33680922886Sopenharmony_ci    "-fdata-sections",
33780922886Sopenharmony_ci    "-ffunction-sections",
33880922886Sopenharmony_ci    "-fno-asynchronous-unwind-tables",
33980922886Sopenharmony_ci    "-fno-unwind-tables",
34080922886Sopenharmony_ci  ]
34180922886Sopenharmony_ci
34280922886Sopenharmony_ci  if (!use_libfuzzer) {
34380922886Sopenharmony_ci    cflags += [ "-flto" ]
34480922886Sopenharmony_ci    ldflags = [
34580922886Sopenharmony_ci      "-flto",
34680922886Sopenharmony_ci      "-Wl,--gc-sections",
34780922886Sopenharmony_ci    ]
34880922886Sopenharmony_ci  }
34980922886Sopenharmony_ci  cflags_cc = cflags
35080922886Sopenharmony_ci  cflags_cc += [ "-fvisibility-inlines-hidden" ]
35180922886Sopenharmony_ci
35280922886Sopenharmony_ci  deps = [
35380922886Sopenharmony_ci    "../../frameworks/common:avsession_common",
35480922886Sopenharmony_ci    "../../utils:avsession_utils",
35580922886Sopenharmony_ci  ]
35680922886Sopenharmony_ci
35780922886Sopenharmony_ci  external_deps = [
35880922886Sopenharmony_ci    "ability_base:base",
35980922886Sopenharmony_ci    "ability_base:want",
36080922886Sopenharmony_ci    "ability_runtime:ability_manager",
36180922886Sopenharmony_ci    "bundle_framework:appexecfwk_base",
36280922886Sopenharmony_ci    "bundle_framework:appexecfwk_core",
36380922886Sopenharmony_ci    "c_utils:utils",
36480922886Sopenharmony_ci    "hilog:libhilog",
36580922886Sopenharmony_ci    "ipc:ipc_single",
36680922886Sopenharmony_ci    "samgr:samgr_proxy",
36780922886Sopenharmony_ci  ]
36880922886Sopenharmony_ci
36980922886Sopenharmony_ci  subsystem_name = "multimedia"
37080922886Sopenharmony_ci  part_name = "av_session"
37180922886Sopenharmony_ci}
37280922886Sopenharmony_ci
37380922886Sopenharmony_ciohos_shared_library("avsession_dynamic_display") {
37480922886Sopenharmony_ci  install_enable = true
37580922886Sopenharmony_ci  sanitize = {
37680922886Sopenharmony_ci    cfi = true
37780922886Sopenharmony_ci    cfi_cross_dso = true
37880922886Sopenharmony_ci    debug = false
37980922886Sopenharmony_ci  }
38080922886Sopenharmony_ci
38180922886Sopenharmony_ci  sources = [
38280922886Sopenharmony_ci    "adapter/avsession_dynamic_display.cpp",
38380922886Sopenharmony_ci    "adapter/hw_cast_display_listener.cpp",
38480922886Sopenharmony_ci  ]
38580922886Sopenharmony_ci
38680922886Sopenharmony_ci  include_dirs = [
38780922886Sopenharmony_ci    "./../../frameworks/native/session/include",
38880922886Sopenharmony_ci    "./../../interfaces/inner_api/native/session/include",
38980922886Sopenharmony_ci    "./adapter",
39080922886Sopenharmony_ci    "ipc/base",
39180922886Sopenharmony_ci  ]
39280922886Sopenharmony_ci
39380922886Sopenharmony_ci  cflags = [
39480922886Sopenharmony_ci    "-fPIC",
39580922886Sopenharmony_ci    "-fdata-sections",
39680922886Sopenharmony_ci    "-ffunction-sections",
39780922886Sopenharmony_ci    "-fno-asynchronous-unwind-tables",
39880922886Sopenharmony_ci    "-fno-unwind-tables",
39980922886Sopenharmony_ci  ]
40080922886Sopenharmony_ci
40180922886Sopenharmony_ci  if (!use_libfuzzer) {
40280922886Sopenharmony_ci    cflags += [ "-flto" ]
40380922886Sopenharmony_ci    ldflags = [
40480922886Sopenharmony_ci      "-flto",
40580922886Sopenharmony_ci      "-Wl,--gc-sections",
40680922886Sopenharmony_ci    ]
40780922886Sopenharmony_ci  }
40880922886Sopenharmony_ci  cflags_cc = cflags
40980922886Sopenharmony_ci  cflags_cc += [ "-fvisibility-inlines-hidden" ]
41080922886Sopenharmony_ci
41180922886Sopenharmony_ci  deps = [
41280922886Sopenharmony_ci    "../../frameworks/common:avsession_common",
41380922886Sopenharmony_ci    "../../utils:avsession_utils",
41480922886Sopenharmony_ci  ]
41580922886Sopenharmony_ci
41680922886Sopenharmony_ci  external_deps = [
41780922886Sopenharmony_ci    "ability_runtime:wantagent_innerkits",
41880922886Sopenharmony_ci    "c_utils:utils",
41980922886Sopenharmony_ci    "graphic_surface:surface",
42080922886Sopenharmony_ci    "hilog:libhilog",
42180922886Sopenharmony_ci    "init:libbegetutil",
42280922886Sopenharmony_ci    "input:libmmi-client",
42380922886Sopenharmony_ci    "window_manager:libdm",
42480922886Sopenharmony_ci    "window_manager:libwm",
42580922886Sopenharmony_ci  ]
42680922886Sopenharmony_ci
42780922886Sopenharmony_ci  subsystem_name = "multimedia"
42880922886Sopenharmony_ci  part_name = "av_session"
42980922886Sopenharmony_ci}
43080922886Sopenharmony_ci
43180922886Sopenharmony_ciohos_shared_library("avsession_item") {
43280922886Sopenharmony_ci  install_enable = true
43380922886Sopenharmony_ci  sanitize = {
43480922886Sopenharmony_ci    cfi = true
43580922886Sopenharmony_ci    cfi_cross_dso = true
43680922886Sopenharmony_ci    debug = false
43780922886Sopenharmony_ci  }
43880922886Sopenharmony_ci  ipc_sources = [
43980922886Sopenharmony_ci    "ipc/proxy/avcontroller_callback_proxy.cpp",
44080922886Sopenharmony_ci    "ipc/proxy/avsession_callback_proxy.cpp",
44180922886Sopenharmony_ci    "ipc/stub/avsession_controller_stub.cpp",
44280922886Sopenharmony_ci    "ipc/stub/avsession_stub.cpp",
44380922886Sopenharmony_ci  ]
44480922886Sopenharmony_ci
44580922886Sopenharmony_ci  service_sources = [
44680922886Sopenharmony_ci    "server/avcontroller_item.cpp",
44780922886Sopenharmony_ci    "server/avsession_item.cpp",
44880922886Sopenharmony_ci    "server/remote/json_utils.cpp",
44980922886Sopenharmony_ci    "server/remote/remote_session_command_process.cpp",
45080922886Sopenharmony_ci    "server/remote/remote_session_sink_proxy.cpp",
45180922886Sopenharmony_ci    "server/remote/remote_session_source_proxy.cpp",
45280922886Sopenharmony_ci  ]
45380922886Sopenharmony_ci
45480922886Sopenharmony_ci  adapter_sources = [
45580922886Sopenharmony_ci    "adapter/bundle_status_adapter.cpp",
45680922886Sopenharmony_ci    "adapter/collaboration_manager.cpp",
45780922886Sopenharmony_ci    "adapter/command_send_limit.cpp",
45880922886Sopenharmony_ci    "adapter/plugin_lib.cpp",
45980922886Sopenharmony_ci    "adapter/session_xcollie.cpp",
46080922886Sopenharmony_ci  ]
46180922886Sopenharmony_ci
46280922886Sopenharmony_ci  sources = ipc_sources + adapter_sources + service_sources
46380922886Sopenharmony_ci
46480922886Sopenharmony_ci  include_dirs = [
46580922886Sopenharmony_ci    "./../../frameworks/native/session/include",
46680922886Sopenharmony_ci    "./../../interfaces/inner_api/native/session/include",
46780922886Sopenharmony_ci    "./ipc/base",
46880922886Sopenharmony_ci    "./ipc/proxy",
46980922886Sopenharmony_ci    "./ipc/stub",
47080922886Sopenharmony_ci    "./adapter",
47180922886Sopenharmony_ci    "./server",
47280922886Sopenharmony_ci    "./server/remote",
47380922886Sopenharmony_ci    "//third_party/json/single_include",
47480922886Sopenharmony_ci    "$commontype_dir/include",
47580922886Sopenharmony_ci  ]
47680922886Sopenharmony_ci
47780922886Sopenharmony_ci  cflags = [
47880922886Sopenharmony_ci    "-fPIC",
47980922886Sopenharmony_ci    "-fdata-sections",
48080922886Sopenharmony_ci    "-ffunction-sections",
48180922886Sopenharmony_ci    "-fno-asynchronous-unwind-tables",
48280922886Sopenharmony_ci    "-fno-unwind-tables",
48380922886Sopenharmony_ci    "-Os",
48480922886Sopenharmony_ci  ]
48580922886Sopenharmony_ci
48680922886Sopenharmony_ci  if (multimedia_av_session_enable_background_audio_control) {
48780922886Sopenharmony_ci    cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
48880922886Sopenharmony_ci  }
48980922886Sopenharmony_ci
49080922886Sopenharmony_ci  if (!use_libfuzzer) {
49180922886Sopenharmony_ci    cflags += [ "-flto" ]
49280922886Sopenharmony_ci    ldflags = [
49380922886Sopenharmony_ci      "-flto",
49480922886Sopenharmony_ci      "-Wl,--gc-sections",
49580922886Sopenharmony_ci    ]
49680922886Sopenharmony_ci  }
49780922886Sopenharmony_ci  cflags_cc = cflags
49880922886Sopenharmony_ci  cflags_cc += [ "-fvisibility-inlines-hidden" ]
49980922886Sopenharmony_ci
50080922886Sopenharmony_ci  defines = []
50180922886Sopenharmony_ci  if (target_cpu == "arm64" || is_emulator) {
50280922886Sopenharmony_ci    system_lib_path = "\"/system/lib64/\""
50380922886Sopenharmony_ci  } else {
50480922886Sopenharmony_ci    system_lib_path = "\"/system/lib/\""
50580922886Sopenharmony_ci  }
50680922886Sopenharmony_ci  defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
50780922886Sopenharmony_ci
50880922886Sopenharmony_ci  deps = [
50980922886Sopenharmony_ci    "../../frameworks/common:avsession_common",
51080922886Sopenharmony_ci    "../../utils:avsession_utils",
51180922886Sopenharmony_ci    "//third_party/openssl:libcrypto_shared",
51280922886Sopenharmony_ci  ]
51380922886Sopenharmony_ci
51480922886Sopenharmony_ci  external_deps = [
51580922886Sopenharmony_ci    "ability_base:base",
51680922886Sopenharmony_ci    "ability_base:want",
51780922886Sopenharmony_ci    "ability_runtime:app_manager",
51880922886Sopenharmony_ci    "ability_runtime:wantagent_innerkits",
51980922886Sopenharmony_ci    "access_token:libaccesstoken_sdk",
52080922886Sopenharmony_ci    "access_token:libtokenid_sdk",
52180922886Sopenharmony_ci    "access_token:libtokensetproc_shared",
52280922886Sopenharmony_ci    "audio_framework:audio_client",
52380922886Sopenharmony_ci    "background_task_mgr:bgtaskmgr_innerkits",
52480922886Sopenharmony_ci    "bundle_framework:appexecfwk_base",
52580922886Sopenharmony_ci    "bundle_framework:appexecfwk_core",
52680922886Sopenharmony_ci    "c_utils:utils",
52780922886Sopenharmony_ci    "data_object:distributeddataobject_impl",
52880922886Sopenharmony_ci    "device_manager:devicemanagersdk",
52980922886Sopenharmony_ci    "graphic_surface:surface",
53080922886Sopenharmony_ci    "hilog:libhilog",
53180922886Sopenharmony_ci    "input:libmmi-client",
53280922886Sopenharmony_ci    "ipc:ipc_single",
53380922886Sopenharmony_ci    "jsoncpp:jsoncpp",
53480922886Sopenharmony_ci    "safwk:system_ability_fwk",
53580922886Sopenharmony_ci    "samgr:samgr_proxy",
53680922886Sopenharmony_ci  ]
53780922886Sopenharmony_ci
53880922886Sopenharmony_ci  if (castplus_cast_engine_enable) {
53980922886Sopenharmony_ci    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
54080922886Sopenharmony_ci    external_deps += [ "cast_engine:cast_engine_client" ]
54180922886Sopenharmony_ci    deps += [
54280922886Sopenharmony_ci      "../../frameworks/native/session:avsession_cast_client",
54380922886Sopenharmony_ci      "./../session:avsession_cast_item",
54480922886Sopenharmony_ci      "./../session:avsession_router",
54580922886Sopenharmony_ci    ]
54680922886Sopenharmony_ci  }
54780922886Sopenharmony_ci
54880922886Sopenharmony_ci  if (bluetooth_part_enable) {
54980922886Sopenharmony_ci    cflags += [ "-DBLUETOOTH_ENABLE" ]
55080922886Sopenharmony_ci    external_deps += [ "bluetooth:btframework" ]
55180922886Sopenharmony_ci  }
55280922886Sopenharmony_ci
55380922886Sopenharmony_ci  if (multimedia_av_session_enable_trace_control) {
55480922886Sopenharmony_ci    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
55580922886Sopenharmony_ci    external_deps += [ "hitrace:hitrace_meter" ]
55680922886Sopenharmony_ci  }
55780922886Sopenharmony_ci  if (multimedia_av_session_enable_sysevent_control) {
55880922886Sopenharmony_ci    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
55980922886Sopenharmony_ci    external_deps += [ "hisysevent:libhisysevent" ]
56080922886Sopenharmony_ci  }
56180922886Sopenharmony_ci
56280922886Sopenharmony_ci  if (multimedia_av_session_enable_hicollie) {
56380922886Sopenharmony_ci    external_deps += [ "hicollie:libhicollie" ]
56480922886Sopenharmony_ci    defines += [ "HICOLLIE_ENABLE" ]
56580922886Sopenharmony_ci  }
56680922886Sopenharmony_ci
56780922886Sopenharmony_ci  if (efficiency_manager_enable_in_avsession) {
56880922886Sopenharmony_ci    cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ]
56980922886Sopenharmony_ci  }
57080922886Sopenharmony_ci
57180922886Sopenharmony_ci  if (use_libfuzzer || use_clang_coverage) {
57280922886Sopenharmony_ci    defines += [ "TEST_COVERAGE" ]
57380922886Sopenharmony_ci  }
57480922886Sopenharmony_ci
57580922886Sopenharmony_ci  subsystem_name = "multimedia"
57680922886Sopenharmony_ci  part_name = "av_session"
57780922886Sopenharmony_ci}
57880922886Sopenharmony_ci
57980922886Sopenharmony_ciohos_shared_library("avsession_cast_item") {
58080922886Sopenharmony_ci  install_enable = true
58180922886Sopenharmony_ci  sanitize = {
58280922886Sopenharmony_ci    cfi = true
58380922886Sopenharmony_ci    cfi_cross_dso = true
58480922886Sopenharmony_ci    debug = false
58580922886Sopenharmony_ci  }
58680922886Sopenharmony_ci  ipc_sources = [
58780922886Sopenharmony_ci    "ipc/proxy/avcast_controller_callback_proxy.cpp",
58880922886Sopenharmony_ci    "ipc/stub/avcast_controller_stub.cpp",
58980922886Sopenharmony_ci  ]
59080922886Sopenharmony_ci
59180922886Sopenharmony_ci  service_sources = [ "server/avcast_controller_item.cpp" ]
59280922886Sopenharmony_ci
59380922886Sopenharmony_ci  adapter_sources = [
59480922886Sopenharmony_ci    "adapter/bundle_status_adapter.cpp",
59580922886Sopenharmony_ci    "adapter/session_xcollie.cpp",
59680922886Sopenharmony_ci  ]
59780922886Sopenharmony_ci
59880922886Sopenharmony_ci  sources = ipc_sources + adapter_sources + service_sources
59980922886Sopenharmony_ci
60080922886Sopenharmony_ci  include_dirs = [
60180922886Sopenharmony_ci    "./../../frameworks/native/session/include",
60280922886Sopenharmony_ci    "./../../interfaces/inner_api/native/session/include",
60380922886Sopenharmony_ci    "./ipc/base",
60480922886Sopenharmony_ci    "./ipc/proxy",
60580922886Sopenharmony_ci    "./ipc/stub",
60680922886Sopenharmony_ci    "./adapter",
60780922886Sopenharmony_ci    "./server",
60880922886Sopenharmony_ci    "./server/remote",
60980922886Sopenharmony_ci    "//third_party/json/single_include",
61080922886Sopenharmony_ci  ]
61180922886Sopenharmony_ci
61280922886Sopenharmony_ci  cflags = [
61380922886Sopenharmony_ci    "-fPIC",
61480922886Sopenharmony_ci    "-fdata-sections",
61580922886Sopenharmony_ci    "-ffunction-sections",
61680922886Sopenharmony_ci    "-fno-asynchronous-unwind-tables",
61780922886Sopenharmony_ci    "-fno-unwind-tables",
61880922886Sopenharmony_ci    "-Os",
61980922886Sopenharmony_ci  ]
62080922886Sopenharmony_ci
62180922886Sopenharmony_ci  if (multimedia_av_session_enable_background_audio_control) {
62280922886Sopenharmony_ci    cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ]
62380922886Sopenharmony_ci  }
62480922886Sopenharmony_ci
62580922886Sopenharmony_ci  if (!use_libfuzzer) {
62680922886Sopenharmony_ci    cflags += [ "-flto" ]
62780922886Sopenharmony_ci    ldflags = [
62880922886Sopenharmony_ci      "-flto",
62980922886Sopenharmony_ci      "-Wl,--gc-sections",
63080922886Sopenharmony_ci    ]
63180922886Sopenharmony_ci  }
63280922886Sopenharmony_ci  cflags_cc = cflags
63380922886Sopenharmony_ci  cflags_cc += [ "-fvisibility-inlines-hidden" ]
63480922886Sopenharmony_ci
63580922886Sopenharmony_ci  defines = []
63680922886Sopenharmony_ci  if (target_cpu == "arm64" || is_emulator) {
63780922886Sopenharmony_ci    system_lib_path = "\"/system/lib64/\""
63880922886Sopenharmony_ci  } else {
63980922886Sopenharmony_ci    system_lib_path = "\"/system/lib/\""
64080922886Sopenharmony_ci  }
64180922886Sopenharmony_ci  defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ]
64280922886Sopenharmony_ci
64380922886Sopenharmony_ci  deps = [
64480922886Sopenharmony_ci    "../../frameworks/common:avsession_common",
64580922886Sopenharmony_ci    "../../utils:avsession_utils",
64680922886Sopenharmony_ci    "//third_party/openssl:libcrypto_shared",
64780922886Sopenharmony_ci  ]
64880922886Sopenharmony_ci
64980922886Sopenharmony_ci  external_deps = [
65080922886Sopenharmony_ci    "ability_base:base",
65180922886Sopenharmony_ci    "ability_base:want",
65280922886Sopenharmony_ci    "ability_runtime:app_manager",
65380922886Sopenharmony_ci    "ability_runtime:wantagent_innerkits",
65480922886Sopenharmony_ci    "access_token:libaccesstoken_sdk",
65580922886Sopenharmony_ci    "access_token:libtokenid_sdk",
65680922886Sopenharmony_ci    "audio_framework:audio_client",
65780922886Sopenharmony_ci    "bundle_framework:appexecfwk_base",
65880922886Sopenharmony_ci    "bundle_framework:appexecfwk_core",
65980922886Sopenharmony_ci    "c_utils:utils",
66080922886Sopenharmony_ci    "data_object:distributeddataobject_impl",
66180922886Sopenharmony_ci    "device_manager:devicemanagersdk",
66280922886Sopenharmony_ci    "graphic_surface:surface",
66380922886Sopenharmony_ci    "hilog:libhilog",
66480922886Sopenharmony_ci    "input:libmmi-client",
66580922886Sopenharmony_ci    "ipc:ipc_single",
66680922886Sopenharmony_ci    "safwk:system_ability_fwk",
66780922886Sopenharmony_ci    "samgr:samgr_proxy",
66880922886Sopenharmony_ci  ]
66980922886Sopenharmony_ci
67080922886Sopenharmony_ci  if (castplus_cast_engine_enable) {
67180922886Sopenharmony_ci    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
67280922886Sopenharmony_ci    external_deps += [ "cast_engine:cast_engine_client" ]
67380922886Sopenharmony_ci    deps += [ "./../session:avsession_router" ]
67480922886Sopenharmony_ci  }
67580922886Sopenharmony_ci
67680922886Sopenharmony_ci  if (multimedia_av_session_enable_trace_control) {
67780922886Sopenharmony_ci    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
67880922886Sopenharmony_ci    external_deps += [ "hitrace:hitrace_meter" ]
67980922886Sopenharmony_ci  }
68080922886Sopenharmony_ci  if (multimedia_av_session_enable_sysevent_control) {
68180922886Sopenharmony_ci    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
68280922886Sopenharmony_ci    external_deps += [ "hisysevent:libhisysevent" ]
68380922886Sopenharmony_ci  }
68480922886Sopenharmony_ci
68580922886Sopenharmony_ci  if (multimedia_av_session_enable_hicollie) {
68680922886Sopenharmony_ci    external_deps += [ "hicollie:libhicollie" ]
68780922886Sopenharmony_ci    defines += [ "HICOLLIE_ENABLE" ]
68880922886Sopenharmony_ci  }
68980922886Sopenharmony_ci
69080922886Sopenharmony_ci  subsystem_name = "multimedia"
69180922886Sopenharmony_ci  part_name = "av_session"
69280922886Sopenharmony_ci}
693