From 7b8fdac78ef75a35b50d3ce574514a2ef4bfd113 Mon Sep 17 00:00:00 2001 From: longwei Date: Wed, 17 Aug 2022 11:16:16 +0800 Subject: [PATCH] compile haptobin jar in packing tool Signed-off-by: longwei Change-Id: Ia7a3baaa91a70c2fe214e450440087a49f5ab010 --- BUILD.gn | 118 +---------------------- adapter/bundles/packing_tool/bundle.json | 23 ----- build.py | 24 +++++ build.pydeps | 1 + bundle.json | 29 ++++++ haptobin.sh | 37 +++++++ packingtool.gni | 19 ++++ 7 files changed, 114 insertions(+), 137 deletions(-) delete mode 100644 adapter/bundles/packing_tool/bundle.json create mode 100755 build.py create mode 100644 build.pydeps create mode 100755 bundle.json create mode 100755 haptobin.sh create mode 100755 packingtool.gni diff --git a/BUILD.gn b/BUILD.gn index 7c1c8f19..0d9c3a47 100755 --- a/BUILD.gn +++ b/BUILD.gn @@ -11,119 +11,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//build/config/ohos/rules.gni") -import("//build/ohos.gni") -import("//developtools/developtools.gni") +import("//developtools/packing_tool/packingtool.gni") -java_library("app_packing_tool_java") { - java_files = [ - "adapter/ohos/BundleException.java", - "adapter/ohos/CommandParser.java", - "adapter/ohos/CompressEntrance.java", - "adapter/ohos/Compressor.java", - "adapter/ohos/CompressVerify.java", - "adapter/ohos/Log.java", - "adapter/ohos/ShowHelp.java", - "adapter/ohos/Utility.java", - "adapter/ohos/ModuleJsonUtil.java", - "adapter/ohos/Version.java", - ] - - main_class = "ohos.CompressEntrance" - - final_jar_path = "$root_build_dir/developtools/app_packing_tool.jar" -} - -java_library("app_unpacking_tool_java") { - java_files = [ - "adapter/ohos/BundleException.java", - "adapter/ohos/CommandParser.java", - "adapter/ohos/Log.java", - "adapter/ohos/ShowHelp.java", - "adapter/ohos/UncompressEntrance.java", - "adapter/ohos/Uncompress.java", - "adapter/ohos/UncompressVerify.java", - "adapter/ohos/Utility.java", - "adapter/ohos/HapInfo.java", - "adapter/ohos/ReqPermission.java", - "adapter/ohos/Distro.java", - "adapter/ohos/AbilityInfo.java", - "adapter/ohos/MetaData.java", - "adapter/ohos/MetaDataInfo.java", - "adapter/ohos/SkillInfo.java", - "adapter/ohos/UsedScene.java", - "adapter/ohos/PackInfo.java", - "adapter/ohos/FormInfo.java", - "adapter/ohos/ProfileInfo.java", - "adapter/ohos/AppInfo.java", - "adapter/ohos/DefPermission.java", - "adapter/ohos/DefPermissionGroup.java", - "adapter/ohos/CustomizeData.java", - "adapter/ohos/UncomperssResult.java", - "adapter/ohos/JsonUtil.java", - "adapter/ohos/JsInfo.java", - "adapter/ohos/DeviceConfig.java", - "adapter/ohos/CommonEvent.java", - "adapter/ohos/Shortcut.java", - "adapter/ohos/IntentInfo.java", - "adapter/ohos/ResourcesParser.java", - "adapter/ohos/DistroFilter.java", - "adapter/ohos/ApiVersion.java", - "adapter/ohos/ScreenShape.java", - "adapter/ohos/ScreenDensity.java", - "adapter/ohos/ScreenWindow.java", - "adapter/ohos/CountryCode.java", - "adapter/ohos/HapZipInfo.java", - "adapter/ohos/AbilityFormInfo.java", - ] - - deps = [ "//third_party/fastjson/repackaged:fastjson_utils_java" ] - - java_manifest_file = "META-INF/unpacking_tool/MANIFEST.MF" - - main_class = "ohos.UncompressEntrance" - - final_jar_path = "$root_build_dir/developtools/app_unpacking_tool.jar" -} - -java_library("haptobin_tool_java") { - java_files = [ - "adapter/ohos/Log.java", - "adapter/ohos/BinaryTool.java", - "adapter/ohos/FileUtils.java", - "adapter/ohos/ConvertHapToBin.java", - ] - - deps = [ "//third_party/fastjson/repackaged:fastjson_utils_java" ] - - java_manifest_file = "META-INF/packingbin_tool/MANIFEST.MF" - - main_class = "ohos.ConvertHapToBin" - - final_jar_path = "$root_build_dir/developtools/haptobin_tool.jar" -} - -java_library("bininfo_collecting_tool_java") { - java_files = [ - "adapter/ohos/Log.java", - "adapter/ohos/FileUtils.java", - "adapter/ohos/CollectBinInfo.java", - ] - - deps = [ "//third_party/fastjson/repackaged:fastjson_utils_java" ] - - java_manifest_file = "META-INF/collectingbininfo_tool/MANIFEST.MF" - - main_class = "ohos.CollectBinInfo" - - final_jar_path = "$root_build_dir/developtools/bininfo_collecting_tool.jar" -} - -group("packing_tool_target") { - deps = [ - ":app_packing_tool_java", - ":app_unpacking_tool_java", - ":bininfo_collecting_tool_java", - ":haptobin_tool_java", - ] +packing_tool("packing_tool") { + sources = ["//developtools/packing_tool/haptobin.sh"] + outputs = ["${target_out_dir}/haptobin.jar"] } diff --git a/adapter/bundles/packing_tool/bundle.json b/adapter/bundles/packing_tool/bundle.json deleted file mode 100644 index 131fbf25..00000000 --- a/adapter/bundles/packing_tool/bundle.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "packing_tool", - "version": "1.0.0", - "publishAs": "code-segment", - "description": "packing_tool for dev", - "keywords": [ - "packing", - "unpacking", - "linux" - ], - "component": { - "name": "packing_tool", - "subsystem": "developtools", - "adapted_system_type": [ "mini", "small", "standard" ], - "deps": { - "components": [], - "third_party": [ "fastjson" ] - }, - "build": { - "sub_component": [] - } - } -} diff --git a/build.py b/build.py new file mode 100755 index 00000000..6e1fc748 --- /dev/null +++ b/build.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import os +import sys +import argparse + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--input', required=True) + parser.add_argument('--output', required=True) + args = parser.parse_args() + rootDir = os.path.dirname(os.path.realpath(__file__)) + + print("rootDir is " + rootDir) + print(args.input) + print(args.output) + # compile haptobin + command = "sh " + args.input + ' ' + rootDir + ' ' + args.output + res = os.system(command) + if res != 0: + raise Exception("compile packing_tool java class failed!") + +if __name__ == '__main__': + sys.exit(main()) \ No newline at end of file diff --git a/build.pydeps b/build.pydeps new file mode 100644 index 00000000..3fb299e8 --- /dev/null +++ b/build.pydeps @@ -0,0 +1 @@ +build.py diff --git a/bundle.json b/bundle.json new file mode 100755 index 00000000..2cbf5aef --- /dev/null +++ b/bundle.json @@ -0,0 +1,29 @@ +{ + "name": "packing_tool", + "version": "3.2", + "license": "Apache License 2.0", + "publishAs": "code-segment", + "description": "packing_tool for openharmony", + "segment": { + "destPath": "developtools/packing_tool" + }, + "keywords": [ + "packing", + "unpacking", + "linux" + ], + "component": { + "name": "packing_tool", + "subsystem": "developtools", + "adapted_system_type": [ "mini", "small", "standard" ], + "deps": { + "components": [] + }, + "build": { + "sub_component": [ + "//developtools/packing_tool:packing_tool" + ] + } + } +} + \ No newline at end of file diff --git a/haptobin.sh b/haptobin.sh new file mode 100755 index 00000000..f38a9b13 --- /dev/null +++ b/haptobin.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +rootPath=$1 +outPath=$2 +echo ${rootPath} +tempPath="." +jar_dir="jar" +haptobin_jar_file="haptobin_tool.jar" +haptobin_jar_path="$rootPath/$jar_dir/$haptobin_jar_file" +manifest_path=$rootPath/META-INF/packingbin_tool/MANIFEST.MF +echo ${manifest_path} +# compile java class +out_dir="$rootPath/out/production/packing_tool" +java_suffix=".java" +class_suffix=".class" +out_class="$tempPath/$out_dir" +java_collection="" +class_collextion="" +declare -a compile_class=( + "Log" + "BinaryTool" + "FileUtils" + "ConvertHapToBin" + "BundleException" + "Utility" +) +compile_class_length=${#compile_class[@]} +for ((i=0; i<${compile_class_length};++i)) +do + java_collection="${java_collection} ${rootPath}/adapter/ohos/${compile_class[$i]}${java_suffix}" + class_collextion="${class_collextion} ohos/${compile_class[$i]}${class_suffix}" +done +compile_command="javac -d ${out_dir} ${java_collection}" +eval ${compile_command} + +cd ${out_dir} +pack_command="jar -cvfm ${haptobin_jar_path} ${manifest_path} ${class_collextion}" +eval ${pack_command} \ No newline at end of file diff --git a/packingtool.gni b/packingtool.gni new file mode 100755 index 00000000..aebc3889 --- /dev/null +++ b/packingtool.gni @@ -0,0 +1,19 @@ +import("//build/config/python.gni") + +template("packing_tool") { + action_with_pydeps(target_name) { + forward_variables_from( + invoker, + [ + "sources", + "outputs" + ]) + script = "//developtools/packing_tool/build.py" + args = [ + "--input", + rebase_path(sources[0], root_out_dir), + "--output", + rebase_path(outputs[0], root_out_dir), + ] + } +} \ No newline at end of file -- Gitee