From e44b208542cec8bc7115af3e9bb8db9ea4741d21 Mon Sep 17 00:00:00 2001 From: han_jin_fei <1970336264@qq.com> Date: Fri, 9 Jun 2023 18:25:20 +0800 Subject: [PATCH] add websocketpp Signed-off-by: han_jin_fei <1970336264@qq.com> --- thirdparty/websocketpp/HPKBUILD | 58 +++++++++++++++ thirdparty/websocketpp/README.OpenSource | 11 +++ thirdparty/websocketpp/README_zh.md | 12 +++ thirdparty/websocketpp/SHA512SUM | 2 + thirdparty/websocketpp/docs/hap_integrate.md | 70 ++++++++++++++++++ .../docs/pic/websocketpp_install_dir.png | Bin 0 -> 15306 bytes .../websocketpp/docs/pic/websocketpp_test.png | Bin 0 -> 43426 bytes .../docs/pic/websocketpp_usage.png | Bin 0 -> 11050 bytes .../websocketpp/websocketpp_oh_pkg.patch | 12 +++ 9 files changed, 165 insertions(+) create mode 100644 thirdparty/websocketpp/HPKBUILD create mode 100644 thirdparty/websocketpp/README.OpenSource create mode 100644 thirdparty/websocketpp/README_zh.md create mode 100644 thirdparty/websocketpp/SHA512SUM create mode 100755 thirdparty/websocketpp/docs/hap_integrate.md create mode 100644 thirdparty/websocketpp/docs/pic/websocketpp_install_dir.png create mode 100644 thirdparty/websocketpp/docs/pic/websocketpp_test.png create mode 100644 thirdparty/websocketpp/docs/pic/websocketpp_usage.png create mode 100644 thirdparty/websocketpp/websocketpp_oh_pkg.patch diff --git a/thirdparty/websocketpp/HPKBUILD b/thirdparty/websocketpp/HPKBUILD new file mode 100644 index 00000000..dba998cc --- /dev/null +++ b/thirdparty/websocketpp/HPKBUILD @@ -0,0 +1,58 @@ +# Contributor: Jeff Han +# Maintainer: Jeff Han +pkgname=websocketpp +pkgver=0.8.2 +pkgrel=0 +pkgdesc="C++ websocket client/server library" +url="https://github.com/zaphoyd/websocketpp" +archs=("armeabi-v7a" "arm64-v8a") +license=("Peter Thorson. All rights reserved") +depends=("openssl" "boost") +makedepends=() + +source="https://github.com/zaphoyd/$pkgname/archive/refs/tags/$pkgver.tar.gz" + +autounpack=true +downloadpackage=true +patchflag=true + +builddir=$pkgname-${pkgver} +packagename=$builddir.tar.gz + +prepare() { + if $patchflag + then + cd $builddir + patch -p1 < `pwd`/../websocketpp_oh_pkg.patch + # patch只需要打一次,关闭打patch + patchflag=false + cd $OLDPWD + fi + mkdir -p $builddir/$ARCH-build +} + +build() { + cd $builddir + ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -DBoost_NO_BOOST_CMAKE=ON -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON -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!" + # real test CMD + # ctest +} + +# 清理环境 +cleanbuild(){ + rm -rf ${PWD}/$builddir #${PWD}/$packagename +} diff --git a/thirdparty/websocketpp/README.OpenSource b/thirdparty/websocketpp/README.OpenSource new file mode 100644 index 00000000..c6fd4ed7 --- /dev/null +++ b/thirdparty/websocketpp/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "websocketpp", + "License": "Peter Thorson. All rights reserved", + "License File": "COPYING", + "Version Number": "0.8.2", + "Owner": "hanjinfei@foxmail.com", + "Upstream URL": "https://github.com/zaphoyd/websocketpp/archive/refs/tags/0.8.2.tar.gz", + "Description": "C++ websocket client/server library" + } +] diff --git a/thirdparty/websocketpp/README_zh.md b/thirdparty/websocketpp/README_zh.md new file mode 100644 index 00000000..4fd832b9 --- /dev/null +++ b/thirdparty/websocketpp/README_zh.md @@ -0,0 +1,12 @@ +# websocketpp三方库说明 +## 功能简介 +websocketpp是一个用于像素操作的低级软件库,提供图像合成和梯形光栅化等功能。 +## 使用约束 +- IDE版本:DevEco Studio 3.1 Beta2 +- SDK版本:ohos_sdk_public 3.2.11.9 (API Version 9 Release) +- 三方库版本:0.8.2 +- 当前适配的功能:像素操作,图像合成,光栅化 +- [ Peter Thorson. All rights reserved ](https://github.com/zaphoyd/websocketpp/blob/master/COPYING) + +## 集成方式 ++ [应用hap包集成](docs/hap_integrate.md) diff --git a/thirdparty/websocketpp/SHA512SUM b/thirdparty/websocketpp/SHA512SUM new file mode 100644 index 00000000..2904523a --- /dev/null +++ b/thirdparty/websocketpp/SHA512SUM @@ -0,0 +1,2 @@ +b2afc63edb69ce81a3a6c06b3d857b3e8820f0e22300ac32bb20ab30ff07bd58bd5ada3e526ed8ab52de934e0e3a26cad2118b0e68ecf3e5e9e8d7101348fd06 websocketpp-0.8.2.tar.gz +03e81f1e1e3a89518b2f3dc29850a290af6d4f0d99d9994b1eff61818d2ff33b9aac766ad2210d0a90c7076b04fae3edf24670c9c2e0c74c09c2590641170cd4 websocketpp_oh_pkg.patch diff --git a/thirdparty/websocketpp/docs/hap_integrate.md b/thirdparty/websocketpp/docs/hap_integrate.md new file mode 100755 index 00000000..fe479576 --- /dev/null +++ b/thirdparty/websocketpp/docs/hap_integrate.md @@ -0,0 +1,70 @@ +# websocketpp集成到应用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/websocketpp #三方库websocketpp的目录结构如下 + ├── docs #三方库相关文档的文件夹 + ├── HPKBUILD #构建脚本 + ├── SHA512SUM #三方库校验文件 + ├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md + ``` + +- 将websocketpp拷贝至tools/main目录下 + ``` + cd tpc_c_cplusplus + cp thirdparty/websocketpp tools/main -rf + ``` +- 在tools目录下编译三方库 + 编译环境的搭建参考[准备三方库构建环境](../../../tools/README.md#编译环境准备) + ``` + cd tools + ./build.sh websocketpp + ``` +- 三方库头文件及生成的库 + 在tools目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + + ``` + websocketpp/arm64-v8a websocketpp/armeabi-v7a + ``` + +- [测试三方库](#测试三方库) + +## 应用中使用三方库 +- 拷贝动态库到`\\entry\libs\${OHOS_ARCH}\`目录: + 动态库需要在`\\entry\libs\${OHOS_ARCH}\`目录,才能集成到hap包中,所以需要将对应的so文件拷贝到对应CPU架构的目录 +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库拷贝到该目录下,如下图所示 + ![thirdparty_install_dir](pic/websocketpp_install_dir.png) +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + ``` + + + # websocketpp 是一个纯头文件库,将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/include/websocketpp/${OHOS_ARCH}) + + ``` + ![websocketpp_usage](pic/websocketpp_usage.png) +## 测试三方库 +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../tools/README.md#ci环境准备) + +进入到构建目录执行ctest运行测试用例(arm64-v8a-build为构建64位的目录,armeabi-v7a-build为构建32位的目录) + + ![websocketpp_test](pic/websocketpp_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/websocketpp/docs/pic/websocketpp_install_dir.png b/thirdparty/websocketpp/docs/pic/websocketpp_install_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..f131e81c93727d94b9ac7f72f8f142cd18cc9e27 GIT binary patch literal 15306 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

T9{d5HM=$%7}P(CQmoXXV+;^(~#=&D$hfasK6n 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 literal 0 HcmV?d00001 diff --git a/thirdparty/websocketpp/websocketpp_oh_pkg.patch b/thirdparty/websocketpp/websocketpp_oh_pkg.patch new file mode 100644 index 00000000..898d1556 --- /dev/null +++ b/thirdparty/websocketpp/websocketpp_oh_pkg.patch @@ -0,0 +1,12 @@ +diff -rupN websocketpp-0.8.2/CMakeLists.txt websocketpp/CMakeLists.txt +--- websocketpp-0.8.2/CMakeLists.txt 2020-04-19 18:25:17.000000000 +0000 ++++ websocketpp/CMakeLists.txt 2023-03-31 08:53:54.953140034 +0000 +@@ -152,7 +152,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES) + endif() + set (WEBSOCKETPP_PLATFORM_TLS_LIBS ssl crypto) + set (WEBSOCKETPP_BOOST_LIBS system thread) +- set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++0x -stdlib=libc++") # todo: is libc++ really needed here? ++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -stdlib=libc++") # todo: is libc++ really needed here? + if (NOT APPLE) + add_definitions (-DNDEBUG -Wall -Wno-padded) # todo: should we use CMAKE_C_FLAGS for these? + endif () -- Gitee