9fe7389b创建于 5月21日历史提交
# Copyright (c) 2021-2023 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build/ohos.gni")
import("./../../multimedia_camera_framework.gni")

config("deferred_processing_public_config") {
  include_dirs = [
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/binder/base/include",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/binder/client/include",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/binder/server/include",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base/buffer_manager",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base/command_server",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base/task_manager",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base/task_manager/task_group",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base/timer",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base/timer/core",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/dfx",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/event_monitor",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/event_monitor/base",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/event_monitor/command",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/event_monitor/impl",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/post_processor",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/post_processor/command",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/base",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/state",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/photo_processor",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/photo_processor/command",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/photo_processor/photo_job_repository",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/photo_processor/strategy",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/video_processor",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/video_processor/command",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/video_processor/strategy",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/schedule/video_processor/video_job_repository",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/session",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/session/command",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/session/photo_session",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/session/video_session",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/include/utils",
    "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include/utils",
  ]
}
 

ohos_shared_library("deferred_processing_service") {
  install_enable = true
  sources = [
    "${multimedia_camera_framework_path}/frameworks/native/camera/base/src/utils/dps_metadata_info.cpp",
    "src/base/basic_definitions.cpp",
    "src/base/buffer_manager/shared_buffer.cpp",
    "src/base/command_server/command.cpp",
    "src/base/command_server/command_server.cpp",
    "src/base/command_server/command_server_impl.cpp",
    "src/base/dps_fd.cpp",
    "src/base/dps.cpp",
    "src/base/image_info.cpp",
    "src/base/media_progress_notifier.cpp",
    "src/base/video_info.cpp",
    "src/deferred_processing_service.cpp",
    "src/dfx/dps_event_report.cpp",
    "src/dfx/dps_video_report.cpp",
    "src/event_monitor/command/event_status_change_command.cpp",
    "src/event_monitor/events_info.cpp",
    "src/event_monitor/events_monitor.cpp",
    "src/event_monitor/events_subscriber.cpp",
    "src/event_monitor/impl/battery_level_strategy.cpp",
    "src/event_monitor/impl/battery_strategy.cpp",
    "src/event_monitor/impl/camera_strategy.cpp",
    "src/event_monitor/impl/charging_strategy.cpp",
    "src/event_monitor/impl/screen_strategy.cpp",
    "src/event_monitor/impl/thermal_strategy.cpp",
    "src/event_monitor/impl/user_strategy.cpp",
    "src/post_processor/command/photo_process_command.cpp",
    "src/post_processor/command/service_died_command.cpp",
    "src/post_processor/command/video_process_command.cpp",
    "src/post_processor/photo_post_processor.cpp",
    "src/post_processor/photo_process_result.cpp",
    "src/post_processor/video_post_processor.cpp",
    "src/post_processor/video_process_result.cpp",
    "src/schedule/base/state_machine.cpp",
    "src/schedule/photo_processor/deferred_photo_controller.cpp",
    "src/schedule/photo_processor/deferred_photo_processor.cpp",
    "src/schedule/photo_processor/deferred_photo_result.cpp",
    "src/schedule/photo_processor/command/notify_job_changed_command.cpp",
    "src/schedule/photo_processor/photo_job_repository/deferred_photo_job.cpp",
    "src/schedule/photo_processor/photo_job_repository/photo_job_queue.cpp",
    "src/schedule/photo_processor/photo_job_repository/photo_job_repository.cpp",
    "src/schedule/photo_processor/strategy/photo_strategy_center.cpp",
    "src/schedule/scheduler_manager.cpp",
    "src/schedule/state/interrupt_state.cpp",
    "src/schedule/state/photo_cache_state.cpp",
    "src/schedule/state/photo_camera_state.cpp",
    "src/schedule/state/photo_hal_state.cpp",
    "src/schedule/state/photo_media_library_state.cpp",
    "src/schedule/state/photo_temperature_state.cpp",
    "src/schedule/state/photo_trailing_state.cpp",
    "src/schedule/state/state_factory.cpp",
    "src/schedule/state/video_battery_level_state.cpp",
    "src/schedule/state/video_battery_state.cpp",
    "src/schedule/state/video_camera_state.cpp",
    "src/schedule/state/video_charging_state.cpp",
    "src/schedule/state/video_hal_state.cpp",
    "src/schedule/state/video_media_library_state.cpp",
    "src/schedule/state/video_photo_process_state.cpp",
    "src/schedule/state/video_screen_state.cpp",
    "src/schedule/state/video_temperature_state.cpp",
    "src/schedule/video_processor/deferred_video_controller.cpp",
    "src/schedule/video_processor/deferred_video_processor.cpp",
    "src/schedule/video_processor/deferred_video_result.cpp",
    "src/schedule/video_processor/command/notify_video_job_command.cpp",
    "src/schedule/video_processor/strategy/video_strategy_center.cpp",
    "src/schedule/video_processor/video_job_repository/deferred_video_job.cpp",
    "src/schedule/video_processor/video_job_repository/video_job_queue.cpp",
    "src/schedule/video_processor/video_job_repository/video_job_repository.cpp",
    "src/session/command/photo_command.cpp",
    "src/session/command/session_command.cpp",
    "src/session/command/sync_command.cpp",
    "src/session/command/video_command.cpp",
    "src/session/photo_session/deferred_photo_processing_session.cpp",
    "src/session/photo_session/photo_session_info.cpp",
    "src/session/session_manager.cpp",
    "src/session/video_session/deferred_video_processing_session.cpp",
    "src/session/video_session/video_session_info.cpp",
    "src/utils/dp_power_manager.cpp",
    "src/utils/dp_utils.cpp",
  ]

  include_dirs = []

  cflags = [
    "-fPIC",
    "-Wall",
  ]

  ldflags = [
    "-Wl,-z,relro,-z,now",
    "-fPIE",
    "-Os"
  ]

  if (!fwk_no_hidden && !use_clang_coverage && !use_libfuzzer) {
    cflags += [ "-fvisibility=hidden" ]
  }

  stack_protector_ret = true

  sanitize = {
    boundary_sanitize = true  # Enable boundary san detection
    cfi = true  # Enable/disable control flow integrity detection
    cfi_cross_dso = true  # Cross-SO CFI Checks
    debug = false
    integer_overflow = true  # Enable integer overflow detection
    ubsan = true  # Enable some Ubsan options
  }

  if (target_cpu == "arm") {
    cflags += [ "-DBINDER_IPC_32BIT" ]
  }
  if (build_variant == "user") {
    cflags += [ "-DIS_RELEASE_VERSION" ]
  }
  deps = [
    "${multimedia_camera_framework_path}/common:camera_utils",
    "${multimedia_camera_framework_path}/mediastream:media_stream",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/idls:camera_deferred_idl_sa_stub",
   ]

  public_configs = [
    ":deferred_processing_public_config",
    "${multimedia_camera_framework_path}/services/deferred_processing_service/idls:deferred_processing_service_idl_config",
  ]

  external_deps = [
    "ability_base:want",
    "access_token:libaccesstoken_sdk",
    "access_token:libprivacy_sdk",
    "bundle_framework:appexecfwk_base",
    "bundle_framework:appexecfwk_core",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_camera:libcamera_proxy_1.0",
    "drivers_interface_camera:libcamera_proxy_1.1",
    "drivers_interface_camera:libcamera_proxy_1.2",
    "drivers_interface_camera:libcamera_proxy_1.3",
    "drivers_interface_camera:libcamera_proxy_1.4",
    "drivers_interface_camera:libcamera_proxy_1.5",
    "drivers_interface_camera:metadata",
    "graphic_2d:librender_service_client",
    "graphic_surface:buffer_handle",
    "graphic_surface:surface",
    "hdf_core:libhdi",
    "hicollie:libhicollie",
    "hilog:libhilog",
    "hisysevent:libhisysevent",
    "hitrace:hitrace_meter",
    "init:libbegetutil",
    "ipc:ipc_core",
    "ipc:ipc_single",
    "safwk:system_ability_fwk",
    "storage_service:storage_manager_sa_proxy",
    "samgr:samgr_proxy",
    "window_manager:libdm",
  ]

  public_external_deps =
      [ "drivers_interface_camera:libmap_data_sequenceable_1.0" ]

  if (use_musl) {
    if (musl_use_jemalloc && musl_use_jemalloc_dfx_intf) {
      cflags += [ "-DCONFIG_USE_JEMALLOC_DFX_INTF" ]
    }
  }

  defines = []
  if (use_thermal_manager) {
    external_deps += [ "thermal_manager:thermalsrv_client" ]
    defines += [ "CAMERA_USE_THERMAL" ]
  }

  if (use_battery_manager) {
    external_deps += [ "battery_manager:batterysrv_client" ]
    defines += [ "CAMERA_USE_BATTERY" ]
  }

  if (use_power_manager) {
    external_deps += [ "power_manager:powermgr_client" ]
    defines += [ "CAMERA_USE_POWER" ]
  }

  if (use_memmgr_override) {
    external_deps += [ "memmgr:memmgrclient" ]
    defines += [ "MEMMGR_OVERRID" ]
  }

  if (camera_framework_feature_capture_yuv) {
    defines += [ "CAMERA_CAPTURE_YUV" ]
  }

  cflags_cc = cflags

  part_name = "camera_framework"
  subsystem_name = "multimedia"
}