# Copyright (c) 2024 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("optimize_size") {
cflags = [ "-Os" ]
}
config("camera_utils_config") {
include_dirs = [
"include",
"include/task_manager",
"include/task_manager/task_group",
"include/timer",
"include/timer/core",
"utils",
"utils/av_codec/include",
"utils/camera_extend/include",
"utils/camera_notification/include",
"utils/image_framework/include",
"utils/media_manager/include",
"utils/media_stream/include",
"utils/moving_photo/include",
"utils/moving_photo/include/avcodec",
"utils/moving_photo/include/common",
"utils/xcomponent_controller/include",
"utils/image_effect/include",
"utils/movie_file/include",
"utils/watermark_exif_metadata/include",
"${multimedia_camera_framework_path}/common",
"${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include",
"${multimedia_camera_framework_path}/services/camera_service/include",
"${multimedia_camera_framework_path}/services/camera_service/binder/base/include",
"${multimedia_camera_framework_path}/services/deferred_processing_service/include/base",
"${multimedia_camera_framework_path}/services/deferred_processing_service/include/utils",
]
}
common_sources = [
"src/task_manager/task_group/base_task_group.cpp",
"src/task_manager/task_group/delayed_task_group.cpp",
"src/task_manager/task_group/task_group.cpp",
"src/task_manager/task_manager.cpp",
"src/task_manager/task_registry.cpp",
"src/task_manager/thread_pool.cpp",
"src/task_manager/thread_utils.cpp",
"src/timer/core/timer_core.cpp",
"src/timer/steady_clock.cpp",
"src/timer/time_broker.cpp",
"src/timer/camera_deferred_timer.cpp",
"utils/av_codec/src/av_codec_proxy.cpp",
"utils/camera_dynamic_loader.cpp",
"utils/camera_metadata.cpp",
"utils/camera_notification/src/camera_notification_proxy.cpp",
"utils/camera_server_photo_proxy.cpp",
"utils/camera_simple_timer.cpp",
"utils/camera_timer.cpp",
"utils/camera_xcollie.cpp",
"utils/camera_extend/src/camera_extend_proxy.cpp",
"utils/media_manager/src/media_manager_proxy.cpp",
"utils/media_stream/src/recorder_engine_proxy.cpp",
"utils/movie_file/src/movie_file_proxy.cpp",
"utils/moving_photo/src/moving_photo_proxy.cpp",
"utils/media_capability_proxy.cpp",
"utils/photo_asset_proxy.cpp",
"utils/picture_proxy.cpp",
"utils/watermark_exif_metadata/src/watermark_exif_metadata_proxy.cpp",
"utils/xcomponent_controller/src/xcomponent_controller_proxy.cpp",
"utils/image_effect/src/image_effect_proxy.cpp",
"utils/camera_xml_parser.cpp",
"utils/watermark_util.cpp",
]
common_external_deps = [
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"graphic_surface:surface",
"hilog:libhilog",
"hisysevent:libhisysevent",
"hitrace:hitrace_meter",
"media_library:media_library_camera_helper",
"ipc:ipc_core",
"samgr:samgr_proxy",
"drivers_interface_camera:libbuffer_handle_sequenceable_1.0",
"drivers_interface_camera:libmap_data_sequenceable_1.0",
"drivers_interface_camera:metadata",
"drivers_interface_display:libdisplay_commontype_proxy_1.0",
"drivers_interface_display:libdisplay_commontype_proxy_2.1",
"drivers_interface_display:libdisplay_composer_hdi_impl_1.3",
"graphic_surface:surface",
"hilog:libhilog",
"hisysevent:libhisysevent",
"hitrace:hitrace_meter",
"image_framework:image_native",
"ipc:ipc_core",
"libxml2:libxml2",
"media_foundation:media_foundation",
"media_foundation:native_media_core",
"samgr:samgr_proxy",
]
ohos_shared_library("camera_utils") {
sanitize = {
cfi = true
cfi_cross_dso = true
debug = false
}
branch_protector_ret = "pac_ret"
cflags = [
"-Werror",
"-Os",
]
deps = [
"${multimedia_camera_framework_path}/services/camera_service/idls:camera_service_idl_interface",
"${multimedia_camera_framework_path}/services/deferred_processing_service/idls:deferred_processing_service_idl_interface",
]
external_deps = common_external_deps
sources = common_sources
defines = []
if (hicollie_enable) {
external_deps += [ "hicollie:libhicollie" ]
defines += [ "HICOLLIE_ENABLE" ]
}
if (use_power_manager) {
external_deps += [ "power_manager:powermgr_client" ]
defines += [ "CAMERA_USE_POWER" ]
}
if (camera_framework_feature_capture_yuv) {
defines += [ "CAMERA_CAPTURE_YUV" ]
}
public_configs = [
":camera_utils_config",
"${multimedia_camera_framework_path}/services/camera_service/idls:camera_sa_idl_config",
"${multimedia_camera_framework_path}/services/deferred_processing_service/idls:deferred_processing_service_idl_config",
]
part_name = "camera_framework"
subsystem_name = "multimedia"
}
ohos_static_library("camera_utils_static") {
configs = [ ":optimize_size" ]
sanitize = {
cfi = true
cfi_cross_dso = true
debug = false
}
branch_protector_ret = "pac_ret"
cflags = [
"-Werror",
"-Os",
]
sources = common_sources
deps = [
"${multimedia_camera_framework_path}/services/camera_service/idls:camera_service_idl_interface",
"${multimedia_camera_framework_path}/services/deferred_processing_service/idls:deferred_processing_service_idl_interface",
]
external_deps = common_external_deps
defines = []
if (hicollie_enable) {
external_deps += [ "hicollie:libhicollie" ]
defines += [ "HICOLLIE_ENABLE" ]
}
if (use_power_manager) {
external_deps += [ "power_manager:powermgr_client" ]
defines += [ "CAMERA_USE_POWER" ]
}
public_configs = [
":camera_utils_config",
"${multimedia_camera_framework_path}/services/camera_service/idls:camera_sa_idl_config",
"${multimedia_camera_framework_path}/services/deferred_processing_service/idls:deferred_processing_service_idl_config",
]
part_name = "camera_framework"
subsystem_name = "multimedia"
}