• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2024 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("//build/ohos/ace/ace.gni")
16import("./../../multimedia_camera_framework.gni")
17
18config("camera_ffi_public_config") {
19  visibility = [ ":*" ]
20  include_dirs = [ "include" ]
21}
22
23ohos_shared_library("cj_camera_ffi") {
24  branch_protector_ret = "pac_ret"
25
26  public_configs = [ ":camera_ffi_public_config" ]
27  include_dirs = [
28    "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include",
29    "${multimedia_camera_framework_path}/services/camera_service/include",
30    "${multimedia_camera_framework_path}/frameworks/native/camera/include",
31    "${multimedia_camera_framework_path}/services/camera_service/binder/base/include/",
32    "${multimedia_camera_framework_path}/services/camera_service/binder/client/include",
33    "${multimedia_camera_framework_path}/services/camera_service/binder/server/include",
34    "${multimedia_camera_framework_path}/interfaces/innerkits/include",
35    "${multimedia_camera_framework_path}/frameworks/cj/camera/include",
36  ]
37
38  sanitize = {
39    cfi = true
40    cfi_cross_dso = true
41    debug = false
42  }
43  cflags = [ "-fPIC" ]
44  cflags_cc = cflags
45
46  if (!defined(defines)) {
47    defines = []
48  }
49
50  if (!ohos_indep_compiler_enable && !build_ohos_sdk &&
51      product_name != "qemu-arm-linux-min" &&
52      product_name != "rk3568_mini_system") {
53    deps = [ "${multimedia_camera_framework_path}/frameworks/native/camera/base:camera_framework" ]
54    external_deps = [
55      "ability_base:base",
56      "ability_base:configuration",  # configuration.h
57      "ability_base:want",
58      "ability_runtime:ability_context_native",  # ability_context.h
59      "ability_runtime:ability_manager",  # pixel_map.h
60      "ability_runtime:napi_base_context",  # napi_base_context.h
61      "ace_engine:ace_uicontent",
62      "c_utils:utils",
63      "drivers_interface_camera:libbuffer_handle_sequenceable_1.0",
64      "drivers_interface_camera:libcamera_proxy_1.0",
65      "drivers_interface_camera:libcamera_proxy_1.1",
66      "drivers_interface_camera:libmap_data_sequenceable_1.0",
67      "graphic_surface:surface",
68      "hilog:libhilog",
69      "hisysevent:libhisysevent",
70      "hitrace:hitrace_meter",
71      "image_framework:image",
72      "image_framework:image_native",
73      "ipc:ipc_core",
74      "napi:ace_napi",
75      "napi:cj_bind_ffi",
76      "napi:cj_bind_native",
77    ]
78    sources = [
79      "camera/src/camera_ffi.cpp",
80      "camera/src/camera_input_impl.cpp",
81      "camera/src/camera_manager_impl.cpp",
82      "camera/src/camera_session_impl.cpp",
83      "camera/src/camera_utils.cpp",
84      "camera/src/metadata_output_impl.cpp",
85      "camera/src/photo_output_impl.cpp",
86      "camera/src/preview_output_impl.cpp",
87      "camera/src/video_output_impl.cpp",
88    ]
89  } else {
90    defines += [ "PREVIEWER" ]
91
92    external_deps = [ "napi:cj_bind_ffi" ]
93  }
94
95  if (is_ohos) {
96    defines += [ "OHOS_PLATFORM" ]
97  }
98
99  innerapi_tags = [ "platformsdk" ]
100
101  subsystem_name = "multimedia"
102  part_name = "camera_framework"
103}
104
105ohos_shared_library("cj_camera_picker_ffi") {
106  branch_protector_ret = "pac_ret"
107
108  public_configs = [ ":camera_ffi_public_config" ]
109  include_dirs = [
110    "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include",
111    "${multimedia_camera_framework_path}/services/camera_service/include",
112    "${multimedia_camera_framework_path}/frameworks/native/camera/include",
113    "${multimedia_camera_framework_path}/services/camera_service/binder/base/include/",
114    "${multimedia_camera_framework_path}/services/camera_service/binder/client/include",
115    "${multimedia_camera_framework_path}/services/camera_service/binder/server/include",
116    "${multimedia_camera_framework_path}/interfaces/innerkits/include",
117    "${multimedia_camera_framework_path}/frameworks/cj/camera_picker/include",
118  ]
119
120  sanitize = {
121    cfi = true
122    cfi_cross_dso = true
123    debug = false
124  }
125  cflags = [ "-fPIC" ]
126  cflags_cc = cflags
127
128  if (!defined(defines)) {
129    defines = []
130  }
131
132  if (!ohos_indep_compiler_enable && !build_ohos_sdk &&
133      product_name != "qemu-arm-linux-min" &&
134      product_name != "rk3568_mini_system") {
135    deps = [
136      ":cj_camera_ffi",
137      "${multimedia_camera_framework_path}/frameworks/native/camera/base:camera_framework",
138    ]
139    external_deps = [
140      "ability_base:base",
141      "ability_base:configuration",  # configuration.h
142      "ability_base:want",
143      "ability_runtime:ability_context_native",  # ability_context.h
144      "ability_runtime:ability_manager",  # pixel_map.h
145      "ability_runtime:napi_base_context",  # napi_base_context.h
146      "ability_runtime:ui_extension",  # ui_extension_context.h
147      "ace_engine:ace_uicontent",
148      "c_utils:utils",
149      "drivers_interface_camera:libbuffer_handle_sequenceable_1.0",
150      "drivers_interface_camera:libcamera_proxy_1.0",
151      "drivers_interface_camera:libcamera_proxy_1.1",
152      "drivers_interface_camera:libmap_data_sequenceable_1.0",
153      "graphic_surface:surface",
154      "hilog:libhilog",
155      "hisysevent:libhisysevent",
156      "hitrace:hitrace_meter",
157      "image_framework:image",
158      "image_framework:image_native",
159      "ipc:ipc_core",
160      "napi:ace_napi",
161      "napi:cj_bind_ffi",
162      "napi:cj_bind_native",
163    ]
164    sources = [
165      "camera_picker/src/camera_picker_ffi.cpp",
166      "camera_picker/src/camera_picker_impl.cpp",
167    ]
168  } else {
169    defines += [ "PREVIEWER" ]
170
171    external_deps = [ "napi:cj_bind_ffi" ]
172  }
173
174  if (is_ohos) {
175    defines += [ "OHOS_PLATFORM" ]
176  }
177
178  innerapi_tags = [ "platformsdk" ]
179
180  subsystem_name = "multimedia"
181  part_name = "camera_framework"
182}
183