From 32629fb09161138fd348ad508a56b1c5c26365cc Mon Sep 17 00:00:00 2001 From: zhongluping <278527840@qq.com> Date: Tue, 9 May 2023 17:20:17 +0800 Subject: [PATCH] add pugixml Signed-off-by: zhongluping <278527840@qq.com> --- thirdparty/pugixml/HPKBUILD | 46 ++++++++++ thirdparty/pugixml/README.OpenSource | 11 +++ thirdparty/pugixml/README_zh.md | 17 ++++ thirdparty/pugixml/SHA512SUM | 1 + thirdparty/pugixml/docs/hap_integrate.md | 91 +++++++++++++++++++ thirdparty/pugixml/docs/pic/pugixml_test.png | Bin 0 -> 5484 bytes 6 files changed, 166 insertions(+) create mode 100755 thirdparty/pugixml/HPKBUILD create mode 100755 thirdparty/pugixml/README.OpenSource create mode 100755 thirdparty/pugixml/README_zh.md create mode 100755 thirdparty/pugixml/SHA512SUM create mode 100755 thirdparty/pugixml/docs/hap_integrate.md create mode 100755 thirdparty/pugixml/docs/pic/pugixml_test.png diff --git a/thirdparty/pugixml/HPKBUILD b/thirdparty/pugixml/HPKBUILD new file mode 100755 index 00000000..11292556 --- /dev/null +++ b/thirdparty/pugixml/HPKBUILD @@ -0,0 +1,46 @@ +# Contributor: huangminzhong +# Maintainer: huangminzhong +pkgname=pugixml +pkgver=v1.13 +pkgrel=0 +pkgdesc="" +url="" +archs=("armeabi-v7a" "arm64-v8a") +license=("MIT") +depends=() +makedepends=() +install= +source="https://github.com/zeux/$pkgname/archive/refs/tags/$pkgver.tar.gz" + +downloadpackage=true +autounpack=true + +builddir=$pkgname-${pkgver:1} +packagename=$builddir.tar.gz + +prepare() { + mkdir -p $builddir/$ARCH-build +} + +build() { + cd $builddir + ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -DOHOS_ARCH=$ARCH -B$ARCH-build -S./ -L > `pwd`/$ARCH-build/build.log 2>&1 + make -j4 -C $ARCH-build >> `pwd`/$ARCH-build/build.log 2>&1 + ret=$? + cd $OLDPWD + return $ret +} + +package() { + cd "$builddir" + make -C $ARCH-build install >> `pwd`/$ARCH-build/build.log 2>&1 + cd $OLDPWD +} + +check() { + echo "The test must be on an OpenHarmony device!" +} + +cleanbuild(){ + rm -rf ${PWD}/$builddir #${PWD}/$packagename +} diff --git a/thirdparty/pugixml/README.OpenSource b/thirdparty/pugixml/README.OpenSource new file mode 100755 index 00000000..5b1d5ebc --- /dev/null +++ b/thirdparty/pugixml/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "pugixml", + "License": "MIT License", + "License File": "LICENSE.md", + "Version Number": "v1.13", + "Owner": "huangminzhong2@huawei.com", + "Upstream URL": "https://github.com/zeux/pugixml", + "Description": "pugixml is a C++ XML processing library" + } +] diff --git a/thirdparty/pugixml/README_zh.md b/thirdparty/pugixml/README_zh.md new file mode 100755 index 00000000..8edca400 --- /dev/null +++ b/thirdparty/pugixml/README_zh.md @@ -0,0 +1,17 @@ +# pugixml三方库说明 + +## 功能简介 + +pugixml是一个C++XML处理库。 + +## 使用约束 + +- IDE版本:DevEco Studio 3.1 Beta2 +- SDK版本:ohos_sdk_public 3.2.11.9 (API Version 9 Release) +- 三方库版本:v1.13 +- 当前适配的功能:支持xml文件解析 +- [MIT License](https://github.com/zeux/pugixml/blob/master/LICENSE.md) + +## 集成方式 + +- [应用hap包集成](docs/hap_integrate.md) diff --git a/thirdparty/pugixml/SHA512SUM b/thirdparty/pugixml/SHA512SUM new file mode 100755 index 00000000..fb3389ac --- /dev/null +++ b/thirdparty/pugixml/SHA512SUM @@ -0,0 +1 @@ +5ff95a1ce06df01a72e736be4684c097dc656b2fc330b7fe6bf62601aca5c72edd0f40e51a643ce92f4fe5ba632b0b9fb57fbb1524aebcdd70441adeedec4a86 pugixml-1.13.tar.gz \ No newline at end of file diff --git a/thirdparty/pugixml/docs/hap_integrate.md b/thirdparty/pugixml/docs/hap_integrate.md new file mode 100755 index 00000000..33037dee --- /dev/null +++ b/thirdparty/pugixml/docs/hap_integrate.md @@ -0,0 +1,91 @@ +# pugixml集成到应用hap + +本库是在RK3568开发板上基于OpenHarmony3.2 Release版本的镜像验证的,如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。 + +## 开发环境 + +- ubuntu20.04 +- [OpenHarmony3.2Release镜像](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fopenharmony%2Fos%2F3.2-Release%2Fdayu200_standard_arm32.tar.gz) +- [ohos_sdk_public 3.2.11.9 (API Version 9 Release)](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fopenharmony%2Fos%2F3.2-Release%2Fohos-sdk-windows_linux-public.tar.gz) +- [DevEco Studio 3.1 Beta2](https://gitee.com/link?target=https%3A%2F%2Fcontentcenter-vali-drcn.dbankcdn.cn%2Fpvt_2%2FDeveloperAlliance_package_901_9%2Ff3%2Fv3%2FuJyuq3syQ2ak4hE1QZmAug%2Fdevecostudio-windows-3.1.0.400.zip%3FHW-CC-KV%3DV1%26HW-CC-Date%3D20230408T013335Z%26HW-CC-Expire%3D315360000%26HW-CC-Sign%3D96262721EDC9B34E6F62E66884AB7AE2A94C2A7B8C28D6F7FC891F46EB211A70) +- [准备三方库构建环境](../../../tools/README.md#编译环境准备) +- [准备三方库测试环境](../../../tools/README.md#ci环境准备) + +## 编译三方库 + +- 下载本仓库 + + ```shell + git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1 + ``` + +- 三方库目录结构 + + ```shell + tpc_c_cplusplus/thirdparty/pugixml #三方库pugixml的目录结构如下 + ├── docs #三方库相关文档的文件夹 + ├── HPKBUILD #构建脚本 + ├── SHA512SUM #三方库校验文件 + ├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md + ``` + +- 将pugixml拷贝至tools/main目录下 + + ```shell + cd tpc_c_cplusplus + cp thirdparty/pugixml tools/main -rf + ``` + +- 在tools目录下编译三方库 + + 编译环境的搭建参考[准备三方库构建环境](../../../tools/README.md#编译环境准备) + + ```shell + cd tools + ./build.sh pugixml + ``` + +- 三方库头文件及生成的库 + + 在tools目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + + ```shell + pugixml/arm64-v8a pugixml/armeabi-v7a + ``` + +- [测试三方库](#测试三方库) + +## 应用中使用三方库 + +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库拷贝到该目录下,如下图所示 + +  ![thirdparty_install_dir](../../thirdparty_template/docs/pic/xxx_install_dir.png) + + 其中`xxx`代表三方库名,即为`pugixml` + +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + + ```shell + #将三方库加入工程中 + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/pugixml/${OHOS_ARCH}/lib/libpugixml.a) + #将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/pugixml/${OHOS_ARCH}/include) + ``` + + ![pugixml_usage](../../thirdparty_template/docs/pic/xxx_usage.png) + +## 测试三方库 + +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../tools/README.md#ci环境准备) + +进入到构建目录执行ctest运行测试用例(arm64-v8a-build为构建64位的目录,armeabi-v7a-build为构建32位的目录) + + ![pugixml_test](pic/pugixml_test.png) + +## 参考资料 + +- [润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld) +- [OpenHarmony三方库地址](https://gitee.com/openharmony-tpc) +- [OpenHarmony知识体系](https://gitee.com/openharmony-sig/knowledge) +- [通过DevEco Studio开发一个NAPI工程](https://gitee.com/openharmony-sig/knowledge_demo_temp/blob/master/docs/napi_study/docs/hello_napi.md) diff --git a/thirdparty/pugixml/docs/pic/pugixml_test.png b/thirdparty/pugixml/docs/pic/pugixml_test.png new file mode 100755 index 0000000000000000000000000000000000000000..c1bfa0f8610f489e9035600c03f8984de1fe7b8a GIT binary patch literal 5484 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