• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2025-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("cmd/signature_tools_cmd.gni")
15import("codesigning/signature_tools_codesigning.gni")
16import("common/signature_tools_common.gni")
17import("hap/signature_tools_hap.gni")
18import("profile/signature_tools_profile.gni")
19import("signature_tools.gni")
20import("signer/binary_sign_tool_signer.gni")
21import("utils/signature_tools_utils.gni")
22
23import("//build/ohos.gni")
24ohos_copy("copy_signature_tools_resource") {
25  sources = [
26    "../dist/OpenHarmony.p12",
27    "../dist/OpenHarmonyApplication.pem",
28    "../dist/OpenHarmonyProfileDebug.pem",
29    "../dist/OpenHarmonyProfileRelease.pem",
30    "../dist/SgnedReleaseProfileTemplate.p7b",
31    "../dist/UnsgnedDebugProfileTemplate.json",
32    "../dist/UnsgnedReleasedProfileTemplate.json",
33  ]
34  outputs =
35      [ "${target_out_dir}/toolchains/hapsigntool_pc/{{source_file_part}}" ]
36  module_source_dir = target_out_dir + "/toolchains/hapsigntool_pc"
37  module_install_name = ""
38  part_name = "hapsigner"
39  subsystem_name = "developtools"
40}
41
42signature_tools_main_include = [
43  "${signature_tools_api}/include",
44  "//third_party/openssl/include",
45  "//third_party/openssl/crypto/pkcs12",
46]
47
48signature_tools_main_src = [
49  "main.cpp",
50  "${signature_tools_api}/src/sign_tool_service_impl.cpp",
51]
52
53ohos_executable("binary-sign-tool") {
54  signature_tools_main_include += signature_tools_utils_include
55
56  signature_tools_main_include += signature_tools_codesigning_include
57  signature_tools_main_include += signature_tools_common_include
58  signature_tools_main_include += signature_tools_hap_include
59  signature_tools_main_include += signature_tools_profile_include
60  signature_tools_main_include += binary_sign_tool_signer_include
61  signature_tools_main_include += signature_tools_cmd_include
62
63  # 在 //developtools/signaturetools/services/utils 模块里面定义编译脚本 signature_tools_utils.gni
64  signature_tools_main_src += signature_tools_utils_src
65  signature_tools_main_src += signature_tools_codesigning_src
66  signature_tools_main_src += signature_tools_common_src
67  signature_tools_main_src += signature_tools_hap_src
68  signature_tools_main_src += signature_tools_profile_src
69  signature_tools_main_src += binary_sign_tool_signer_src
70  signature_tools_main_src += signature_tools_cmd_src
71
72  include_dirs = signature_tools_main_include
73  sources = signature_tools_main_src
74
75  deps = [
76  ]
77
78  external_deps = [
79    "bounds_checking_function:libsec_static",
80    "elfio:elfio",
81    "json:nlohmann_json_static",
82    "openssl:libcrypto_static",
83    "openssl:libssl_static",
84  ]
85
86  cflags_cc = [
87    "-std=c++17",
88    "-fno-rtti",
89  ]
90
91  cflags = [
92    "-fno-rtti",
93    "-Wno-c++20-extensions",
94  ]
95
96  install_images = [ "system" ]
97  install_enable = false
98  part_name = "hapsigner"
99  subsystem_name = "developtools"
100}
101