176fd607bSopenharmony_ci# Copyright (C) 2022-2023 Huawei Device Co., Ltd.
276fd607bSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
376fd607bSopenharmony_ci# you may not use this file except in compliance with the License.
476fd607bSopenharmony_ci# You may obtain a copy of the License at
576fd607bSopenharmony_ci#
676fd607bSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
776fd607bSopenharmony_ci#
876fd607bSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
976fd607bSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1076fd607bSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1176fd607bSopenharmony_ci# See the License for the specific language governing permissions and
1276fd607bSopenharmony_ci# limitations under the License.
1376fd607bSopenharmony_ci
1476fd607bSopenharmony_ciimport("//build/ohos.gni")
1576fd607bSopenharmony_ciimport("//foundation/ability/ability_runtime/ability_runtime.gni")
1676fd607bSopenharmony_ciimport("//foundation/multimedia/media_library/media_library.gni")
1776fd607bSopenharmony_ci
1876fd607bSopenharmony_ciif (defined(medialibrary_mtp_enable)) {
1976fd607bSopenharmony_ci  group("mtp") {
2076fd607bSopenharmony_ci    if (defined(global_parts_info.hdf_drivers_interface_usb)) {
2176fd607bSopenharmony_ci      deps = [
2276fd607bSopenharmony_ci        ":media_mtp",
2376fd607bSopenharmony_ci        ":mtpservice",
2476fd607bSopenharmony_ci      ]
2576fd607bSopenharmony_ci    }
2676fd607bSopenharmony_ci  }
2776fd607bSopenharmony_ci
2876fd607bSopenharmony_ci  ohos_shared_library("media_mtp") {
2976fd607bSopenharmony_ci    install_enable = true
3076fd607bSopenharmony_ci
3176fd607bSopenharmony_ci    sources = [
3276fd607bSopenharmony_ci      "src/header_data.cpp",
3376fd607bSopenharmony_ci      "src/mtp_data_utils.cpp",
3476fd607bSopenharmony_ci      "src/mtp_driver.cpp",
3576fd607bSopenharmony_ci      "src/mtp_error_utils.cpp",
3676fd607bSopenharmony_ci      "src/mtp_event.cpp",
3776fd607bSopenharmony_ci      "src/mtp_file_observer.cpp",
3876fd607bSopenharmony_ci      "src/mtp_medialibrary_manager.cpp",
3976fd607bSopenharmony_ci      "src/mtp_monitor.cpp",
4076fd607bSopenharmony_ci      "src/mtp_operation.cpp",
4176fd607bSopenharmony_ci      "src/mtp_operation_utils.cpp",
4276fd607bSopenharmony_ci      "src/mtp_packet.cpp",
4376fd607bSopenharmony_ci      "src/mtp_packet_tools.cpp",
4476fd607bSopenharmony_ci      "src/mtp_service.cpp",
4576fd607bSopenharmony_ci      "src/mtp_storage_manager.cpp",
4676fd607bSopenharmony_ci      "src/object_info.cpp",
4776fd607bSopenharmony_ci      "src/packet_payload_factory.cpp",
4876fd607bSopenharmony_ci      "src/payload_data.cpp",
4976fd607bSopenharmony_ci      "src/payload_data/close_session_data.cpp",
5076fd607bSopenharmony_ci      "src/payload_data/copy_object_data.cpp",
5176fd607bSopenharmony_ci      "src/payload_data/delete_object_data.cpp",
5276fd607bSopenharmony_ci      "src/payload_data/get_device_info_data.cpp",
5376fd607bSopenharmony_ci      "src/payload_data/get_device_prop_desc_data.cpp",
5476fd607bSopenharmony_ci      "src/payload_data/get_device_prop_value_data.cpp",
5576fd607bSopenharmony_ci      "src/payload_data/get_num_objects_data.cpp",
5676fd607bSopenharmony_ci      "src/payload_data/get_object_data.cpp",
5776fd607bSopenharmony_ci      "src/payload_data/get_object_handles_data.cpp",
5876fd607bSopenharmony_ci      "src/payload_data/get_object_info_data.cpp",
5976fd607bSopenharmony_ci      "src/payload_data/get_object_prop_desc_data.cpp",
6076fd607bSopenharmony_ci      "src/payload_data/get_object_prop_list_data.cpp",
6176fd607bSopenharmony_ci      "src/payload_data/get_object_prop_value_data.cpp",
6276fd607bSopenharmony_ci      "src/payload_data/get_object_props_supported_data.cpp",
6376fd607bSopenharmony_ci      "src/payload_data/get_object_references_data.cpp",
6476fd607bSopenharmony_ci      "src/payload_data/get_partial_object_data.cpp",
6576fd607bSopenharmony_ci      "src/payload_data/get_storage_ids_data.cpp",
6676fd607bSopenharmony_ci      "src/payload_data/get_storage_info_data.cpp",
6776fd607bSopenharmony_ci      "src/payload_data/get_thumb_data.cpp",
6876fd607bSopenharmony_ci      "src/payload_data/move_object_data.cpp",
6976fd607bSopenharmony_ci      "src/payload_data/object_event_data.cpp",
7076fd607bSopenharmony_ci      "src/payload_data/open_session_data.cpp",
7176fd607bSopenharmony_ci      "src/payload_data/resp_common_data.cpp",
7276fd607bSopenharmony_ci      "src/payload_data/send_object_data.cpp",
7376fd607bSopenharmony_ci      "src/payload_data/send_object_info_data.cpp",
7476fd607bSopenharmony_ci      "src/payload_data/set_device_prop_value_data.cpp",
7576fd607bSopenharmony_ci      "src/payload_data/set_object_prop_value_data.cpp",
7676fd607bSopenharmony_ci      "src/payload_data/set_object_references_data.cpp",
7776fd607bSopenharmony_ci      "src/property.cpp",
7876fd607bSopenharmony_ci      "src/storage.cpp",
7976fd607bSopenharmony_ci    ]
8076fd607bSopenharmony_ci
8176fd607bSopenharmony_ci    cflags = [ "-fPIC" ]
8276fd607bSopenharmony_ci    cflags += [ "-Wall" ]
8376fd607bSopenharmony_ci
8476fd607bSopenharmony_ci    if (target_cpu == "arm") {
8576fd607bSopenharmony_ci      cflags += [ "-DBINDER_IPC_32BIT" ]
8676fd607bSopenharmony_ci    }
8776fd607bSopenharmony_ci
8876fd607bSopenharmony_ci    cflags_cc = cflags
8976fd607bSopenharmony_ci    include_dirs = [
9076fd607bSopenharmony_ci      "${MEDIALIB_MTP_PATH}/include",
9176fd607bSopenharmony_ci      "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include",
9276fd607bSopenharmony_ci      "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
9376fd607bSopenharmony_ci      "${MEDIALIB_SERVICES_PATH}/media_library/include",
9476fd607bSopenharmony_ci      "${MEDIALIB_UTILS_PATH}/include",
9576fd607bSopenharmony_ci      "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
9676fd607bSopenharmony_ci      "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include",
9776fd607bSopenharmony_ci    ]
9876fd607bSopenharmony_ci
9976fd607bSopenharmony_ci    deps = [
10076fd607bSopenharmony_ci      "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library",
10176fd607bSopenharmony_ci      "//third_party/openssl:libcrypto_shared",
10276fd607bSopenharmony_ci    ]
10376fd607bSopenharmony_ci
10476fd607bSopenharmony_ci    external_deps = [
10576fd607bSopenharmony_ci      "ability_base:base",
10676fd607bSopenharmony_ci      "ability_base:want",
10776fd607bSopenharmony_ci      "ability_base:zuri",
10876fd607bSopenharmony_ci      "ability_runtime:abilitykit_native",
10976fd607bSopenharmony_ci      "ability_runtime:app_context",
11076fd607bSopenharmony_ci      "ability_runtime:dataobs_manager",
11176fd607bSopenharmony_ci      "access_token:libaccesstoken_sdk",
11276fd607bSopenharmony_ci      "access_token:libnativetoken_shared",
11376fd607bSopenharmony_ci      "access_token:libtokensetproc_shared",
11476fd607bSopenharmony_ci      "c_utils:utils",
11576fd607bSopenharmony_ci      "common_event_service:cesfwk_innerkits",
11676fd607bSopenharmony_ci      "data_share:datashare_common",
11776fd607bSopenharmony_ci      "data_share:datashare_consumer",
11876fd607bSopenharmony_ci      "drivers_interface_usb:libusb_proxy_1.0",
11976fd607bSopenharmony_ci      "drivers_interface_usb:libusbfn_mtp_proxy_1.0",
12076fd607bSopenharmony_ci      "drivers_interface_usb:usbfn_mtp_idl_headers",
12176fd607bSopenharmony_ci      "hilog:libhilog",
12276fd607bSopenharmony_ci      "hitrace:hitrace_meter",
12376fd607bSopenharmony_ci      "init:libbegetutil",
12476fd607bSopenharmony_ci      "ipc:ipc_core",
12576fd607bSopenharmony_ci      "player_framework:media_client",
12676fd607bSopenharmony_ci      "relational_store:native_rdb",
12776fd607bSopenharmony_ci      "safwk:system_ability_fwk",
12876fd607bSopenharmony_ci      "samgr:samgr_proxy",
12976fd607bSopenharmony_ci      "storage_service:storage_manager_sa_proxy",
13076fd607bSopenharmony_ci    ]
13176fd607bSopenharmony_ci
13276fd607bSopenharmony_ci    sanitize = {
13376fd607bSopenharmony_ci      cfi = true
13476fd607bSopenharmony_ci      cfi_cross_dso = true
13576fd607bSopenharmony_ci      debug = false
13676fd607bSopenharmony_ci    }
13776fd607bSopenharmony_ci
13876fd607bSopenharmony_ci    if (defined(global_parts_info.powermgr_battery_manager)) {
13976fd607bSopenharmony_ci      external_deps += [ "battery_manager:batterysrv_client" ]
14076fd607bSopenharmony_ci      cflags_cc += [ "-DHAS_BATTERY_MANAGER_PART" ]
14176fd607bSopenharmony_ci    }
14276fd607bSopenharmony_ci
14376fd607bSopenharmony_ci    if (ability_runtime_graphics) {
14476fd607bSopenharmony_ci      external_deps += [ "image_framework:image_native" ]
14576fd607bSopenharmony_ci    }
14676fd607bSopenharmony_ci
14776fd607bSopenharmony_ci    innerapi_tags = [ "platformsdk" ]
14876fd607bSopenharmony_ci    part_name = "media_library"
14976fd607bSopenharmony_ci    subsystem_name = "multimedia"
15076fd607bSopenharmony_ci  }
15176fd607bSopenharmony_ci
15276fd607bSopenharmony_ci  ohos_shared_library("mtpservice") {
15376fd607bSopenharmony_ci    include_dirs = [
15476fd607bSopenharmony_ci      "${MEDIALIB_INTERFACES_PATH}/kits/js/include",
15576fd607bSopenharmony_ci      "${MEDIALIB_MTP_PATH}/include",
15676fd607bSopenharmony_ci    ]
15776fd607bSopenharmony_ci    ldflags = [ "-Wl" ]
15876fd607bSopenharmony_ci
15976fd607bSopenharmony_ci    sources = [ "${MEDIALIB_JS_PATH}/src/mtp_service_napi.cpp" ]
16076fd607bSopenharmony_ci
16176fd607bSopenharmony_ci    deps = [ "${MEDIALIB_MTP_PATH}:media_mtp" ]
16276fd607bSopenharmony_ci
16376fd607bSopenharmony_ci    external_deps = [
16476fd607bSopenharmony_ci      "ability_base:want",
16576fd607bSopenharmony_ci      "ability_runtime:ability_manager",
16676fd607bSopenharmony_ci      "ability_runtime:napi_base_context",
16776fd607bSopenharmony_ci      "drivers_interface_usb:usbfn_mtp_idl_headers",
16876fd607bSopenharmony_ci      "hilog:libhilog",
16976fd607bSopenharmony_ci      "ipc:ipc_core",
17076fd607bSopenharmony_ci      "ipc:rpc",
17176fd607bSopenharmony_ci      "napi:ace_napi",
17276fd607bSopenharmony_ci    ]
17376fd607bSopenharmony_ci
17476fd607bSopenharmony_ci    sanitize = {
17576fd607bSopenharmony_ci      cfi = true
17676fd607bSopenharmony_ci      cfi_cross_dso = true
17776fd607bSopenharmony_ci      debug = false
17876fd607bSopenharmony_ci    }
17976fd607bSopenharmony_ci
18076fd607bSopenharmony_ci    relative_install_dir = "module/multimedia"
18176fd607bSopenharmony_ci    subsystem_name = "multimedia"
18276fd607bSopenharmony_ci    part_name = "media_library"
18376fd607bSopenharmony_ci  }
18476fd607bSopenharmony_ci}
185