From 2b1c79ce9f9819ba0f145a71c9d3e48a75e1cc82 Mon Sep 17 00:00:00 2001 From: zhongluping <278527840@qq.com> Date: Tue, 9 May 2023 15:52:42 +0800 Subject: [PATCH] add jasper Signed-off-by: zhongluping <278527840@qq.com> --- thirdparty/jasper/HPKBUILD | 58 +++++++++++ thirdparty/jasper/README.OpenSource | 11 ++ thirdparty/jasper/README_zh.md | 17 ++++ thirdparty/jasper/SHA512SUM | 1 + thirdparty/jasper/docs/hap_integrate.md | 96 ++++++++++++++++++ .../jasper/docs/pic/jasper_install_dir.png | Bin 0 -> 6304 bytes thirdparty/jasper/docs/pic/jasper_test.png | Bin 0 -> 12766 bytes thirdparty/jasper/docs/pic/jasper_usage.png | Bin 0 -> 32320 bytes thirdparty/jasper/jasper_oh_pkg.patch | 11 ++ 9 files changed, 194 insertions(+) create mode 100644 thirdparty/jasper/HPKBUILD create mode 100755 thirdparty/jasper/README.OpenSource create mode 100755 thirdparty/jasper/README_zh.md create mode 100644 thirdparty/jasper/SHA512SUM create mode 100755 thirdparty/jasper/docs/hap_integrate.md create mode 100755 thirdparty/jasper/docs/pic/jasper_install_dir.png create mode 100755 thirdparty/jasper/docs/pic/jasper_test.png create mode 100755 thirdparty/jasper/docs/pic/jasper_usage.png create mode 100644 thirdparty/jasper/jasper_oh_pkg.patch diff --git a/thirdparty/jasper/HPKBUILD b/thirdparty/jasper/HPKBUILD new file mode 100644 index 00000000..c3b82556 --- /dev/null +++ b/thirdparty/jasper/HPKBUILD @@ -0,0 +1,58 @@ + +# Contributor: lpzhong <278527840@qq.com> +# Maintainer: lpzhong <278527840@qq.com> + +pkgname=jasper +pkgver=version-4.0.0 +pkgrel=0 +pkgdesc="" +url= +archs=("armeabi-v7a" "arm64-v8a") +license=("jasper license files") +depends=("libjpeg-turbo") +makedepends=() +install=usr +source="https://github.com/${pkgname}-software/${pkgname}/archive/refs/tags/${pkgver}.tar.gz" + +builddir=${pkgname}-${pkgver} +packagename=${builddir}.tar.gz +autounpack=true +downloadpackage=true +patchflag=true +buildtools="cmake" + +prepare() { + mkdir -p ${builddir}/${ARCH}-build + if [ $patchflag == true ]; then + cd ${builddir} + patch -p1 < ../jasper_oh_pkg.patch + + patchflag=false + cd $OLDPWD + fi +} + +build() { + cd $builddir + ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -DOHOS_ARCH=${ARCH} -DJAS_ENABLE_SHARED=OFF -DJAS_STDC_VERSION=199901L -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!" + # real test CMD + # ctest +} + +cleanbuild(){ + rm -rf ${PWD}/${builddir} #${PWD}/$packagename +} diff --git a/thirdparty/jasper/README.OpenSource b/thirdparty/jasper/README.OpenSource new file mode 100755 index 00000000..3b49d97f --- /dev/null +++ b/thirdparty/jasper/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "Jasper", + "License": "Jasper license file", + "License File": "LICENSE.txt", + "Version Number": "4.0.0", + "Owner": "zhongluping1@huawei.com", + "Upstream URL": "https://github.com/jasper-software/jasper/tree/version-4.0.0", + "Description": " JasPer is a collection of software (i.e., a library and application programs) for the coding and manipulation of images" + } +] diff --git a/thirdparty/jasper/README_zh.md b/thirdparty/jasper/README_zh.md new file mode 100755 index 00000000..25cdfc5a --- /dev/null +++ b/thirdparty/jasper/README_zh.md @@ -0,0 +1,17 @@ +# JasPer 三方库说明 + +## 功能简介 + +JasPer是一个用于图像编码和操作的软件集合. + +## 使用约束 + +- IDE版本:DevEco Studio 3.1 Beta2 +- SDK版本:ohos_sdk_public 3.2.11.9 (API Version 9 Release) +- 三方库版本:4.0.0 +- 当前适配的功能:支持图像编码和读写操作。 +- [jasper license files](https://github.com/jasper-software/jasper/blob/master/LICENSE.txt) + +## 集成方式 + +- [应用hap包集成](docs/hap_integrate.md) diff --git a/thirdparty/jasper/SHA512SUM b/thirdparty/jasper/SHA512SUM new file mode 100644 index 00000000..d0908b49 --- /dev/null +++ b/thirdparty/jasper/SHA512SUM @@ -0,0 +1 @@ +dc03434870e85b1fdbdf41a3e07ce5a8044c8d225717d3d7a5969d45e3bd716bfb2abc4b4e0b8cec2f4071a7520c5d3e48939dba0cabe6d192eacd593de0c563 jasper-version-4.0.0.tar.gz diff --git a/thirdparty/jasper/docs/hap_integrate.md b/thirdparty/jasper/docs/hap_integrate.md new file mode 100755 index 00000000..9b7059b5 --- /dev/null +++ b/thirdparty/jasper/docs/hap_integrate.md @@ -0,0 +1,96 @@ +# jasper 集成到应用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/jasper # 三方库jasper的目录结构如下 + ├── docs # 三方库相关文档的文件夹 + ├── HPKBUILD # 构建脚本 + ├── SHA512SUM # 三方库校验文件 + ├── README.OpenSource # 说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md + ``` + +- 将jasper拷贝至tools/main目录下 + + jasper编译依赖了`libjpeg-turbo`,因此编译时需要同时[编译`libjpeg-turbo`](../../libjpeg-turbo) + + ```shell + cd tpc_c_cplusplus + cp thirdparty/jasper tools/main -rf ## 拷贝jasper三方库 + cp thirdparty/libjpeg-turbo tools/main -rf ## 拷贝jasper依赖库libjpeg-turbo + ``` + +- 在tools目录下编译三方库 + + 编译环境的搭建参考[准备三方库构建环境](../../../tools/README.md#编译环境准备) + + ```shell + cd tools + ./build.sh jasper libjpeg-turbo + ``` + +- 三方库头文件及生成的库 + + 在tools目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + + ```shell + jasper/arm64-v8a jasper/armeabi-v7a libjpeg-turbo/arm64-v8a libjpeg-turbo/armeabi-v7a + ``` + +- [测试三方库](#测试三方库) + +## 应用中使用三方库 + +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库拷贝到该目录下,如下图所示 + +  ![thirdparty_install_dir](pic/jasper_install_dir.png) + +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + + ```shell + # 将三方库加入工程中 + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/jasper/${OHOS_ARCH}/lib/libjasper.a) + # 将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/jasper/${OHOS_ARCH}/include) + # 将三方库的依赖库加入工程中 + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libjpeg-turbo/${OHOS_ARCH}/lib/libjpeg.a) + # 将三方库的依赖库头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libjpeg-turbo/${OHOS_ARCH}/include) + ``` + + ![jasper_usage](pic/jasper_usage.png) + +## 测试三方库 + +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../tools/README.md#ci环境准备) + +进入到构建目录执行ctest运行测试用例(arm64-v8a-build为构建64位的目录,armeabi-v7a-build为构建32位的目录) + + ![jasper_test](pic/jasper_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/jasper/docs/pic/jasper_install_dir.png b/thirdparty/jasper/docs/pic/jasper_install_dir.png new file mode 100755 index 0000000000000000000000000000000000000000..cefab25c930e35f00ffc63299d91cc29fdbb2603 GIT binary patch literal 6304 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

;Y<(j0M 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