• 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: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:libcamera_proxy_1.0",
64      "drivers_interface_camera:libcamera_proxy_1.1",
65      "graphic_surface:surface",
66      "hilog:libhilog",
67      "hisysevent:libhisysevent",
68      "hitrace:hitrace_meter",
69      "image_framework:image",
70      "image_framework:image_native",
71      "ipc:ipc_core",
72      "napi:ace_napi",
73      "napi:cj_bind_ffi",
74      "napi:cj_bind_native",
75    ]
76    sources = [
77      "camera/src/camera_ffi.cpp",
78      "camera/src/camera_input_impl.cpp",
79      "camera/src/camera_manager_impl.cpp",
80      "camera/src/camera_session_impl.cpp",
81      "camera/src/camera_utils.cpp",
82      "camera/src/metadata_output_impl.cpp",
83      "camera/src/photo_output_impl.cpp",
84      "camera/src/preview_output_impl.cpp",
85      "camera/src/video_output_impl.cpp",
86    ]
87  } else {
88    defines += [ "PREVIEWER" ]
89
90    external_deps = [ "napi:cj_bind_ffi" ]
91  }
92
93  if (is_ohos) {
94    defines += [ "OHOS_PLATFORM" ]
95  }
96
97  innerapi_tags = [ "platformsdk" ]
98
99  subsystem_name = "multimedia"
100  part_name = "camera_framework"
101}
102
103ohos_shared_library("cj_camera_picker_ffi") {
104  branch_protector_ret = "pac_ret"
105
106  public_configs = [ ":camera_ffi_public_config" ]
107  include_dirs = [
108    "${multimedia_camera_framework_path}/interfaces/inner_api/native/camera/include",
109    "${multimedia_camera_framework_path}/services/camera_service/include",
110    "${multimedia_camera_framework_path}/frameworks/native/camera/include",
111    "${multimedia_camera_framework_path}/services/camera_service/binder/base/include/",
112    "${multimedia_camera_framework_path}/services/camera_service/binder/client/include",
113    "${multimedia_camera_framework_path}/services/camera_service/binder/server/include",
114    "${multimedia_camera_framework_path}/interfaces/innerkits/include",
115    "${multimedia_camera_framework_path}/frameworks/cj/camera_picker/include",
116  ]
117
118  sanitize = {
119    cfi = true
120    cfi_cross_dso = true
121    debug = false
122  }
123  cflags = [ "-fPIC" ]
124  cflags_cc = cflags
125
126  if (!defined(defines)) {
127    defines = []
128  }
129
130  if (!ohos_indep_compiler_enable && !build_ohos_sdk &&
131      product_name != "qemu-arm-linux-min" &&
132      product_name != "rk3568_mini_system") {
133    deps = [
134      ":cj_camera_ffi",
135      "${multimedia_camera_framework_path}/frameworks/native/camera:camera_framework",
136    ]
137    external_deps = [
138      "ability_base:base",
139      "ability_base:configuration",  # configuration.h
140      "ability_base:want",
141      "ability_runtime:ability_context_native",  # ability_context.h
142      "ability_runtime:ability_manager",  # pixel_map.h
143      "ability_runtime:napi_base_context",  # napi_base_context.h
144      "ability_runtime:ui_extension",  # ui_extension_context.h
145      "ace_engine:ace_uicontent",
146      "c_utils:utils",
147      "drivers_interface_camera:libcamera_proxy_1.0",
148      "drivers_interface_camera:libcamera_proxy_1.1",
149      "graphic_surface:surface",
150      "hilog:libhilog",
151      "hisysevent:libhisysevent",
152      "hitrace:hitrace_meter",
153      "image_framework:image",
154      "image_framework:image_native",
155      "ipc:ipc_core",
156      "napi:ace_napi",
157      "napi:cj_bind_ffi",
158      "napi:cj_bind_native",
159    ]
160    sources = [
161      "camera_picker/src/camera_picker_ffi.cpp",
162      "camera_picker/src/camera_picker_impl.cpp",
163    ]
164  } else {
165    defines += [ "PREVIEWER" ]
166
167    external_deps = [ "napi:cj_bind_ffi" ]
168  }
169
170  if (is_ohos) {
171    defines += [ "OHOS_PLATFORM" ]
172  }
173
174  innerapi_tags = [ "platformsdk" ]
175
176  subsystem_name = "multimedia"
177  part_name = "camera_framework"
178}
179