xref: /build/lite/config/hap_pack.gni (revision 5f9996aa)
15f9996aaSopenharmony_ci# Copyright (c) 2020 Huawei Device Co., Ltd.
25f9996aaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
35f9996aaSopenharmony_ci# you may not use this file except in compliance with the License.
45f9996aaSopenharmony_ci# You may obtain a copy of the License at
55f9996aaSopenharmony_ci#
65f9996aaSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
75f9996aaSopenharmony_ci#
85f9996aaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
95f9996aaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
105f9996aaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
115f9996aaSopenharmony_ci# See the License for the specific language governing permissions and
125f9996aaSopenharmony_ci# limitations under the License.
135f9996aaSopenharmony_ci
145f9996aaSopenharmony_ciimport("//build/lite/config/subsystem/aafwk/path.gni")
155f9996aaSopenharmony_ci
165f9996aaSopenharmony_cideclare_args() {
175f9996aaSopenharmony_ci  ohos_sign_haps_by_server = false
185f9996aaSopenharmony_ci  hapsigner = "//developtools/hapsigner/dist/hap-sign-tool.jar"
195f9996aaSopenharmony_ci  packtool =
205f9996aaSopenharmony_ci      "${root_out_dir}/obj/developtools/packing_tool/jar/app_packing_tool.jar"
215f9996aaSopenharmony_ci  jks_file = "//developtools/hapsigner/dist/OpenHarmony.p12"
225f9996aaSopenharmony_ci  cert_file = "//developtools/hapsigner/dist/OpenHarmonyApplication.pem"
235f9996aaSopenharmony_ci  default_hap_signature_algorithm = "SHA256withECDSA"
245f9996aaSopenharmony_ci  sign_server = "rnd-signserver.huawei.com"
255f9996aaSopenharmony_ci  privatekey = "OpenHarmony Application Release"
265f9996aaSopenharmony_ci  keystorepasswd = "123456"
275f9996aaSopenharmony_ci}
285f9996aaSopenharmony_ci
295f9996aaSopenharmony_citemplate("hap_pack") {
305f9996aaSopenharmony_ci  assert(defined(invoker.cert_profile), "cert_profile in required.")
315f9996aaSopenharmony_ci  assert(defined(invoker.hap_name), "hap_name in required.")
325f9996aaSopenharmony_ci  assert(defined(invoker.privatekey), "privatekey in required.")
335f9996aaSopenharmony_ci
345f9996aaSopenharmony_ci  if (ohos_sign_haps_by_server == false) {
355f9996aaSopenharmony_ci    invoker.privatekey = "OpenHarmony Application Release"
365f9996aaSopenharmony_ci  }
375f9996aaSopenharmony_ci
385f9996aaSopenharmony_ci  unsignhap_path =
395f9996aaSopenharmony_ci      "$root_out_dir/system/internal/unsigned_${invoker.hap_name}.hap"
405f9996aaSopenharmony_ci  signhap_path = "$root_out_dir/system/internal/${invoker.hap_name}.hap"
415f9996aaSopenharmony_ci
425f9996aaSopenharmony_ci  action(target_name) {
435f9996aaSopenharmony_ci    if (defined(invoker.deps)) {
445f9996aaSopenharmony_ci      deps = []
455f9996aaSopenharmony_ci      deps += invoker.deps
465f9996aaSopenharmony_ci    }
475f9996aaSopenharmony_ci    _pack_tool_deps = [ "//developtools/packing_tool:packing_tool" ]
485f9996aaSopenharmony_ci    if (defined(deps)) {
495f9996aaSopenharmony_ci      deps += _pack_tool_deps
505f9996aaSopenharmony_ci    } else {
515f9996aaSopenharmony_ci      deps = _pack_tool_deps
525f9996aaSopenharmony_ci    }
535f9996aaSopenharmony_ci    script = "//build/lite/hap_pack.py"
545f9996aaSopenharmony_ci    args = [
555f9996aaSopenharmony_ci      "--packing-tool-path",
565f9996aaSopenharmony_ci      rebase_path(packtool),
575f9996aaSopenharmony_ci    ]
585f9996aaSopenharmony_ci    if (defined(invoker.mode)) {
595f9996aaSopenharmony_ci      args += [
605f9996aaSopenharmony_ci        "--mode",
615f9996aaSopenharmony_ci        invoker.mode,
625f9996aaSopenharmony_ci      ]
635f9996aaSopenharmony_ci    }
645f9996aaSopenharmony_ci    if (defined(invoker.json_path)) {
655f9996aaSopenharmony_ci      args += [
665f9996aaSopenharmony_ci        "--json-path",
675f9996aaSopenharmony_ci        rebase_path(invoker.json_path),
685f9996aaSopenharmony_ci      ]
695f9996aaSopenharmony_ci    }
705f9996aaSopenharmony_ci    if (defined(invoker.resources_path)) {
715f9996aaSopenharmony_ci      args += [
725f9996aaSopenharmony_ci        "--resources-path",
735f9996aaSopenharmony_ci        rebase_path(invoker.resources_path),
745f9996aaSopenharmony_ci      ]
755f9996aaSopenharmony_ci    }
765f9996aaSopenharmony_ci    if (defined(invoker.assets_path)) {
775f9996aaSopenharmony_ci      args += [
785f9996aaSopenharmony_ci        "--assets-path",
795f9996aaSopenharmony_ci        rebase_path(invoker.assets_path),
805f9996aaSopenharmony_ci      ]
815f9996aaSopenharmony_ci    }
825f9996aaSopenharmony_ci    if (defined(invoker.lib_path)) {
835f9996aaSopenharmony_ci      args += [
845f9996aaSopenharmony_ci        "--lib-path",
855f9996aaSopenharmony_ci        rebase_path(invoker.lib_path),
865f9996aaSopenharmony_ci      ]
875f9996aaSopenharmony_ci    }
885f9996aaSopenharmony_ci    if (defined(invoker.shared_libs_path)) {
895f9996aaSopenharmony_ci      args += [
905f9996aaSopenharmony_ci        "--shared-libs-path",
915f9996aaSopenharmony_ci        rebase_path(invoker.shared_libs_path),
925f9996aaSopenharmony_ci      ]
935f9996aaSopenharmony_ci    }
945f9996aaSopenharmony_ci    if (defined(invoker.ability_so_path)) {
955f9996aaSopenharmony_ci      args += [
965f9996aaSopenharmony_ci        "--ability-so-path",
975f9996aaSopenharmony_ci        rebase_path(invoker.ability_so_path),
985f9996aaSopenharmony_ci      ]
995f9996aaSopenharmony_ci    }
1005f9996aaSopenharmony_ci    if (defined(invoker.index_path)) {
1015f9996aaSopenharmony_ci      args += [
1025f9996aaSopenharmony_ci        "--index-path",
1035f9996aaSopenharmony_ci        rebase_path(invoker.index_path),
1045f9996aaSopenharmony_ci      ]
1055f9996aaSopenharmony_ci    }
1065f9996aaSopenharmony_ci    if (defined(invoker.force)) {
1075f9996aaSopenharmony_ci      args += [
1085f9996aaSopenharmony_ci        "--force",
1095f9996aaSopenharmony_ci        invoker.force,
1105f9996aaSopenharmony_ci      ]
1115f9996aaSopenharmony_ci    }
1125f9996aaSopenharmony_ci    args += [
1135f9996aaSopenharmony_ci      "--signtool-path",
1145f9996aaSopenharmony_ci      rebase_path(hapsigner),
1155f9996aaSopenharmony_ci      "--privatekey",
1165f9996aaSopenharmony_ci      invoker.privatekey,
1175f9996aaSopenharmony_ci      "--sign-algo",
1185f9996aaSopenharmony_ci      default_hap_signature_algorithm,
1195f9996aaSopenharmony_ci      "--unsignhap-path",
1205f9996aaSopenharmony_ci      rebase_path(unsignhap_path),
1215f9996aaSopenharmony_ci      "--signhap-path",
1225f9996aaSopenharmony_ci      rebase_path(signhap_path),
1235f9996aaSopenharmony_ci      "--sign-server",
1245f9996aaSopenharmony_ci      sign_server,
1255f9996aaSopenharmony_ci      "--jks-path",
1265f9996aaSopenharmony_ci      rebase_path(jks_file),
1275f9996aaSopenharmony_ci      "--cert-path",
1285f9996aaSopenharmony_ci      rebase_path(cert_file),
1295f9996aaSopenharmony_ci    ]
1305f9996aaSopenharmony_ci    if (ohos_sign_haps_by_server) {
1315f9996aaSopenharmony_ci      args += [
1325f9996aaSopenharmony_ci        "--sign-by-server",
1335f9996aaSopenharmony_ci        "True",
1345f9996aaSopenharmony_ci      ]
1355f9996aaSopenharmony_ci    } else {
1365f9996aaSopenharmony_ci      args += [
1375f9996aaSopenharmony_ci        "--sign-by-server",
1385f9996aaSopenharmony_ci        "False",
1395f9996aaSopenharmony_ci      ]
1405f9996aaSopenharmony_ci    }
1415f9996aaSopenharmony_ci    if (defined(invoker.cert_profile)) {
1425f9996aaSopenharmony_ci      args += [
1435f9996aaSopenharmony_ci        "--cert-profile",
1445f9996aaSopenharmony_ci        rebase_path(invoker.cert_profile),
1455f9996aaSopenharmony_ci      ]
1465f9996aaSopenharmony_ci    }
1475f9996aaSopenharmony_ci    outputs = [ "$target_out_dir/${target_name}_build_log.txt" ]
1485f9996aaSopenharmony_ci  }
1495f9996aaSopenharmony_ci}
150