1# Copyright (c) 2025 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. 13 14import("//build/ohos.gni") 15import("./../../../../multimedia_camera_framework.gni") 16 17config("camera_framework_public_config") { 18 include_dirs = [ 19 "${multimedia_camera_framework_path}/frameworks/native/camera/extension/include", 20 "${multimedia_camera_framework_path}/frameworks/native/camera/extension/include/input", 21 "${multimedia_camera_framework_path}/frameworks/native/camera/extension/include/session", 22 "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include", 23 "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include/input", 24 "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include/output", 25 "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include/session", 26 "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include/deferred_proc_session", 27 "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include/utils", 28 "../interfaces/inner_api/native/camera/include/mode", 29 "../../../interfaces/inner_api/native/camera/include/utils", 30 ] 31} 32 33config("camera_framework_local_config") { 34 include_dirs = [ 35 "${multimedia_camera_framework_path}/services/camera_service/include", 36 "${multimedia_camera_framework_path}/services/camera_service/binder/base/include", 37 "${multimedia_camera_framework_path}/services/camera_service/binder/client/include", 38 "${multimedia_camera_framework_path}/services/camera_service/binder/server/include", 39 "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include", 40 "${multimedia_camera_framework_path}/common/utils", 41 "${multimedia_camera_framework_path}/services/deferred_processing_service/include/base", 42 "${multimedia_camera_framework_path}/services/deferred_processing_service/include/utils", 43 "${multimedia_camera_framework_path}/services/deferred_processing_service/binder/base/include", 44 "${multimedia_camera_framework_path}/services/deferred_processing_service/binder/client/include", 45 "${multimedia_camera_framework_path}/services/deferred_processing_service/binder/server/include", 46 "${multimedia_camera_framework_path}/services/deferred_processing_service/include/session", 47 "${multimedia_camera_framework_path}/services/deferred_processing_service/include/session/photo_session", 48 "${multimedia_camera_framework_path}/services/deferred_processing_service/include/session/video_session", 49 ] 50} 51 52ohos_shared_library("camera_framework_ex") { 53 branch_protector_ret = "pac_ret" 54 install_enable = true 55 sources = [ 56 "src/input/camera_manager_for_sys.cpp", 57 "src/output/depth_data_output.cpp", 58 "src/session/aperture_video_session.cpp", 59 "src/session/capture_session_for_sys.cpp", 60 "src/session/fluorescence_photo_session.cpp", 61 "src/session/high_res_photo_session.cpp", 62 "src/session/light_painting_session.cpp", 63 "src/session/macro_photo_session.cpp", 64 "src/session/macro_video_session.cpp", 65 "src/session/night_session.cpp", 66 "src/session/panorama_session.cpp", 67 "src/session/photo_session_for_sys.cpp", 68 "src/session/portrait_session.cpp", 69 "src/session/profession_session.cpp", 70 "src/session/quick_shot_photo_session.cpp", 71 "src/session/secure_camera_session_for_sys.cpp", 72 "src/session/slow_motion_session.cpp", 73 "src/session/time_lapse_photo_session.cpp", 74 "src/session/video_session_for_sys.cpp", 75 ] 76 77 cflags = [ 78 "-fPIC", 79 "-Wall", 80 "-DSUPPORT_CAMERA_AUTH", 81 "-DIMAGE_COLORSPACE_FLAG", 82 "-Os", 83 "-fno-merge-all-constants", 84 "-flto", 85 "-ffunction-sections" 86 ] 87 88 ldflags = [ 89 "-Wl,--gc-sections", 90 "-fPIE", 91 ] 92 93 if (target_cpu == "arm") { 94 cflags += [ "-DBINDER_IPC_32BIT" ] 95 } 96 if (build_variant == "user") { 97 cflags += [ "-DIS_RELEASE_VERSION" ] 98 } 99 sanitize = { 100 cfi = true 101 cfi_cross_dso = true 102 debug = false 103 } 104 105 public_configs = [ 106 ":camera_framework_public_config", 107 ":camera_framework_local_config", 108 "${multimedia_camera_framework_path}/services/camera_service/idls:camera_sa_idl_config", 109 "${multimedia_camera_framework_path}/services/deferred_processing_service/idls:deferred_processing_service_idl_config", 110 ] 111 112 public_external_deps = [ "drivers_interface_camera:metadata" ] 113 114 deps = [ 115 "${multimedia_camera_framework_path}/common:camera_utils", 116 "${multimedia_camera_framework_path}/frameworks/native/camera/base:camera_framework", 117 ] 118 119 external_deps = [ 120 "c_utils:utils", 121 "drivers_interface_camera:libcamera_proxy_1.0", 122 "drivers_interface_camera:libcamera_proxy_1.1", 123 "drivers_interface_camera:libcamera_proxy_1.2", 124 "drivers_interface_camera:libcamera_proxy_1.3", 125 "graphic_surface:surface", 126 "hilog:libhilog", 127 "hisysevent:libhisysevent", 128 "hitrace:hitrace_meter", 129 "image_framework:image_native", 130 "ipc:ipc_core", 131 132 ] 133 134 defines = [] 135 if (use_sensor) { 136 external_deps += [ "sensor:sensor_interface_native" ] 137 defines += [ "CAMERA_USE_SENSOR" ] 138 } 139 140 if (is_emulator) { 141 defines += [ "CAMERA_EMULATOR" ] 142 } 143 144 cflags_cc = cflags 145 innerapi_tags = [ "platformsdk" ] 146 part_name = "camera_framework" 147 subsystem_name = "multimedia" 148} 149