1bae44755Sopenharmony_ci# Copyright (C) 2022-2022 Huawei Device Co., Ltd.
2bae44755Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3bae44755Sopenharmony_ci# you may not use this file except in compliance with the License.
4bae44755Sopenharmony_ci# You may obtain a copy of the License at
5bae44755Sopenharmony_ci#
6bae44755Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7bae44755Sopenharmony_ci#
8bae44755Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9bae44755Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10bae44755Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11bae44755Sopenharmony_ci# See the License for the specific language governing permissions and
12bae44755Sopenharmony_ci# limitations under the License.
13bae44755Sopenharmony_ci
14bae44755Sopenharmony_ciimport("//build/ohos.gni")
15bae44755Sopenharmony_ciimport("//build/ohos/ace/ace.gni")
16bae44755Sopenharmony_ciimport("../config.gni")
17bae44755Sopenharmony_ci
18bae44755Sopenharmony_cibase_output_path = get_label_info(":query_syscap", "target_out_dir")
19bae44755Sopenharmony_ciquery_syscap_obj_path = base_output_path + "/query_syscap.o"
20bae44755Sopenharmony_ci
21bae44755Sopenharmony_cigen_js_obj("query_syscap_js") {
22bae44755Sopenharmony_ci  input = "query_syscap.js"
23bae44755Sopenharmony_ci  output = query_syscap_obj_path
24bae44755Sopenharmony_ci}
25bae44755Sopenharmony_ci
26bae44755Sopenharmony_cisources_platform_common = [
27bae44755Sopenharmony_ci  "../src/syscap_tool.c",
28bae44755Sopenharmony_ci  "../src/create_pcid.c",
29bae44755Sopenharmony_ci  "../src/endian_internal.c",
30bae44755Sopenharmony_ci  "../src/context_tool.c",
31bae44755Sopenharmony_ci  "../interfaces/inner_api/syscap_interface.c",
32bae44755Sopenharmony_ci]
33bae44755Sopenharmony_ci
34bae44755Sopenharmony_ciohos_shared_library("systemcapability") {
35bae44755Sopenharmony_ci  include_dirs = [
36bae44755Sopenharmony_ci    "../src",
37bae44755Sopenharmony_ci    "../interfaces/inner_api",
38bae44755Sopenharmony_ci    "../include",
39bae44755Sopenharmony_ci  ]
40bae44755Sopenharmony_ci  include_dirs += [ syscap_codec_config_path ]
41bae44755Sopenharmony_ci
42bae44755Sopenharmony_ci  sources = [ "napi_query_syscap.cpp" ]
43bae44755Sopenharmony_ci  sources += sources_platform_common
44bae44755Sopenharmony_ci
45bae44755Sopenharmony_ci  deps = [ ":query_syscap_js" ]
46bae44755Sopenharmony_ci  external_deps = [
47bae44755Sopenharmony_ci    "bounds_checking_function:libsec_static",
48bae44755Sopenharmony_ci    "napi:ace_napi",
49bae44755Sopenharmony_ci  ]
50bae44755Sopenharmony_ci
51bae44755Sopenharmony_ci  if (syscap_codec_config_extern_path != "") {
52bae44755Sopenharmony_ci    deps += [ "..:gen_syscap_define_custom" ]
53bae44755Sopenharmony_ci    inputs = [ "${root_build_dir}/syscap_define_custom.h" ]
54bae44755Sopenharmony_ci    include_dirs += [ "${root_build_dir}" ]
55bae44755Sopenharmony_ci    cflags = [ "-DSYSCAP_DEFINE_EXTERN_ENABLE" ]
56bae44755Sopenharmony_ci  }
57bae44755Sopenharmony_ci
58bae44755Sopenharmony_ci  if (defined(ohos_lite)) {
59bae44755Sopenharmony_ci    deps += [ "//build/lite/config/component/cJSON:cjson_static" ]
60bae44755Sopenharmony_ci  } else {
61bae44755Sopenharmony_ci    external_deps += [ "cJSON:cjson_static" ]
62bae44755Sopenharmony_ci  }
63bae44755Sopenharmony_ci
64bae44755Sopenharmony_ci  relative_install_dir = "module"
65bae44755Sopenharmony_ci  subsystem_name = "developtools"
66bae44755Sopenharmony_ci  part_name = "syscap_codec"
67bae44755Sopenharmony_ci}
68