1# Copyright (C) 2021-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. 13import("//build/config/components/ets_frontend/es2abc_config.gni") 14import("//build/ohos.gni") 15import("//build/ohos/ace/ace.gni") 16import("//build/templates/abc/ohos_abc.gni") 17import("//commonlibrary/memory_utils/purgeable_mem_config.gni") 18import("//foundation/ability/ability_runtime/ability_runtime.gni") 19import("//foundation/multimedia/media_library/media_library.gni") 20import("../../../../../../foundation/arkui/ace_engine/ace_config.gni") 21 22js_declaration("medialibrary_js") { 23 part_name = "media_library" 24 sources = [ "./@ohos.multimedia.mediaLibrary.d.ts" ] 25} 26 27# compile .js to .abc. 28action("gen_medialibraryinf_abc") { 29 visibility = [ ":*" ] 30 script = "../../../../../../arkcompiler/ets_frontend/es2panda/scripts/generate_js_bytecode.py" 31 32 args = [ 33 "--src-js", 34 rebase_path("${MEDIALIB_JS_PATH}/src/medialibraryinf.js"), 35 "--dst-file", 36 rebase_path(target_out_dir + "/medialibraryinf.abc"), 37 "--frontend-tool-path", 38 rebase_path("${es2abc_build_path}"), 39 "--module", 40 ] 41 deps = 42 [ "../../../../../../arkcompiler/ets_frontend/es2panda:es2panda_build" ] 43 44 inputs = [ "${MEDIALIB_JS_PATH}/src/medialibraryinf.js" ] 45 outputs = [ target_out_dir + "/medialibraryinf.abc" ] 46} 47 48base_output_path = get_label_info(":medialibraryinf_js", "target_out_dir") 49medialibraryinf_obj_path = base_output_path + "/medialibraryinf.o" 50gen_js_obj("medialibraryinf_js") { 51 input = "${MEDIALIB_JS_PATH}/src/medialibraryinf.js" 52 output = medialibraryinf_obj_path 53 dep = ":gen_medialibraryinf_abc" 54} 55 56abc_output_path = get_label_info(":medialibraryinf_abc", "target_out_dir") 57medialibraryinf_abc_obj_path = abc_output_path + "/medialibraryinf_abc.o" 58gen_js_obj("medialibraryinf_abc") { 59 input = "$target_out_dir/medialibraryinf.abc" 60 output = medialibraryinf_abc_obj_path 61 dep = ":gen_medialibraryinf_abc" 62} 63 64config("napi_config") { 65 include_dirs = [ 66 "${MEDIALIB_GLOBAL_PATH}/i18n/frameworks/intl/include", 67 "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include", 68 "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include", 69 "${MEDIALIB_SERVICES_PATH}/media_dfx/include", 70 "${MEDIALIB_SERVICES_PATH}/media_scanner/include/callback", 71 "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include", 72 "${MEDIALIB_SERVICES_PATH}/media_analysis_extension/include", 73 "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/include", 74 "${MEDIALIB_SERVICES_PATH}/media_async_worker/include", 75 "${MEDIALIB_UTILS_PATH}/include", 76 "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include", 77 "${MEDIALIB_INTERFACES_PATH}/kits/js/include", 78 "${MEDIALIB_INTERFACES_PATH}/innerkits/native/include", 79 "${MEDIALIB_UTILS_PATH}/include", 80 "${MEDIALIB_SERVICES_PATH}/media_library/include", 81 "../../../../../distributedhardware/device_manager/interfaces/inner_kits/native_cpp/include", 82 "//third_party/e2fsprogs/e2fsprogs/lib", 83 "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/include/media_cloud_asset_download", 84 ] 85 86 if (media_library_feature_mtp) { 87 include_dirs += [ "${MEDIALIB_MTP_PATH}/include" ] 88 } 89 90 if (defined(global_parts_info) && 91 defined( 92 global_parts_info.device_cloud_gateway_media_cloud_enhance_service)) { 93 include_dirs += [ "${MEDIALIB_CLOUD_ENHANCEMENT_SERVICE_PATH}/interfaces/inner_api/include/c_api" ] 94 } 95 96 ldflags = [ "-Wl,--gc-sections" ] 97 98 cflags = [ 99 "-fvisibility=hidden", 100 "-fdata-sections", 101 "-ffunction-sections", 102 "-Os", 103 ] 104 105 cflags_cc = [ 106 "-fvisibility-inlines-hidden", 107 "-Os", 108 ] 109} 110 111config("napi_config_photoaccesshelpernative") { 112 include_dirs = [ 113 "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include", 114 "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include", 115 "${MEDIALIB_SERVICES_PATH}/media_dfx/include", 116 "${MEDIALIB_SERVICES_PATH}/media_scanner/include/callback", 117 "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include", 118 "${MEDIALIB_SERVICES_PATH}/media_analysis_extension/include", 119 "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/include", 120 "${MEDIALIB_SERVICES_PATH}/media_async_worker/include", 121 "${MEDIALIB_UTILS_PATH}/include", 122 "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include", 123 "${MEDIALIB_INTERFACES_PATH}/kits/js/include", 124 "${MEDIALIB_INTERFACES_PATH}/innerkits/native/include", 125 "${MEDIALIB_UTILS_PATH}/include", 126 "${MEDIALIB_SERVICES_PATH}/media_library/include", 127 "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/include/media_cloud_asset_download", 128 ] 129 130 if (media_library_feature_mtp) { 131 include_dirs += [ "${MEDIALIB_MTP_PATH}/include" ] 132 } 133 134 ldflags = [ "-Wl,--gc-sections" ] 135 136 cflags = [ 137 "-fvisibility=hidden", 138 "-fdata-sections", 139 "-ffunction-sections", 140 "-Os", 141 ] 142 143 cflags_cc = [ 144 "-fvisibility-inlines-hidden", 145 "-Os", 146 ] 147} 148 149config("public_napi_config") { 150 include_dirs = [ 151 "${MEDIALIB_INTERFACES_PATH}/kits/js/include", 152 "${MEDIALIB_INTERFACES_PATH}/kits/js/include/napi", 153 ] 154} 155 156ohos_shared_library("medialibrary_nutils") { 157 public_configs = [ ":public_napi_config" ] 158 configs = [ ":napi_config" ] 159 sources = [ 160 "${MEDIALIB_JS_PATH}/src/album_napi.cpp", 161 "${MEDIALIB_JS_PATH}/src/cloud_enhancement_napi.cpp", 162 "${MEDIALIB_JS_PATH}/src/cloud_enhancement_task_state_napi.cpp", 163 "${MEDIALIB_JS_PATH}/src/cloud_media_asset_manager_napi.cpp", 164 "${MEDIALIB_JS_PATH}/src/cloud_media_asset_status_napi.cpp", 165 "${MEDIALIB_JS_PATH}/src/confirm_callback.cpp", 166 "${MEDIALIB_JS_PATH}/src/delete_callback.cpp", 167 "${MEDIALIB_JS_PATH}/src/fetch_file_result_napi.cpp", 168 "${MEDIALIB_JS_PATH}/src/file_asset_napi.cpp", 169 "${MEDIALIB_JS_PATH}/src/highlight_album_napi.cpp", 170 "${MEDIALIB_JS_PATH}/src/media_album_change_request_napi.cpp", 171 "${MEDIALIB_JS_PATH}/src/media_asset_change_request_napi.cpp", 172 "${MEDIALIB_JS_PATH}/src/media_asset_data_handler.cpp", 173 "${MEDIALIB_JS_PATH}/src/media_asset_edit_data_napi.cpp", 174 "${MEDIALIB_JS_PATH}/src/media_asset_manager_napi.cpp", 175 "${MEDIALIB_JS_PATH}/src/media_assets_change_request_napi.cpp", 176 "${MEDIALIB_JS_PATH}/src/media_call_transcode.cpp", 177 "${MEDIALIB_JS_PATH}/src/media_change_request_napi.cpp", 178 "${MEDIALIB_JS_PATH}/src/media_library_comm_napi.cpp", 179 "${MEDIALIB_JS_PATH}/src/media_library_napi.cpp", 180 "${MEDIALIB_JS_PATH}/src/media_scanner_napi.cpp", 181 "${MEDIALIB_JS_PATH}/src/medialibrary_napi_utils.cpp", 182 "${MEDIALIB_JS_PATH}/src/modal_ui_callback.cpp", 183 "${MEDIALIB_JS_PATH}/src/moving_photo_napi.cpp", 184 "${MEDIALIB_JS_PATH}/src/napi_error.cpp", 185 "${MEDIALIB_JS_PATH}/src/photo_album_napi.cpp", 186 "${MEDIALIB_JS_PATH}/src/photo_proxy_napi.cpp", 187 "${MEDIALIB_JS_PATH}/src/picture_handle_client.cpp", 188 "${MEDIALIB_JS_PATH}/src/request_photo_uris_read_permission_callback.cpp", 189 "${MEDIALIB_JS_PATH}/src/short_term_callback.cpp", 190 "${MEDIALIB_JS_PATH}/src/smart_album_napi.cpp", 191 "${MEDIALIB_JS_PATH}/src/thumbnail_manager.cpp", 192 "${MEDIALIB_JS_PATH}/src/userfile_client.cpp", 193 ] 194 195 deps = [ "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library" ] 196 197 external_deps = [ 198 "ability_base:want", 199 "ability_base:zuri", 200 "ability_runtime:ability_context_native", 201 "ability_runtime:ability_manager", 202 "ability_runtime:abilitykit_native", 203 "ability_runtime:app_context", 204 "ability_runtime:dataobs_manager", 205 "ability_runtime:extensionkit_native", 206 "ability_runtime:napi_base_context", 207 "ability_runtime:napi_common", 208 "ability_runtime:runtime", 209 "ability_runtime:service_extension", 210 "ability_runtime:ui_extension", 211 "access_token:libaccesstoken_sdk", 212 "access_token:libprivacy_sdk", 213 "access_token:libtokenid_sdk", 214 "app_file_service:fileuri_native", 215 "bundle_framework:appexecfwk_core", 216 "c_utils:utils", 217 "common_event_service:cesfwk_innerkits", 218 "data_share:datashare_common", 219 "data_share:datashare_consumer", 220 "e2fsprogs:libext2_uuid", 221 "hilog:libhilog", 222 "hitrace:hitrace_meter", 223 "i18n:intl_util", 224 "image_framework:image", 225 "image_framework:image_native", 226 "init:libbegetutil", 227 "ipc:ipc_core", 228 "ipc:ipc_single", 229 "ipc:rpc", 230 "kv_store:distributeddata_inner", 231 "libexif:libexif", 232 "napi:ace_napi", 233 "player_framework:media_client", 234 "relational_store:native_rdb", 235 "relational_store:rdb_data_share_adapter", 236 "samgr:samgr_proxy", 237 "window_manager:libwm", 238 ] 239 240 defines = [] 241 defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ] 242 if (media_library_feature_mtp) { 243 defines += [ "MEDIALIBRARY_MTP_ENABLE=1" ] 244 } 245 if (!media_library_link_opt) { 246 sanitize = { 247 cfi = true 248 cfi_cross_dso = true 249 debug = false 250 integer_overflow = true 251 ubsan = true 252 boundary_sanitize = true 253 stack_protector_ret = true 254 } 255 } 256 257 if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) && 258 defined(global_parts_info.resourceschedule_memmgr_override)) { 259 defines += [ "IMAGE_PURGEABLE_PIXELMAP" ] 260 external_deps += [ 261 "ffrt:libffrt", 262 "memmgr_override:libpurgeablemem_plugin", 263 "memmgr_override:purgeable_pixelmap_builder", 264 ] 265 } 266 267 if (defined(global_parts_info) && 268 defined( 269 global_parts_info.device_cloud_gateway_media_cloud_enhance_service) && 270 !factory) { 271 defines += [ "ABILITY_CLOUD_ENHANCEMENT_SUPPORT" ] 272 } 273 274 if (defined(global_parts_info) && 275 defined(global_parts_info.multimedia_video_processing_engine)) { 276 defines += [ "USE_VIDEO_PROCESSING_ENGINE" ] 277 } 278 279 if (ability_runtime_graphics) { 280 external_deps += [ 281 "ace_engine:ace_uicontent", 282 "image_framework:image_native", 283 ] 284 cflags_cc = [ "-DHAS_ACE_ENGINE_PART" ] 285 } 286 287 innerapi_tags = [ "platformsdk" ] 288 subsystem_name = "multimedia" 289 part_name = "media_library" 290} 291 292ohos_shared_library("medialibrary") { 293 configs = [ 294 ":public_napi_config", 295 ":napi_config", 296 ] 297 298 version_script = "libmedialibrary.map" 299 300 sources = [ "${MEDIALIB_JS_PATH}/src/native_module_ohos_medialibrary.cpp" ] 301 302 deps = [ 303 ":medialibrary_nutils", 304 ":medialibraryinf_abc", 305 ":medialibraryinf_js", 306 "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library", 307 ] 308 309 external_deps = [ 310 "ability_base:want", 311 "ability_base:zuri", 312 "ability_runtime:ability_manager", 313 "ability_runtime:abilitykit_native", 314 "ability_runtime:napi_base_context", 315 "c_utils:utils", 316 "data_share:datashare_consumer", 317 "hilog:libhilog", 318 "napi:ace_napi", 319 ] 320 321 defines = [] 322 defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ] 323 if (media_library_feature_mtp) { 324 defines += [ "MEDIALIBRARY_MTP_ENABLE=1" ] 325 } 326 if (defined(global_parts_info) && 327 defined(global_parts_info.open_source_libyuv)) { 328 defines += [ "EXT_PIXEL" ] 329 } 330 if (!media_library_link_opt) { 331 sanitize = { 332 cfi = true 333 cfi_cross_dso = true 334 debug = false 335 integer_overflow = true 336 ubsan = true 337 boundary_sanitize = true 338 stack_protector_ret = true 339 } 340 } 341 342 if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) && 343 defined(global_parts_info.resourceschedule_memmgr_override)) { 344 defines += [ "IMAGE_PURGEABLE_PIXELMAP" ] 345 external_deps += [ 346 "memmgr_override:libpurgeablemem_plugin", 347 "memmgr_override:purgeable_pixelmap_builder", 348 ] 349 } 350 351 if (ability_runtime_graphics) { 352 external_deps += [ "image_framework:image_native" ] 353 } 354 355 relative_install_dir = "module/multimedia" 356 subsystem_name = "multimedia" 357 part_name = "media_library" 358} 359 360ohos_shared_library("userfilemanager") { 361 configs = [ 362 ":public_napi_config", 363 ":napi_config", 364 ] 365 366 sources = 367 [ "${MEDIALIB_JS_PATH}/src/native_module_ohos_userfile_manager.cpp" ] 368 369 deps = [ 370 ":medialibrary_nutils", 371 "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library", 372 ] 373 374 external_deps = [ 375 "ability_base:want", 376 "ability_base:zuri", 377 "ability_runtime:ability_manager", 378 "ability_runtime:abilitykit_native", 379 "ability_runtime:napi_base_context", 380 "c_utils:utils", 381 "data_share:datashare_consumer", 382 "hilog:libhilog", 383 "napi:ace_napi", 384 ] 385 386 defines = [] 387 defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ] 388 if (media_library_feature_mtp) { 389 defines += [ "MEDIALIBRARY_MTP_ENABLE=1" ] 390 } 391 if (!media_library_link_opt) { 392 sanitize = { 393 cfi = true 394 cfi_cross_dso = true 395 debug = false 396 integer_overflow = true 397 ubsan = true 398 boundary_sanitize = true 399 stack_protector_ret = true 400 } 401 } 402 403 if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) && 404 defined(global_parts_info.resourceschedule_memmgr_override)) { 405 defines += [ "IMAGE_PURGEABLE_PIXELMAP" ] 406 external_deps += [ 407 "memmgr_override:libpurgeablemem_plugin", 408 "memmgr_override:purgeable_pixelmap_builder", 409 ] 410 } 411 412 if (ability_runtime_graphics) { 413 external_deps += [ "image_framework:image_native" ] 414 } 415 416 relative_install_dir = "module/filemanagement" 417 subsystem_name = "multimedia" 418 part_name = "media_library" 419} 420 421ohos_abc("photoaccesshelper") { 422 sources = [ "${MEDIALIB_JS_PATH}/src/photoaccesshelperinf.js" ] 423 output_name = "photoaccesshelper" 424 install_images = [ "system" ] 425 module_install_dir = "etc/abc/file" 426 subsystem_name = "multimedia" 427 part_name = "media_library" 428} 429 430ohos_shared_library("photoaccesshelpernative") { 431 configs = [ 432 ":public_napi_config", 433 ":napi_config_photoaccesshelpernative", 434 ] 435 436 sources = 437 [ "${MEDIALIB_JS_PATH}/src/native_module_ohos_photoaccess_helper.cpp" ] 438 439 deps = [ 440 ":medialibrary_nutils", 441 "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library", 442 ] 443 444 external_deps = [ 445 "ability_base:want", 446 "ability_base:zuri", 447 "ability_runtime:ability_manager", 448 "ability_runtime:abilitykit_native", 449 "ability_runtime:napi_base_context", 450 "c_utils:utils", 451 "data_share:datashare_common", 452 "data_share:datashare_consumer", 453 "device_manager:devicemanagersdk", 454 "e2fsprogs:libext2_blkid", 455 "hilog:libhilog", 456 "i18n:intl_util", 457 "napi:ace_napi", 458 "player_framework:media_client", 459 ] 460 461 defines = [] 462 defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ] 463 if (media_library_feature_mtp) { 464 defines += [ "MEDIALIBRARY_MTP_ENABLE=1" ] 465 } 466 if (!media_library_link_opt) { 467 sanitize = { 468 cfi = true 469 cfi_cross_dso = true 470 debug = false 471 integer_overflow = true 472 ubsan = true 473 boundary_sanitize = true 474 stack_protector_ret = true 475 } 476 } 477 478 if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) && 479 defined(global_parts_info.resourceschedule_memmgr_override)) { 480 defines += [ "IMAGE_PURGEABLE_PIXELMAP" ] 481 external_deps += [ 482 "memmgr_override:libpurgeablemem_plugin", 483 "memmgr_override:purgeable_pixelmap_builder", 484 ] 485 } 486 487 if (ability_runtime_graphics) { 488 external_deps += [ "image_framework:image_native" ] 489 } 490 491 relative_install_dir = "module/file" 492 subsystem_name = "multimedia" 493 part_name = "media_library" 494} 495 496js_declaration("photopickercomponent_js") { 497 part_name = "media_library" 498 sources = [ "./@ohos.file.PhotoPickerComponent.d.ets" ] 499} 500 501# compile .js to .abc. 502es2abc_gen_abc("gen_photopickercomponent_abc") { 503 src_js = rebase_path("${MEDIALIB_JS_PATH}/src/photopickercomponent.js") 504 dst_file = rebase_path(target_out_dir + "/photopickercomponent.abc") 505 in_puts = [ "${MEDIALIB_JS_PATH}/src/photopickercomponent.js" ] 506 out_puts = [ target_out_dir + "/photopickercomponent.abc" ] 507 extra_args = [ "--module" ] 508} 509 510abc_output_path = get_label_info(":photopickercomponent_abc", "target_out_dir") 511photopickercomponent_abc_obj_path = 512 abc_output_path + "/photopickercomponent_abc.o" 513gen_js_obj("photopickercomponent_abc") { 514 input = "$target_out_dir/photopickercomponent.abc" 515 output = photopickercomponent_abc_obj_path 516 dep = ":gen_photopickercomponent_abc" 517} 518 519ohos_shared_library("photopickercomponent") { 520 sources = [ "${MEDIALIB_JS_PATH}/src/photopickercomponent.cpp" ] 521 522 deps = [ ":photopickercomponent_abc" ] 523 524 external_deps = [ 525 "hilog:libhilog", 526 "napi:ace_napi", 527 ] 528 529 if (!media_library_link_opt) { 530 sanitize = { 531 cfi = true 532 cfi_cross_dso = true 533 debug = false 534 integer_overflow = true 535 ubsan = true 536 boundary_sanitize = true 537 stack_protector_ret = true 538 } 539 } 540 541 relative_install_dir = "module/file" 542 subsystem_name = "multimedia" 543 part_name = "media_library" 544} 545 546js_declaration("albumpickercomponent_js") { 547 part_name = "media_library" 548 sources = [ "./@ohos.file.AlbumPickerComponent.d.ets" ] 549} 550 551# compile .js to .abc. 552es2abc_gen_abc("gen_albumpickercomponent_abc") { 553 src_js = rebase_path("${MEDIALIB_JS_PATH}/src/albumpickercomponent.js") 554 dst_file = rebase_path(target_out_dir + "/albumpickercomponent.abc") 555 in_puts = [ "${MEDIALIB_JS_PATH}/src/albumpickercomponent.js" ] 556 out_puts = [ target_out_dir + "/albumpickercomponent.abc" ] 557 extra_args = [ "--module" ] 558} 559 560abc_output_path = get_label_info(":albumpickercomponent_abc", "target_out_dir") 561albumpickercomponent_abc_obj_path = 562 abc_output_path + "/albumpickercomponent_abc.o" 563gen_js_obj("albumpickercomponent_abc") { 564 input = "$target_out_dir/albumpickercomponent.abc" 565 output = albumpickercomponent_abc_obj_path 566 dep = ":gen_albumpickercomponent_abc" 567} 568 569ohos_shared_library("albumpickercomponent") { 570 sources = [ "${MEDIALIB_JS_PATH}/src/albumpickercomponent.cpp" ] 571 572 deps = [ ":albumpickercomponent_abc" ] 573 574 external_deps = [ 575 "hilog:libhilog", 576 "napi:ace_napi", 577 ] 578 579 if (!media_library_link_opt) { 580 sanitize = { 581 cfi = true 582 cfi_cross_dso = true 583 debug = false 584 integer_overflow = true 585 ubsan = true 586 boundary_sanitize = true 587 stack_protector_ret = true 588 } 589 } 590 591 relative_install_dir = "module/file" 592 subsystem_name = "multimedia" 593 part_name = "media_library" 594} 595 596js_declaration("recentphotocomponent_js") { 597 part_name = "media_library" 598 sources = [ "./@ohos.file.RecentPhotoComponent.d.ets" ] 599} 600 601# compile .js to .abc. 602es2abc_gen_abc("gen_recentphotocomponent_abc") { 603 src_js = rebase_path("${MEDIALIB_JS_PATH}/src/recentphotocomponent.js") 604 dst_file = rebase_path(target_out_dir + "/recentphotocomponent.abc") 605 in_puts = [ "${MEDIALIB_JS_PATH}/src/recentphotocomponent.js" ] 606 out_puts = [ target_out_dir + "/recentphotocomponent.abc" ] 607 extra_args = [ "--module" ] 608} 609 610abc_output_path = get_label_info(":recentphotocomponent_abc", "target_out_dir") 611recentphotocomponent_abc_obj_path = 612 abc_output_path + "/recentphotocomponent_abc.o" 613gen_js_obj("recentphotocomponent_abc") { 614 input = "$target_out_dir/recentphotocomponent.abc" 615 output = recentphotocomponent_abc_obj_path 616 dep = ":gen_recentphotocomponent_abc" 617} 618 619ohos_shared_library("recentphotocomponent") { 620 sources = [ "${MEDIALIB_JS_PATH}/src/recentphotocomponent.cpp" ] 621 622 deps = [ ":recentphotocomponent_abc" ] 623 624 external_deps = [ 625 "hilog:libhilog", 626 "napi:ace_napi", 627 ] 628 629 if (!media_library_link_opt) { 630 sanitize = { 631 cfi = true 632 cfi_cross_dso = true 633 debug = false 634 integer_overflow = true 635 ubsan = true 636 boundary_sanitize = true 637 stack_protector_ret = true 638 } 639 } 640 641 relative_install_dir = "module/file" 642 subsystem_name = "multimedia" 643 part_name = "media_library" 644} 645 646ohos_shared_library("sendablephotoaccesshelper") { 647 include_dirs = [ 648 "${MEDIALIB_INTERFACES_PATH}/kits/js/include", 649 "${MEDIALIB_INTERFACES_PATH}/kits/js/include/sendable", 650 "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include", 651 "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include", 652 "${MEDIALIB_SERVICES_PATH}/media_dfx/include", 653 "${MEDIALIB_SERVICES_PATH}/media_scanner/include/callback", 654 "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include", 655 "${MEDIALIB_SERVICES_PATH}/media_analysis_extension/include", 656 "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/include", 657 "${MEDIALIB_SERVICES_PATH}/media_async_worker/include", 658 "${MEDIALIB_UTILS_PATH}/include", 659 "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include", 660 "${MEDIALIB_INTERFACES_PATH}/kits/js/include", 661 "${MEDIALIB_INTERFACES_PATH}/innerkits/native/include", 662 "${MEDIALIB_UTILS_PATH}/include", 663 "${MEDIALIB_SERVICES_PATH}/media_library/include", 664 ] 665 666 sources = [ 667 "${MEDIALIB_JS_PATH}/src/sendable/native_module_ohos_photoaccess_helper_sendable.cpp", 668 "${MEDIALIB_JS_PATH}/src/sendable/sendable_fetch_file_result_napi.cpp", 669 "${MEDIALIB_JS_PATH}/src/sendable/sendable_file_asset_napi.cpp", 670 "${MEDIALIB_JS_PATH}/src/sendable/sendable_medialibrary_napi_utils.cpp", 671 "${MEDIALIB_JS_PATH}/src/sendable/sendable_photo_access_helper_napi.cpp", 672 "${MEDIALIB_JS_PATH}/src/sendable/sendable_photo_album_napi.cpp", 673 ] 674 675 deps = [ 676 ":medialibrary_nutils", 677 "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library", 678 ] 679 680 external_deps = [ 681 "ability_base:zuri", 682 "ability_runtime:ability_manager", 683 "ability_runtime:abilitykit_native", 684 "ability_runtime:dataobs_manager", 685 "ability_runtime:extensionkit_native", 686 "ability_runtime:napi_base_context", 687 "ability_runtime:napi_common", 688 "access_token:libaccesstoken_sdk", 689 "access_token:libprivacy_sdk", 690 "access_token:libtokenid_sdk", 691 "app_file_service:fileuri_native", 692 "bundle_framework:appexecfwk_core", 693 "c_utils:utils", 694 "common_event_service:cesfwk_innerkits", 695 "data_share:datashare_common", 696 "data_share:datashare_consumer", 697 "hilog:libhilog", 698 "hitrace:hitrace_meter", 699 "i18n:intl_util", 700 "image_framework:image", 701 "image_framework:image_native", 702 "init:libbegetutil", 703 "ipc:ipc_core", 704 "ipc:ipc_single", 705 "ipc:rpc", 706 "napi:ace_napi", 707 "player_framework:media_client", 708 "relational_store:native_rdb", 709 ] 710 711 defines = [] 712 defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ] 713 if (media_library_feature_mtp) { 714 defines += [ "MEDIALIBRARY_MTP_ENABLE=1" ] 715 } 716 if (!media_library_link_opt) { 717 sanitize = { 718 cfi = true 719 cfi_cross_dso = true 720 debug = false 721 integer_overflow = true 722 ubsan = true 723 boundary_sanitize = true 724 stack_protector_ret = true 725 } 726 } 727 728 if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) && 729 defined(global_parts_info.resourceschedule_memmgr_override)) { 730 defines += [ "IMAGE_PURGEABLE_PIXELMAP" ] 731 external_deps += [ 732 "memmgr_override:libpurgeablemem_plugin", 733 "memmgr_override:purgeable_pixelmap_builder", 734 ] 735 } 736 737 if (ability_runtime_graphics) { 738 cflags_cc = [ "-DHAS_ACE_ENGINE_PART" ] 739 } 740 741 output_name = "libsendablephotoaccesshelper" 742 relative_install_dir = "module/file" 743 subsystem_name = "multimedia" 744 part_name = "media_library" 745} 746