mirror of
https://github.com/openharmony/developtools_syscap_codec.git
synced 2026-08-27 10:21:25 -04:00
ced2010814
This reverts commit ea04662f70.
Signed-off-by: haotuo <haotuo@huawei.com>
179 lines
4.7 KiB
Plaintext
179 lines
4.7 KiB
Plaintext
# Copyright (C) 2022 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/lite/config/component/lite_component.gni")
|
|
import("//build/ohos.gni")
|
|
import("config.gni")
|
|
|
|
config("internal") {
|
|
include_dirs = [ "include" ]
|
|
include_dirs += [ syscap_codec_config_path ]
|
|
}
|
|
|
|
sources_platform_common = [
|
|
"./src/syscap_tool.c",
|
|
"./src/create_pcid.c",
|
|
"./src/endian_internal.c",
|
|
]
|
|
|
|
ohos_executable("syscap_define_check_bin") {
|
|
configs = [ ":internal" ]
|
|
sources = [ "./test/syscap_define_check.c" ]
|
|
|
|
if (is_mingw) {
|
|
defines = [ "_POSIX_" ]
|
|
}
|
|
|
|
subsystem_name = "developtools"
|
|
part_name = "syscap_codec"
|
|
}
|
|
|
|
build_ext_component("syscap_define_check") {
|
|
deps = [ ":syscap_define_check_bin(//build/toolchain/linux:clang_x64)" ]
|
|
exec_path = rebase_path(root_out_dir)
|
|
|
|
if (defined(ohos_lite)) {
|
|
cmd = "${exec_path}/clang_x64/syscap_define_check_bin"
|
|
} else {
|
|
cmd = "${exec_path}/clang_x64/developtools/syscap_codec/syscap_define_check_bin"
|
|
}
|
|
|
|
command = "chmod 777 $cmd && $cmd"
|
|
}
|
|
|
|
ohos_executable("syscap_tool_bin") {
|
|
output_name = "syscap_tool"
|
|
install_enable = true
|
|
include_dirs = [ "src" ]
|
|
configs = [ ":internal" ]
|
|
defines = []
|
|
|
|
if (is_mingw) {
|
|
defines += [ "_POSIX_" ]
|
|
}
|
|
if (defined(ohos_lite) && ohos_kernel_type == "liteos_m") {
|
|
cflags = [ "-DPATH_MAX=1024" ]
|
|
}
|
|
sources = [ "./src/main.c" ]
|
|
sources += sources_platform_common
|
|
|
|
deps = [ "//third_party/bounds_checking_function:libsec_static" ]
|
|
|
|
if (defined(ohos_lite)) {
|
|
deps += [ "//build/lite/config/component/cJSON:cjson_static" ]
|
|
} else {
|
|
deps += [ "//third_party/cJSON:cjson_static" ]
|
|
}
|
|
|
|
subsystem_name = "developtools"
|
|
part_name = "syscap_codec"
|
|
}
|
|
|
|
config("syscap_interface_public_config") {
|
|
include_dirs = [ "./interfaces/inner_api/" ]
|
|
}
|
|
|
|
if (defined(ohos_lite)) {
|
|
if (ohos_kernel_type == "liteos_m") {
|
|
group("syscap_interface_shared") {
|
|
}
|
|
} else {
|
|
shared_library("syscap_interface_shared") {
|
|
_version_script = rebase_path("libsyscap_interface_shared.versionscript")
|
|
if (!defined(ldflags)) {
|
|
ldflags = []
|
|
}
|
|
ldflags += [
|
|
"-rdynamic",
|
|
"-Wl,--version-script=${_version_script}",
|
|
]
|
|
|
|
include_dirs = [ "src" ]
|
|
configs += [ ":internal" ]
|
|
public_configs = [ ":syscap_interface_public_config" ]
|
|
sources = [
|
|
"./interfaces/inner_api/syscap_interface.c",
|
|
"./src/endian_internal.c",
|
|
"./src/syscap_tool.c",
|
|
]
|
|
|
|
deps = [
|
|
"//build/lite/config/component/cJSON:cjson_static",
|
|
"//third_party/bounds_checking_function:libsec_static",
|
|
]
|
|
}
|
|
}
|
|
} else {
|
|
ohos_shared_library("syscap_interface_shared") {
|
|
version_script = "libsyscap_interface_shared.versionscript"
|
|
include_dirs = [ "src" ]
|
|
configs = [ ":internal" ]
|
|
public_configs = [ ":syscap_interface_public_config" ]
|
|
sources = [
|
|
"./interfaces/inner_api/syscap_interface.c",
|
|
"./src/endian_internal.c",
|
|
"./src/syscap_tool.c",
|
|
]
|
|
deps = [
|
|
"//third_party/bounds_checking_function:libsec_static",
|
|
"//third_party/cJSON:cjson_static",
|
|
]
|
|
|
|
subsystem_name = "developtools"
|
|
part_name = "syscap_codec"
|
|
}
|
|
}
|
|
|
|
group("syscap_tool_bin_linux") {
|
|
deps = [ ":syscap_tool_bin(//build/toolchain/linux:clang_x64)" ]
|
|
}
|
|
|
|
build_ext_component("generate_pcid") {
|
|
outputs = [ "$root_out_dir/PCID.sc" ]
|
|
deps = [ ":syscap_tool_bin_linux" ]
|
|
exec_path = rebase_path(root_out_dir)
|
|
preload_path = rebase_path(preloader_output_dir)
|
|
if (defined(ohos_lite)) {
|
|
cmd = "${exec_path}/clang_x64/syscap_tool"
|
|
} else {
|
|
cmd = "${exec_path}/clang_x64/developtools/syscap_codec/syscap_tool"
|
|
}
|
|
command = "chmod 777 $cmd"
|
|
command +=
|
|
" && $cmd -P -e -i ${preload_path}/system/etc/SystemCapability.json"
|
|
if (defined(ohos_lite)) {
|
|
command += " && mkdir -p $exec_path/system/etc && cp $exec_path/PCID.sc $exec_path/system/etc/PCID.sc"
|
|
}
|
|
}
|
|
|
|
ohos_prebuilt_etc("PCID.sc") {
|
|
deps = [ ":generate_pcid" ]
|
|
source = "$root_out_dir/PCID.sc"
|
|
part_name = "syscap_codec"
|
|
}
|
|
|
|
group("pcid_sc") {
|
|
deps = [ ":PCID.sc" ]
|
|
}
|
|
|
|
group("syscap_codec") {
|
|
deps = [
|
|
":pcid_sc",
|
|
":syscap_define_check",
|
|
":syscap_interface_shared",
|
|
]
|
|
if (support_jsapi && is_standard_system) {
|
|
deps += [ "napi:systemcapability" ]
|
|
}
|
|
}
|