# 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"
}