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