From d1d925b5c7df7c32830b6bda953cd68f127229eb Mon Sep 17 00:00:00 2001 From: wupingyuan Date: Sat, 6 May 2023 17:59:45 +0800 Subject: [PATCH] add zbar Signed-off-by: wupingyuan --- thirdparty/zbar/HPKBUILD | 88 ++++++++++++++++++ thirdparty/zbar/README.OpenSource | 11 +++ thirdparty/zbar/README_zh.md | 12 +++ thirdparty/zbar/SHA512SUM | 2 + thirdparty/zbar/docs/hap_integrate.md | 88 ++++++++++++++++++ thirdparty/zbar/docs/pic/zbar_install_dir.jpg | Bin 0 -> 16588 bytes thirdparty/zbar/docs/pic/zbar_test.jpg | Bin 0 -> 13821 bytes thirdparty/zbar/docs/pic/zbar_usage.jpg | Bin 0 -> 31716 bytes thirdparty/zbar/zbar_oh_pkg.patch | 12 +++ 9 files changed, 213 insertions(+) create mode 100644 thirdparty/zbar/HPKBUILD create mode 100644 thirdparty/zbar/README.OpenSource create mode 100644 thirdparty/zbar/README_zh.md create mode 100644 thirdparty/zbar/SHA512SUM create mode 100644 thirdparty/zbar/docs/hap_integrate.md create mode 100644 thirdparty/zbar/docs/pic/zbar_install_dir.jpg create mode 100644 thirdparty/zbar/docs/pic/zbar_test.jpg create mode 100644 thirdparty/zbar/docs/pic/zbar_usage.jpg create mode 100644 thirdparty/zbar/zbar_oh_pkg.patch diff --git a/thirdparty/zbar/HPKBUILD b/thirdparty/zbar/HPKBUILD new file mode 100644 index 00000000..48a6f1f9 --- /dev/null +++ b/thirdparty/zbar/HPKBUILD @@ -0,0 +1,88 @@ +# Maintainer: wupingyuan +pkgname=zbar +pkgver=0.10 +pkgrel=0 +pkgdesc="ZBar is an open source software suite for reading bar codes from various sources, such as video streams, image files and raw intensity sensors. It supports many popular symbologies (types of bar codes) including EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code." +url="https://zbar.sourceforge.net/" +archs=("armeabi-v7a" "arm64-v8a") +license=("LGPL2.1") +depends=("libpng") +makedepends=() +source="https://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz" + +autounpack=true +downloadpackage=true +patchflag=true +buildtools="configure" +builddir=$pkgname-$pkgver +packagename=$builddir.tar.gz +source envset.sh +host= + +prepare() { + if $patchflag + then + cd $builddir + # 由于版本问题,原库依赖的libpng库比较老,而当前lycium仓库中libpng比较新,因此需要更换接口:png_set_gray_1_2_4_to_8->png_set_expand_gray_1_2_4_to_8 + patch -p1 < `pwd`/../zbar_oh_pkg.patch + patchflag=false + cd $OLDPWD + fi + cp -rf $builddir $pkgname-$ARCH-build + if [ $ARCH == "armeabi-v7a" ] + then + setarm32ENV + fi + if [ $ARCH == "arm64-v8a" ] + then + setarm64ENV + fi + host=arm-linux +} + +build() { + cd $pkgname-$ARCH-build + ./configure "$@" --host=$host --disable-video --without-imagemagick --without-gtk --without-python --without-qt >> `pwd`/build.log 2>&1 + make -j4 >> `pwd`/build.log 2>&1 + ret=$? + cd $OLDPWD + return $ret +} + +package() { + cd $pkgname-$ARCH-build + make install >> `pwd`/build.log 2>&1 + ret=$? + cd $OLDPWD + unset host + return $ret +} + +check() { + cd $pkgname-$ARCH-build + sed '$ascan_image: examples/scan_image.c' Makefile > temp_Makefile + mv temp_Makefile Makefile + sed '$a\\t$(CC) $(CFLAGS) examples/scan_image.c -o scan_image -lm -Iinclude/ -Lzbar/.libs -lzbar -L$(PNG_LIBS_DIR) -I$(PNG_INCLUDE_DIR) -lpng -lz' Makefile > temp_Makefile + mv temp_Makefile Makefile + make scan_image PNG_LIBS_DIR=$LYCIUM_ROOT/usr/libpng-$ARCH-install/lib PNG_INCLUDE_DIR=$LYCIUM_ROOT/usr/libpng-$ARCH-install/include >> `pwd`/build.log 2>&1 + ret=$? + cd $OLDPWD + if [ $ARCH == "armeabi-v7a" ] + then + unsetarm32ENV + fi + if [ $ARCH == "arm64-v8a" ] + then + unsetarm64ENV + fi + echo "The test must be on an OpenHarmony device!" + # 解析二维码 + # ./scan_image qrcode.png + # 解析条形码 + # ./scan_image barcode.png + return $ret +} + +cleanbuild(){ + rm -rf ${PWD}/$builddir $builddir-armeabi-v7a-build $builddir-arm64-v8a-build #${PWD}/$packageName +} diff --git a/thirdparty/zbar/README.OpenSource b/thirdparty/zbar/README.OpenSource new file mode 100644 index 00000000..1927a2ad --- /dev/null +++ b/thirdparty/zbar/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "zbar", + "License": "LGPL2.1", + "License File": "COPYING", + "Version Number": "0.10", + "Owner": "wupingyuan@huawei.com", + "Upstream URL": "https://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10.tar.gz", + "Description": "ZBar is an open source software suite for reading bar codes from various sources, such as video streams, image files and raw intensity sensors. It supports many popular symbologies (types of bar codes) including EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code." + } +] diff --git a/thirdparty/zbar/README_zh.md b/thirdparty/zbar/README_zh.md new file mode 100644 index 00000000..0aff4ba4 --- /dev/null +++ b/thirdparty/zbar/README_zh.md @@ -0,0 +1,12 @@ +# zbar三方库说明 +## 功能简介 +zbar是一个条形码和二维码解析的库。 +## 使用约束 +- IDE版本:DevEco Studio 3.1 Release +- SDK版本:ohos_sdk_public 3.2.11.9 (API Version 9 Release) +- 三方库版本:0.10 +- 当前适配的功能:支持条形码和二维码解析 +- [LGPL2.1](https://zbar.sourceforge.net/) + +## 集成方式 ++ [应用hap包集成](docs/hap_integrate.md) diff --git a/thirdparty/zbar/SHA512SUM b/thirdparty/zbar/SHA512SUM new file mode 100644 index 00000000..e2bcaf13 --- /dev/null +++ b/thirdparty/zbar/SHA512SUM @@ -0,0 +1,2 @@ +9cc6446dd97d4ec1b72db8aa4662dc976ff951f1ab99055f04f3c8da2b93a4e044740f31eb66683efdf031e5f3472a983ccfa81a6224db8b394f43ab6d4d1e76 zbar-0.10.tar.gz +1bfdff7c6acb55e0d0d18f28daed47fd352ad3260f8464944f6ffcd205ed9249723fdb65494875625016fe081544f655c1ac9e5cfe42021d5d8473ce32de7ad8 zbar_oh_pkg.patch diff --git a/thirdparty/zbar/docs/hap_integrate.md b/thirdparty/zbar/docs/hap_integrate.md new file mode 100644 index 00000000..08d6f27d --- /dev/null +++ b/thirdparty/zbar/docs/hap_integrate.md @@ -0,0 +1,88 @@ +# zbar集成到应用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环境准备) +## 编译三方库 +- 下载本仓库 + ``` + git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1 + ``` +- 三方库目录结构 + ``` + tpc_c_cplusplus/thirdparty/zbar #三方库zbar的目录结构如下 + ├── docs #三方库相关文档的文件夹 + ├── HPKBUILD #构建脚本 + ├── SHA512SUM #三方库校验文件 + ├── zbar_oh_pkg.patch #补丁 + ├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md + ``` + +- 将zbar拷贝至tools/main目录下 + ``` + cd tpc_c_cplusplus + cp thirdparty/zbar tools/main -rf + cp thirdparty/libpng tools/main -rf + ``` +- 在tools目录下编译三方库 + 编译环境的搭建参考[准备三方库构建环境](../../../tools/README.md#编译环境准备) + ``` + cd tools + ./build.sh libpng zbar + ``` +- 三方库头文件及生成的库 + 在tools目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + ``` + zbar-arm64-v8a-install zbar-armeabi-v7a-install + ``` + +- [测试三方库](#测试三方库) + +## 应用中使用三方库 + +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库拷贝到该目录下,如下图所示 + ![thirdparty_install_dir](pic/zbar_install_dir.jpg) +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + ``` + #将三方库加入工程中 + add_library(zbar SHARED IMPORTED) + set_target_properties(zbar + PROPERTIES IMPORTED_LOCATION + ${CMAKE_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libzbar.so) + target_link_libraries(entry PUBLIC libace_napi.z.so zbar) + #将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zbar-${OHOS_ARCH}-install/include) + ``` + ![zbar_usage](pic/zbar_usage.jpg) +## 测试三方库 +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../tools/README.md#ci环境准备) + +- 将编译生成的scan_image可执行文件及音频测试文件条形码barcode.png、二维码qrcode.png准备好 + +- 将准备好的文件推送到开发板,在windows命令行进行如下操作 + + ``` + hdc_std shell mount -o remount,rw / #修改系统权限为可读写 + hdc_std file send scan_image /data #将可执行文件推入开发板data目录 + hdc_std file send barcode.png /data #将测试文件推入开发板data目录 + hdc_std file send qrcode.png /data #将测试文件推入开发板data目录 + hdc_std file send libc++_shared.so /system/lib64 + hdc_std file send libzbar.so /system/lib64 + hdc_std shell #进入开发板 + chmod 777 scan_image #添加权限 + ./scan_image barcode.png #执行测试用例 + ./scan_image qrcode.png + ``` + + ![zbar_test](pic/zbar_test.jpg) + +## 参考资料 +- [润和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/zbar/docs/pic/zbar_install_dir.jpg b/thirdparty/zbar/docs/pic/zbar_install_dir.jpg new file mode 100644 index 0000000000000000000000000000000000000000..47018769949da40148fe28722682f22750977c16 GIT binary patch literal 16588 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 E3*B|)ssI20 literal 0 HcmV?d00001 diff --git a/thirdparty/zbar/docs/pic/zbar_test.jpg b/thirdparty/zbar/docs/pic/zbar_test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37ac4a9c42de2b5bf1c8cc261c0840a90d769396 GIT binary patch literal 13821 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