From 76adbc3ab7cde76424c7b4409f8d0858ad0c08f4 Mon Sep 17 00:00:00 2001 From: luozhu20 <1393302983@qq.com> Date: Thu, 24 Aug 2023 11:14:46 +0800 Subject: [PATCH 1/2] add.luv Signed-off-by: luozhu20 <1393302983@qq.com> --- thirdparty/luv/HPKBUILD | 110 ++++++++++++++++++++ thirdparty/luv/HPKCHECK | 34 ++++++ thirdparty/luv/OAT.xml | 20 ++++ thirdparty/luv/README.OpenSource | 11 ++ thirdparty/luv/README_zh.md | 11 ++ thirdparty/luv/SHA512SUM | 2 + thirdparty/luv/docs/hap_ingtegrate.md | 82 +++++++++++++++ thirdparty/luv/docs/pic/luv_install_dir.png | Bin 0 -> 21623 bytes thirdparty/luv/docs/pic/luv_test.png | Bin 0 -> 10861 bytes thirdparty/luv/docs/pic/luv_usage.png | Bin 0 -> 46871 bytes thirdparty/luv/luv_oh_pkg.patch | 21 ++++ 11 files changed, 291 insertions(+) create mode 100644 thirdparty/luv/HPKBUILD create mode 100644 thirdparty/luv/HPKCHECK create mode 100644 thirdparty/luv/OAT.xml create mode 100644 thirdparty/luv/README.OpenSource create mode 100644 thirdparty/luv/README_zh.md create mode 100644 thirdparty/luv/SHA512SUM create mode 100644 thirdparty/luv/docs/hap_ingtegrate.md create mode 100644 thirdparty/luv/docs/pic/luv_install_dir.png create mode 100644 thirdparty/luv/docs/pic/luv_test.png create mode 100644 thirdparty/luv/docs/pic/luv_usage.png create mode 100644 thirdparty/luv/luv_oh_pkg.patch diff --git a/thirdparty/luv/HPKBUILD b/thirdparty/luv/HPKBUILD new file mode 100644 index 00000000..e6f36803 --- /dev/null +++ b/thirdparty/luv/HPKBUILD @@ -0,0 +1,110 @@ +# Copyright (c) 2023 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Contributor: Ding Qian <1052888395@qq.com> +# Maintainer: Ding Qian <1052888395@qq.com> +pkgname=luv +pkgver=1.45.0-0 +pkgrel=0 +pkgdesc="Bare libuv bindings for lua" +url="https://github.com/luvit/luv" +archs=("armeabi-v7a" "arm64-v8a") +license=("Apache License 2.0") +depends=("libuv" "LuaJIT") +makedepends=() +source="https://github.com/luvit/$pkgname/archive/refs/tags/$pkgver.tar.gz" + +autounpack=true +downloadpackage=true +patchflag=true + +syncsubmodule=true +builddir=$pkgname-${pkgver} +packagename=$builddir.tar.gz +buildtools="cmake" + +prepare() { + if $patchflag + then + cd $builddir + # 在编译时在CMakeLists.txt中无法link到LuaJIT,导致编译不通过. + patch -p1 < `pwd`/../luv_oh_pkg.patch + # patch只需要打一次,关闭打patch + patchflag=false + cd $OLDPWD + fi + + if [ $syncsubmodule == true ] + then + cd $builddir + # 同步子模块,这里采用git submodule update容易失败,进行git clone下载 + git clone https://github.com/libuv/libuv.git deps/libuv >> `pwd`/build.log 2>&1 + if [ $? != 0 ] + then + return -1 + fi + git clone https://github.com/LuaJIT/LuaJIT.git deps/luajit >> `pwd`/build.log 2>&1 + if [ $? != 0 ] + then + return -2 + fi + git clone https://github.com/lua/lua deps/lua >> `pwd`/build.log 2>&1 + if [ $? != 0 ] + then + return -3 + fi + git clone https://github.com/keplerproject/lua-compat-5.3.git deps/lua-compat-5.3 >> `pwd`/build.log 2>&1 + if [ $? != 0 ] + then + return -4 + fi + cd $OLDPWD + syncsubmodule=false + fi + + cd $builddir + mkdir $ARCH-build + cd $OLDPWD +} + +build() { + cd $builddir + ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -B$ARCH-build -DBUILD_MODULE=OFF -DBUILD_SHARED_LIBS=ON -DWITH_SHARED_LIBUV=ON \ + -DWITH_LUA_ENGINE=LuaJIT -DLUA_BUILD_TYPE=Dynamic -DLUA_COMPAT53_DIR=deps/lua-compat-5.3 -DWITH_AMALG=OFF -DOHOS_ARCH=$ARCH -DLUA_BUILD_TYPE=System \ + -B $ARCH-build -S. -L > `pwd`/$ARCH-build/build.log 2>&1 + make VERBOSE=1 -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 + ret=$? + cd $OLDPWD + return $ret +} + +check() { + echo "The test must be on an OpenHarmony device!" + # 测试:使用LuaJIT来执行当前测试目录中的run.lua + # ./LuaJIT tests/run.lua + # 注意环境变量的配置. +} + +# 清理环境 +cleanbuild(){ + rm -rf ${PWD}/$builddir #${PWD}/$packagename +} + diff --git a/thirdparty/luv/HPKCHECK b/thirdparty/luv/HPKCHECK new file mode 100644 index 00000000..7ff48edb --- /dev/null +++ b/thirdparty/luv/HPKCHECK @@ -0,0 +1,34 @@ +# Copyright (c) 2023 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Contributor: luozhu <1393302983@qq.com> +# Maintainer: luozhu <1393302983@qq.com> + +source HPKBUILD > /dev/null 2>&1 +logfile=${LYCIUM_THIRDPARTY_ROOT}/${pkgname}/${pkgname}_${ARCH}_${OHOS_SDK_VER}_test.log + +openharmonycheck() { + res=0 + cd $builddir + mkdir /usr/local/lib -p + cp ${LYCIUM_ROOT}/../lycium/usr/${pkgname}/${ARCH}/lib/*.so* /usr/local/lib + cp ${LYCIUM_ROOT}/../lycium/usr/libuv/${ARCH}/lib/*.so* /usr/local/lib + cp ${LYCIUM_ROOT}/../lycium/usr/LuaJIT/${ARCH}/lib/*.so* /usr/local/lib + mkdir /usr/local/lib/lua/5.1/ -p + ln /usr/local/lib/libluv.so.1 /usr/local/lib/lua/5.1/luv.so + ${LYCIUM_ROOT}/../lycium/usr/LuaJIT/${ARCH}/bin/luajit-2.1.0-beta3 tests/run.lua > ${logfile} 2>&1 + rm -rf /usr/local/lib + res=$? + cd $OLDPWD + return $res +} \ No newline at end of file diff --git a/thirdparty/luv/OAT.xml b/thirdparty/luv/OAT.xml new file mode 100644 index 00000000..00f4c474 --- /dev/null +++ b/thirdparty/luv/OAT.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/luv/README.OpenSource b/thirdparty/luv/README.OpenSource new file mode 100644 index 00000000..0c4a7cc1 --- /dev/null +++ b/thirdparty/luv/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "luv", + "License": "Apache License 2.0", + "License File": "https://www.apache.org/licenses/LICENSE-2.0.txt", + "Version Number": "1.45.0-0", + "Owner": "1393302983@qq.com", + "Upstream URL": "https://github.com/luvit/luv/archive/refs/tags/1.45.0-0.tar.gz", + "Description": "Bare libuv bindings for lua." + } +] diff --git a/thirdparty/luv/README_zh.md b/thirdparty/luv/README_zh.md new file mode 100644 index 00000000..72c848e2 --- /dev/null +++ b/thirdparty/luv/README_zh.md @@ -0,0 +1,11 @@ +# luv三方库说明 +## 功能简介 +luv是一个用于lua的libuv裸绑定的库 +## 使用约束 +- IDE版本:DevEco Studio 3.1 Release +- SDK版本:ohos_sdk_public 4.0.8.1 (API Version 10 Release) +- 三方库版本:1.45.0-0 +- 当前适配的功能:使libuv可用于lua脚本。 + +## 集成方式 ++ [应用hap包集成](docs/hap_ingtegrate.md) \ No newline at end of file diff --git a/thirdparty/luv/SHA512SUM b/thirdparty/luv/SHA512SUM new file mode 100644 index 00000000..b2447eba --- /dev/null +++ b/thirdparty/luv/SHA512SUM @@ -0,0 +1,2 @@ +50460573377bc9386a90aa75f7d4938571b04f74ca6f63e32fa2b2f8951e799465abb78b4270f22be511c4d328ce582c38ec3e3da1061310fcfee630b647854d luv-1.45.0-0.tar.gz +ea598ce9f36b54e5549dd20f7934ff213d80cb108dbe2e6c5b749cbae2c2bec9842d77152d3791cf3c8a90b4a59024c835854b4ae0a1702a103c191655c54cb1 luv_oh_pkg.patch diff --git a/thirdparty/luv/docs/hap_ingtegrate.md b/thirdparty/luv/docs/hap_ingtegrate.md new file mode 100644 index 00000000..55c94416 --- /dev/null +++ b/thirdparty/luv/docs/hap_ingtegrate.md @@ -0,0 +1,82 @@ +# luv集成到应用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 4.0.8.1 (API Version 10 Release)](https://gitee.com/link?target=http%3A%2F%2Fdownload.ci.openharmony.cn%2Fversion%2FMaster_Version%2FOpenHarmony_4.0.8.1%2F20230608_091058%2Fversion-Master_Version-OpenHarmony_4.0.8.1-20230608_091058-ohos-sdk-public.tar.gz) +- [DevEco Studio 3.1 Release](https://gitee.com/link?target=https%3A%2F%2Fcontentcenter-vali-drcn.dbankcdn.cn%2Fpvt_2%2FDeveloperAlliance_package_901_9%2F81%2Fv3%2FtgRUB84wR72nTfE8Ir_xMw%2Fdevecostudio-windows-3.1.0.501.zip%3FHW-CC-KV%3DV1%26HW-CC-Date%3D20230621T074329Z%26HW-CC-Expire%3D315360000%26HW-CC-Sign%3D22F6787DF6093ECB4D4E08F9379B114280E1F65DA710599E48EA38CB24F3DBF2) +- [准备三方库构建环境](../../../lycium/README.md#1编译环境准备) +- [准备三方库测试环境](../../../lycium/README.md#3ci环境准备) + +## 编译三方库 + +- 下载本仓库 + ``` + git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1 + ``` +- 三方库目录结构 + ``` + tpc_c_cplusplus/thirdparty/luv # 三方库luv的目录结构如下 + ├── docs # 三方库相关文档的文件夹 + ├── HPKBUILD # 编译脚本 + ├── HPKCHECK # 测试脚本 + ├── OAT.xml # OAT开源审查文本 + ├── luv_oh_pkg.patch # patch文件 + ├── README.OpenSource # 说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md # 三方库说明文档 + ├── SHA512SUM # 三方库校验文件 + ``` + +- 在lycium目录下编译三方库 + 编译环境的搭建参考[准备三方库构建环境](../../../lycium/README.md#1编译环境准备) + ``` + cd lycium + ./build.sh luv + ``` +- 三方库头文件及生成的库 + 在lycium目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + ``` + luv/arm64-v8a luv/armeabi-v7a + libuv/arm64-v8a libuv/armeabi-v7a + LuaJIT/arm64-v8a LuaJIT/armeabi-v7a + ``` + +- [测试三方库](#测试三方库) + +## 应用中使用三方库 + +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的头文件拷贝到该目录下,将编译生成的三方库全部(动态库名字带版本号和不带版本号的都需要)拷贝到工程的libs目录下,如下图所示 +   +![thirdparty_install_dir](pic/luv_install_dir.png) + +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + ```shell + #将三方库加入工程中 + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libluv.so) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libuv_a.a) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libluajit-5.1.a) + #将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE CMAKECURRENTSOURCEDIR/thirdparty/luv/{OHOS_ARCH}/include) + target_include_directories(entry PRIVATE CMAKECURRENTSOURCEDIR/thirdparty/libuv/{OHOS_ARCH}/include) + target_include_directories(entry PRIVATE CMAKECURRENTSOURCEDIR/thirdparty/LuaJIT/{OHOS_ARCH}/include) + + ``` + +![luv_usage](pic/luv_usage.png) + +## 测试三方库 +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../lycium/README.md#3ci环境准备) + +- 将编译生成的可执行文件及生成的动态库准备好 + +- 将准备好的文件推送到开发板,进入到构建的目录添加执行文件权限和lib库环境执行../../../lycium/usr/LuaJIT/${ARCH}/bin/luajit-2.1.0-beta3 tests/run.lua + ![luv_test](pic/luv_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/luv/docs/pic/luv_install_dir.png b/thirdparty/luv/docs/pic/luv_install_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..07329d41a920082dfec74e6cda6afc811535aecf GIT binary patch literal 21623 zcmeFZXIPV2+cg|;kQoseP(Z0;5RtAFk&Y4sK>_JKD7{JV1aKIni3n1pqe$-{H9%B) zml}Emq)8J(fFuy!9i5r`p8I*9<9pus*LQr!=i!f#yQ(m42!sL;fl#jgObOoEt7ZEY0{IPc7j{e6H+^F^*wthOv5gnG+>>M%U3Fhp zmA_M?gzE;~g_ByQnoB|AB~H1Xbypr1;Ixi;#YiMh?)0&&skxY=bD~9nBy&;tn$-Y+~+9fJPo;8T^P-BrhDbSb^UpW zqIDb&Vu7%dgM4}YxS?=3S?eBnZOCOr4;e>mtS5 z6}-M4pX1fIr>R-KCVN5*KBO<^#0Ha+PpSrr1uN5B8tu_rv(Q~qq0Wi|{_Sw`OO?3l zmg7iX8rj`d>>%?&4n+cHt~r1U@nuNJYc)yWa1gf`Nt-fi#f5f{`(t~UD(0F zfq~_gy>2`=Il}-b<^Rz?+LTP7=%f!lRTIl_21{jWn=<2 zmXc34x#YY~5C_Ltg%fP*K$CTEQs>mP&*l^lRK|Pbru*J%UtixH;jw1{*yxyaUUZTW zEqodUhk0+!*gtG2(%MEd9kUJn&vm_NcUizeggH^ zj(W04I~@bawIPMZj$#8iVOnp_Egl%p~@Gt)iy!ACEE@Jx|0IEt-7Ioyeoqz zyL~CMNS{)^^*W62;vz?^OhW6CH@eI$_%J;9+s7^%7KLL^ZUd7&DuRH4jb;;mnRHB) zbe_5lRe4VO#)49f>@xF_;&MDOV`%WleT|gFG`aH(ihSI43|{Dd8n8tiQFgpJ)}9^` z8-Z%IzI^)hIr||>IgYZv;zCu7t9D;7b-^pV*8s)Z;U~qJBj-4o!>{%E{X9_8mg{nQ zSfhRC{oundTyvi$>aC83M@KOV#Dgr;f{wIp#mJd=i&w(kt++C~X$dpD4#M!3ro0jJ zqrH)B#P-ST;Zh=@FteedAy_KtsCL=~xv5^48=P??)EpMH6Fu4z&gmZbVW+qnMMz%k zq)~WSC{lmx%drk)pw)p7bzepKgg=6AY2V=~rz9*PqW;MEZMg#U(Vbd3`BBF!_2U<} z*818IPnlQkB~B9qXs-ur{`8C#(Q;@8Weg5RINr=MJ+!j&{qpIxqPMdK3=B9tY{ zT{!%Gu?(3$DZ$>!!VYy`A212_I3X=6;O{;;NK*Iwkd}1_?-%LwLu~a=m?3=(F0WeO zZDToPwhZikUuAvKxfNYA5zdtvw3cg$Ia=P1>QWcsAbx8dQ6@pMnbW0lB#?#zL6)#h z-ssnhaI%^8#P-)A*3=dJj`P8|+BFr9iKvt9$$;u@)Cs9$yFW^GKc$y8lehTwL+mlV ztcCD+beH8O3b{QW4r`n5I!c;)XFmcy_*N|$q)&TbW1BDR%qWH16+n^}2I*fZAyG_$ zUlI+>%Qn19Vd$4Vn+JUguL>KQAwwxBYQDx#?l4&Di=&w*jw#NUqR;BwZhSk z!PBE}&bc&8h=~P!i&MGbGS_r8)}Qu0yQQQ|f=_D3#RmKOn!eGWxGuCsf}Bl$sg;m@ z5~>uQbo5~Cbbp^IzI$g8>b}2Wgw6b;b^cl?X?Lj?cxEOrHR+FK&ftd^ZvTB!S1 zq~_61R+jJd5vr^31Ko*0VslC2TAchZd!Au(%XMIn#LE=>TYcg@;~lQt7N{D$X2Cx! zDG0qg`*Z2>oKung(^U?6O+`i%GNZvkFZcmF9NoZ^!Lk2GEZpA^5 zj_#V7nTb8w;fi+8Xb6@jQiszq?Jy7}HPa8j?b%~p3OPaL0C~{+`pN9cuKFY@m%oSF zd1j;GU1@!@?xv=!(Pu2KeTMttkjG6(53f(`AJZ--WoQ_Z@|{>Nc$ait@=RbZgMc$IyL<)@8?3w1L(otUp7y-}0_vgK%lY-uzsP8vGPQw|H{pL?zOY#oL`Mzjd3%M~^^C!n6;}vk$#WA& z5G2@8yeF{2=#JV=g7>?IcXUpXcu%`?Hl;WEzD`f3f?Ufdu`t7#p zQq}M1%a!Ie!2CjI=QFolHIoe@&6pk{IU$B`ZoxS5*cC3nrO1Gze3;ciT_zVEt8;MF z?IWX)vPK43)A%!#DxV8an!T+8^FS`FpR^Wx1{O$`QTa<#rgHMFa`bvHm=XwtgD(^z zlwb#c>ni)8kcl}zKk9R`_`d8^Z_;*j$?J!`?cFrF^!^?T=}~*Q0~-=XRh#+Bl(50F zK=_JVxmw1k0jI&%3k4q!tJVvHb)m}=J_~&wQ%!6hl!}!p#Q6<=ED87W<;zxXk%U7f z7|c{Sf0bLR+V}YF9D}RfmjAnd-Fb^dJ>g} zAZ@xtswQs3=^=)(rx_TeBtD~pvp*V8Las6a7)k1eH!;c99E#*8RV=X5K@4xr528`K zAc^^G^SAO)K=^ZReR}ZXDb2r+q;y=h&CVYI_+Wwmi;qpG8EH$=8}kTJ zFIjf`R-F>pb5&bKBKoacxcbFP2NIOr{kLKHfi1JhzI}@Qn*A_U~Sjfa-QwgcS)$3 zSHJY(W*C{JxId{ZCC*dz$&w19SN6zA1gfJmBEl(EwSyHu>O8US?n*p4a`8ZA!1D&( z%eF(~yA$jNm}4IrK>gikb88@4Hi>-%QPs|KcQx~SUz(h$cc`r2J&kN8xVi*R3iyli zX&{$9BN(EqLr!Je7zQb%>sqM*FQPZ*Cd_nveOwc@0;VH}a7dpyiiXA&uAfaC`Y0}7)Ci|>SF#%Zxad^g5)gl`| zM4BU~*b>dxMwmd$yCSC`6`VROG}3*$gQk>_E`LbDDRR36e@#SV_SwdWb-L(p+mBPb zf{xe5`dtvUxY=G40be0pv)AH>qIqfKRKSR+dlk! z>{E{Tc5Fgp_El=fXz@(B9d#D|fcgM=u<5g%G^zq8WRa42TimzmgEXu(0}f7nR}Kr8 zpYw2+$HtT|QB#KC(vJ2#Dof=Z%X4x5Bje7~P0pKHf$m#}3eCm@%@I2J5jX74>uvVI zE$kM$GM?8_6|`RK94qgw3cKMR;7z;l5O9TY zkQ4r{bSXeZWnXp#_wGV@u#4}bFb2rgq+T%t$)I@S9)dfy97H!9lykZ5!?lro8d)Ww z*)(Un3HP;yF!!Gj)x>Vw#(jzCXKULMNUk}@=MKbu0fxzuIr5lnV|!aLUTK5&!dw&~ zMcV2IHX?A+(eZ&cm?FL-q4g%o>BA-Dc1>0=u^)av7A1LwUSY>2kT^@+pPut0#h6SX z>F44P!@0hmvkl@q@MdpvKAOom3F`j&z=q=d(8gE;hs^G_sq6g5Fm;_|ng&V79XUow z_PAMQgMW-fIy@FGXcha%Qx3`5rmwejSVT(jUm*~^oTTw}3dp+B_^A-wU(NWB23+Ou zw`$&T4M=~Iq=9IgUk4qM$=@!2TbPh-b&^Y^~Po(;TrJ^q~NV_DtZKb zcU?yvOW+s!EnQWXxcM4AS;wi!RGeFqToe-kDR^A-?x`ig$zOW^>k#IEYwiSBJH*Ao zx1?fEowarijlsxF1v}k)J9+%&A#TKl9>psKU!hwLD39oBdt)O2NQ9|gLKUum%O3q4 zfjoH?0e*X9v&Z1DIO_D~XE6@=X6j70OM z2b>8MR1p=bQQ$~Z7(^B>z}X=s%0kw1h-yfMd`$vwX+4dJAx_T6VVR|$$b~_t`-_Na zy0qjP!QT3nd$fm(v($_hA&42d%~}w{`$DDYV1Kt=l}_`k)1A${QzL_(5fQ3iUo{vi z#QEauvE8k+MA(%MZ2<+FLN1vix!JkncM%aggq?)*Eu>Qr9t%etX}^g2zFCtZMi8P4 zdqA*pw5O#8L;0Hx`MwxT1onZpe4ggB5XB%518euNl|BPj_;bI%D3kAB8XLy+mnjj? zY1*JjPG5?}#kGK)UrAd1SPLrp=Bi?lup^)9jF+V3lkK_TIR_HcY%+vQ_;&|=}E zD6qprsc1ji*VIy2xYm=HQdp?$lflMTCn4^XlAbPjBFH_Z%Zz@HyNfj9_xs-FCq+ z76vzRDFr_jc72S4Xem2fS?A&1%90NBU6^Tzr#==HMlr9g$C3-mzE2~-f1s7Q2XJ77 zFJ!F5X596j%}i`eOrpZ7^5u&eS+(ntujZYGV9$2k+)j%QeuXF|7UlXi+dDWA+PPKu z5llw@Z#5;ey3Pu4-{^`lg^U$+EaMWF+^sn)e0(_%ibn66!5R>$5f^eom98uC1t^!( zL-e%*u!J*eQOsN2;-73Dx3WgQ%a_?;VPHVKH7Nf)M)5xC%x0SNj0Sm~-_MLW;`%k< zZ(Numzd^xLkDjXHgp|aVP(#+a*8wO78NNdP@3$7WZLrz7%pvX9%Hi$C#tszOYDR(P z@M57FW7~=C^KsV4yyUs!KT<|s6lk5Q5DTVBngyQo!HHy(Q(dF}_7V4$DeyNtN zk+M(9W`cy6Or~dKy@qAY(JzNLvbCrR44AXf$;jLrgQ<~ZekTxi#39Um{o2i~O?!zq zeEr+ruR2w28m>5(^dux3kJhW&o1te-u0F)5iQ^q>LX&*GO}iuge0!L zifA`E=1hFX_QqcLxW?QvH~J?Fw=|cN9>5`rd*HD`XcwW@v4oF(eTkKoJ|@P-L7)R) zTU)#RJ4pjQOO+WYh{vXHCv2zfAAUXvzM$E5mg$@09aG6KPs?TZKDW|O-XW3*cu5U7 z&NrjHf~)RpDEN=pgOwZw~x? z8j+|M=iTfy!bwvhao8el(JjG`%9I5XxOm)>g#jIRoY8f3I$et4;N52l!e&954!=E) za1W4Bibct=ZgXV>&n|86v*NQF?sc4-)2K6maovDjF3lg#)Xy63_d`TqS-h*Xu?01~ z9Ad0A&Jvp$;n&zV>0_+PbY%5~v19df#MiYm0Wetn0}raa_jP%mZULPtq6Zc+ZHl^K zp|j@Q>HKe^RUZg5D#pA9Tdar`WcQHYU;N29|7Vf=o@#^D_4otK;2i2C*}4I(<>lvh zPFmaze##EIUM>>ZTvjfO5%kb-VrsYm`E5N~#N|_TL|^}sj492YXCn;Opd@D|5ArF? z2Hls*+#pidN9(}`S9b_5LLwb%a(&hDN$UvHZr{o6Pb&U7y#e>e4Si{{rC;EbZzLVz z7bstv`mNxw00F|^bQx5;4s5X4XzG)s`H|XdOdh8A-_6Vu)rKvpMt`en>0+LJmLVx8 zk?6lt>d{f&8!YE2@wi0%q2wKEqDue$#9n`8NK{CPNW)s;8an8xC$YT7g}@b5eCx~C z!4to&n)!yw$=uE#Id<}NvD4;gmHxyGcXCj3z3L63!!k{CyKFv6#tD#+$>OgB!p%%c zTNM$i{KLu9xq1)>rziY(#*c8g=%@;TnYhDH!W7+|I=2a`j!fP3+moE*l1u zUbJ;h3A~_S><70u#@vH`a2Z)&dBb++3P-Ten!Q&ctnrgc#pnd3UJSUw|t|KgTOo;|dhwRSd3Go4Y2d9>4O#qR%_8wI^yE9f?9_TXW(_orHy}^;$ z+05_dZhu8mCP6h%OdlrdTsIU3o%GUrj*sxh%b4Ebw=dbZ2-+Wm21PYojoz?SsE&`d*Y z5B>>V|JpU}#ib)vh+brgNEP{_VfEVb+Ng*otmaZZ9pFHGqTWIgjz&=w77t41A&Pne zJ*;$t^N|0*JZJmu( zQ7yHuFnJ(+^mB2#)`+Pn!==?H@t4-s%Y+FwiPPID5qq>tfsbsgQD{?!Vd+-64E&;b zgHn*K=+q!3otCr}qI*mkQ*vEicuP?e{n1an-}*9h63O6@5A>=pR33#M&%B~iivp|N zxSH0Vu7>}8_Mvs#>F_&PcFPOVb;CY*v$JOW3V+$CSjW1~j$?Vb$*Vdoc`gBN$gfhOr{$ z8wTD+x<`n88fpHC%c5Z$>GK=)RS9i z6=?Ucw>l=_17*ceTm4Bhf5g?+SP^V&W6$2*g*yqs;W)EsqD_X7A7`)8J;3;`X+wJo zh1M!XJ38Ahc9kX%i=zW0$5`bl75hP~yIX%vV*>Qg{FttGI%Dv|owEoz>k3H8AAX4L z#6lPS%NI2xmiHartUv8)?6IIQJP#(5&lyt^ae>clW^N~Lj;FBsxu_vz{IgYW+K`zvq5m>{T;v(2 z1z|e=HEoPiZua#CvpvLtc^#*0lh|VPT@K@K@C?2WkpR0!w0N(dH7E2q2Pzy~S2vtY zX|dQvh$n}BJD6e>Fs`V@Ij8O+Nt*11SLkGRaBu$S;2FoXF&iJnND#p=KLj51LD|}? zX+rP0O`mu3#Nsk1pvT+7zZx zm5_Hj>-P7zuT-^si5izw?-vZgLBWbAAgV|ED6fLvPrdBjkJk_^Azr`@BPdY~(eG>m zU!VH%bqkQK*fz;`dG9|2vJM#E)iT^(|5Vv@CHDEW?xGWcg)qtY&>XH${wREX6S+TS zt3a}Qa|t=2{v)dSA1}`o`V4Bi%;Li~e*W>0SEC0-(&5r=faU(K;r?sA#wOZqswbUp zFmxY<|M}2oCWF>z15(8XXE1)TN_h&y-GumS(}hV1N#qF?6wdTpX-jEWDw#k3_mYAM zp|X$w?-<1#^ix)V8R&9o0{cONydOTaOs0z=IU4f$kMtl(il7{|6Kup12Dyh?NS-7e zGol`Z8AKF0@{i5)T=Zc#q9=@7go~|@7g{FEnD58?^-_Att+{|2Vw|3;*1p@<6EjpW z|IIT@%uBbhrs>RkD2R<>QxL^gNp_dXxagIDf}<}}h~Bq8>+VFPi}x=`_Y08)4cS=; zgMA}XQ#oY?`!a4xXRF2NB^j#RmV0cpTXx%=%7O{xP;zRBas&-#@3nFfZgLg?vuKsL zm1gG4k7?t^D#}%v)mg4^)D?D2?uqPG>)aks)-fX3;8eMW=tdjS#>)5X2fP%q1;g~gE&6D-QGv@S= zlF0s}tov32V7-90T%u6!;^6Rg!?&r@ZJIFGQnT|E$u(1_;>fq9$JBbJ<{eFQ4dm;{ zzR7mWc4ol#bWRy^z->kDV9sZSrPesuJQxs2`*|ForBnUV09r^~#+S0BfGvjxTl}E} z$-Rgm1@Qgg8_X|9^Gp`MunabNEc7j0TDLv^&Q6;C=4uz}1{XWCReHZO+s{U1L^l~$lja{C)ZF%qfvH3K1X*I&r-(!L8>8dV>cyz$u4 z#U<;e&(;_h%D9T&s1oV*T2^12VF~y4G=VSzS}zR8xQajVX}_;md-%&YRQ|>>A4uj( zeIaxgjv1Om#L9=617d89m#{Zq?#!pV*k@Cfs4Z4%tgWkl zO332Y_#nZZ3bE5@64UnaYtPexCab~TqyBfou_g;jG^i*$@GH9r2R3Z1wWjG!TF-f1 zqlRaT$c1n~L1KH?r?Jd$naRN(+l#(eTw~Yq=8Z9{9fd#@sVT_a-QD*~n0uhMTcZiC zD_idT23@r3^73ZQKze@CK5LTX2tU&7ipDbY*svmvAp;0;t+A+KNylReb_j%Q;`pAt zjZWqSA)_4AUNYWuZfOqb_fKvs$nb>OBCs*JO@fg3XM_h;N6rv^C7fTbsrQDL*KJQZ zW*r~qL_XcH905q?U!h)2!%hCVJuqngX!z1H8Oejj^8}f81yJPvURaYXXT-toI61C$ zVM6`uE;Dm`GSpm{M&}G`Zpp`g@||pxOe%o2Lboi_rf0hb$YjZHnB#Nag${ad@%4s5 zDnbB*1#b}bXx--k1mS8f_aNd%^FUXS>-1>obY4>INk8vWq$}jAR2p6(tt-9XrnR(YVB}Pt0&b&@$h+??4`{8uiLRraExFEcjLFWI zsSmc&U+hkNI$*HGexy;@Pl#(W4Wg1=A^)OOe7%9+{|EBP%np%4Ihay=-^kcevP|+ zEN3sD47>|XH(l(R8?3`#M%UUxcQy=d4x4>+s!$c`Og!PpgMRvZ;sO`h6hyYbN;i|5 zUk9S1Afp+8)fJ^e1a&lc@W}h!sy++^JaCXm<;~$3OU$_PXiMv?rX<^C`4D4&x_qGT z&Fsqu1+U>v;_n$YZe#Qhag&TD*<4MW^=^FXfV zQ(^z)4g2jGZfO4&B0#zAo}X85V{kO2A_|1s59+XIm|cKS>C*ebwlQ;{ zDLZPs=va=i%*We7#;`WuV_&ttpR!b&0%!1F=C=^gbC!kH$*;MHnaAC&%g8>H572Xw z9z%$YvP_Xh%?bIy%BqCp$XGF9GXy#+(T<`bTOvA=zB|3Usnw zGE`oM4$@T>3HI%z6Eq&L*G z*@KfHGLgH$y|C?iG4ja=nDIMB&2V)XYDuq+fPW!(Ks+q;$R9o#C@2`x8#}Mfp`40i4Zh16=WLnj$NE^G zcRwQnO`q{}bHs(k#f7tbp7_x>^H!cWUy{gO@^G@DLf3y$0TJCk>BG7FezH}|KuqD z1$aqGXCQ)|-m}j$d}i`kZAVa_1~q;$%3=|!fjCU!_RRt|tGR;3hd#gJdPHl>#N$$^ zxAm!tR)WF;c*ZjP4?=g=Cc_w_2iNTjskDOSQLaI2FWOgd5}&jkFP|n%h+R~)H%wG;aQJ$#iiHXVy1= zW)v0VM&AO~KP5JR!SCz0hkVu?4G|Gn%T?YWj+=)PdNCZ{Yt7(g=r239F4ZA+?D z_DIdqCOqDoXySb@`(Am zR=oJLKf$G(exa<(U=vR++kmz?FN9|L2P_Vl`V$tf12XQOP)+fJEv-*NJFn;DTTL4a zzu_PidC|6WQf@XoFK}qrq6jmoXE5={5fQ)wqA$k@iF#|kjMKZN*(PiDnzJtAEl#&_ zIQdj|5LvX*ivg>pcOqK3RfB&?KZEn1onF$U-F%;PTspjq%F z$rxfdl&8)c{Oy>lMNa;um~KOHq4~Q}$^z?^xshOm-wtS${SxYO^b);jI@*g{|Sd0~rEdpQaa;nrZGYsKHEwgoe>v3=Dwy z*!INH@+y~Ir-Pv1vkpY{)pN122{>~!A?C zV!mg9N9P#QoJaERdw3Xh6VyfkUD{gA18t13lOH^^GljJ+4a3mNZS#IJ#oCiz_{0th zi@8!~%$b?$u_HpaEhpn*)=5%H`As=dJ9;W)E088sF%=EwS>M?pZ0Mx&k4sXxXpfd+ znd#$j%GD&)3*cEpMCOKe&(GPlgc`6?ha|cIhVlpXUtQxL955D|Cv0vv(~@)6;1tC0 z(bm_o@1mo6zGhZti)ZDFm)FSHevu5UYNe)^^q`3bc$9@kw+_c-g#xLB__)_xZ$F5G(?eT+R-Uz_5QKPRWq?6tyD#chSS zo>-i#AG;Sr{N0TI@s;u`Z<@Z=%(XlOzo}v@e{ZPW#n7&hN$Atar6H2}Ec-Uy1eT*# z%ceMxGjbo7Z@si^;^#d7=v_xe=UN1tJwtMD$}{?Ndy12Y?*Mb$HL3*cMc|~U7luB1 zyBFxVMkip^*DouU6PT&2 z`YLxJ+v}Nt>abz% z2SOW?>&`KTvOH3QYRi1pfH&1NDCiV|+RN2^TnN}|zdU>gdSi~Gg7I%RIY=IDDDHlf^6(6q=0?g6_Q<4ilF7C|KG77WKL``r8gA@ zGKT~p9kAoW+Qpy>n#E7wQO`ZE#q#Q3u^X0Hm+NhAG;K$r%V`9E2;%MPsj8NbeVhUe zzx+fux#=yosy=6*J9EinUS0{X@Zo^Hlfyb5G*DZ$=!0U|^>U3LXoerLJntYy&o>)6 z>gI4`#4WVov(`8u?e!5YL9pXspD z>E?qDeCsGi=p5I5(*e3ToZjo(LNyoh4mQ|s?{5D5yw!NBBJ{t&&h2pnn(ExzqgyCu z!d)}_RCha#NZyH>3kCXF@S6$c!4)>_1U%`=)?VqLc@2~X&&Dp=nivKFvnXQG~V1~V-{SX<(>R@$J0gH5H z%t5^r$f+{QRu305@GQWQyblb>O%(|51Q~Hm0&sq*Oqg9X1RUJUsi~>d)Kqs#q+~D6 z4?7cofU^K#c{we!U3~poBU?wlGV;~qVKhI@E)J0>W{;MJ){OTYPbqSi%#Xfhbt=@8 z*Yt3@2~SLPC)VgXIeTF7G09$XQm6yb5Jx~`z3k&GR{X5>o9pW8P|oJ&ruOjeM_I=! zKye`#4WIgFZSOzV*X55z|WB4-c76Zf5x@T-BaYWds zMOqNhgZBQ*7C>Non+xpLmA=K8oOm}S@%~&?(xgR77>9-Rf6*MXUB$!n|;C7vim8NUcriOleoTu zxrw-|8@=)&d~6Lx?A<>3q(u=NKA5!1!5+D`TLDjtTJK2aatL1iQ0RLCr{yIJkuJ>- zg0Z1|Zul&})z;T2gr!=;3_QgjYs;k})bgT`K2MjZ6hmOk7m4&g%nslu9cMl7rG*E5 zT5%)FKF;dR9ETHuJSkv$+2R)u4;k+-7(LR*Fd73J;b>|wY7~7y9-_uf|r7Hk^1Q;++IllforYsEC0Yki|^=LoKirL{A?4D16goJ|+ z^+x2A)%bhkAUK4ve}pRKG-mGAHR?izH16ji|3cl;_Agt z853_lEiQa}lZSMBcmp;HXS?QZuBXdBawtPyN)X3YCPEp9*WAgZjufqc+>hh!`Ka_5h_kxizd zaN6rK405INxoKDe^ZkyOPbX%{H|PJ3QIGbDtTRO#6o~o9u1d%NYUD|QiuS27wd%&{+ychMr z&zD;y{a11S&VU{Mfqto@AP_&IU`;0+ytq*A@f?Is)rpm%J12>c;>)dZbPnjyz!pBY zGCw>(uGe1w~FP#H_v34D-+IjBznDnP%MFNrhSW*PiOYU?Zkj32mzDv03yxR-!za zc((_l7!xSeKKBo8H;ao^EiJmxRrNkq5K>p)P?p66RO51gIA{~;{mnG_>kPzDLxGt* zgY(~&K`C$iPS1+lvP^9K5tYJgdc(AT)|9^Wb>IN~@~w*|vE>X9kV5yhDr5wq@lkuU zA|+_HKZQXSiO#Qa1(egH0h%7mlj;9$^!Ul?19HHE z0*qZ9Pq3*zuB2(NCX3j1#m)4Jzgz>c0AvANB#5a(MT$%9)rw5Nt*_G|suek)>+5lo zlGA~`Le3aF0em>0PXVuwi66jQ99wI22NmA*3H0kYT)_sSn&uyP-P*sEB7qr8Xw;cx z{b=PWKZAqyxz=8*q3-#;q+En~1E`V^^4c`HjDzU>@xSf`G-z3eYc{5t3*13g%f9tlK+>vVp@W}f|wNhIXlddGh z@d__SGrG}oC8h*@DrC%QE)X}Y!WFAIXr6Jran#m+KPCoU3BWY77}1`vm%p4`TN)GN zk!4o@5s>U94kP-V&d&w75VC%W0LZ9UnfYKhkuId8R{Bl_7SLY3k7BJ2wm)ET=0ctH zb_+mn0~g(rlf%(M*>qhd@pEWouSd$IAN#tw5dZY)Q?{)ppZtgjQ@In;iORSo&It^#<-V(J8JWWf*W3@XJF< zbjfiS0KirT2b}>{UxyK6SYtD8Qfl5ULIbW_xk2dz@Mx&e z{?PS>)Y7obpl-33-SkM%YnvuB=UmQ8&AwE9tSCZZki z+uXTq8Xi{POU*n!n8J$Q%r0+CJo)M`-T^CcH31%Jod65kF0j-cEk<&~`O#P56*48y z+9R`+8kBC;wT1f=&w`BO8m1yDCLjeFk0fv0Kty%V<_N6q0tb84MYTzTn|)>Mcc842 zu(sDy9DcE&A$JcDldD+(l((8|b4U$&8iCVKg3(^nXF>!DC8%zz^{)Fvm)FkV>Xm^L zMgLX9dfcsms}mf|3|Nx$jtEP|O(5L>aGT@eEkzD1f+5iPiYMRI;K!$1>Mf_2i?cLY zZG-GhQ?1D{RNe2^Iq(#_y{@2u4>BI*ka4jhXKWkna&fXe!8g!<|LcbB3a{{E2dAdz zWL)-YQgb9104nrycajI z3p>^T#`mndNiWGyzMnznxoQE01 zz9XGH1MeRKOaN(MVr;O4_t71L=quej8_|<|C|cM&-tmUh3E29r4|)0CCv%vFU-#qNoSdZiv>ef13*b zh5rBf)**5-73LxMqd_aGmjdn(fWIH!zklDLtWR(fRRZ)YrPd_iB>Xt2W9U(0bgk-1 zD%pf`y>FA>jP$tty7;e>rX*{<&jeMM1pZ&Mqh8>c#=*bQ(FCMfZiCSdD3e`Xs@CPD zion`g9udL3I;5cuq15FWcje#6O@4k?lm?x4RktUGm~ z{JjL_#0AixcPid=oXY(I$gOhtposHCV;=f|1S_MGMG-FUea3RA#Xq+0D8{yQ0- z9G}FpY$OKg<>aWpPN#M@%az^{&&AKuVJ~zGqTlu>UR)ZzoC_N8RKc@R5m({)0kU&h z-VIpX6#xH|xAR3Me!qOC^6M?JWCe`-@wlid?HNfi4{N85*`%Z-%nT~n-@oxiHfqGn z=Ls(tFz2nvED`hMWD;7%k<6X&?$26Lmb)0SyNd5I1vAOKb$i?>fmI|6`I%EN*ZUwNh-WzOg>2omuDwT zOXel?9w!z`1_Q(90!<3RLajz&v;gHsh%X4IZ_Ho7oUGN)d|RSMaMlej?l)}MAJ=3d zZq@(;&tx5JJA1Y z`=&HU!~2>SxSCRSp&9}7VA+TIN~c_sO;#sgk3F+RWW>ysg`Xji^H<1!7r@T!q0n{U ztKC~FL#^`S=*sir7ZMI>?p8BD2zGwo<)_DY(T8~+N&)!iN>;M5;Yk=_G7^{Grn)w~ zbny1{!qck&3-28wb9P8Wcr6{#QE>DPnH6P1<2h`=eU)kAGzd%4CdrA#qcxxlxpSO1``JgrwgDB zdi2;&MCv$f$p+N3r{fhn7egKan5(h0$f-C9a9Aujs1?g8M*zp5$XM5H>~5`-AWKrmvh-%{z!%s2@Vk!D(iEZcg59YlfV6-g14}b>t-y0>J+qzGT!$ z&7Rkip1%t`c-!K(Y^+Bs^HmPeUWwm$O!E_6WY?X?gUoiXU+4qlvTg5hr~5O*yrdh- z3^%p3tq=%4TW~xYv^)rVaPY)!_x9xPbN>dCQTy`{wJ-pOtbeHYRS44`=k+3hI}p1r z1?hQC2FnjYHGqizck0dG#Q>PjE6;%SpaIz*-h-AzE}I((eX0%|SxkJsd6s(i`Nu)p zQMrG|rAq?8y)|GixB^--;JPgUj-F96hAf*CKx!$ckvaZkl-mwksxvy`!ep?hpcMT{ z0%R9V^@B-*%?e++e`%eIA;@%rGx_u}tUny>U(F(Hh!TU@fF-;2zw4GFTT*)zACvcP>NtyIJsICA31Dp?v|&e&g#-*=s5m%TiY)3ya0 z(F^}}j-Z$Us7rXyj3iR@FY4chY4f9hGvI17UR%@|kd4ffi#f&>WD&+qE?&tq?-Op2Ckc4#o272B9 zIHB?%U=o#9$}Qgcolh<;vh#4d%LjV6Y#}c1@PcBhalkT{{(E8twkxvw7Ffq%U2a(yC@@YhnR$v!lpnokaIyiNn| zazo1CNDw>?VM_n`vLRmqqdv?}uJB0<=^gnXQ8+FRZ*Ej4AfMicxoGk}g(X(R@>z$D zdF%*-MW`jGmMbPpNLxJ(w{)T9C z6%g}1uil-)`gD{9*~l@7H5!ZGeQpcy)4<1o_PC&o_qbFzQ8ijer*Pt`|Lw@VL_~Hjxv2-*%^N(Z3_6p2!_B2uKe1e@ z_J!Jn-qPkXGkhO7{;l=>__rDHR;rckrPS%-$TC}EZw+&Q7rs_ifl8|ys7c>j5#3*q z1fyNgjE^`ys+4BqYolM60b%ssJ@eOKWn4mzPE%mM6`U;yevFRORUC zXfphp-DCZk@p1hR#grD;tq@_&d&Aee`JVM}skuBqrT73e8A;RhkL#v;4HV+d>IVZ$ z13zqOo7y#e8=NA2+F-+D}pFVJJ)x!?7ep#PB`LlyNyk6~4&IXc;#h1;2+IjFzE z4W}f$7vhaoS}SrdmK1N{rmWi58b=S*E+Y)Dg&IaV_1N)IDBIB+bsYW5M)mNG6ryX~ z;!fD3pG__$z~b1)8-t9Zyj;32I95HAIEb*ZjOo3$+9l-X;CEkiqBZekI zd)bU5BVccLY~ClANW)D1UtNKtXt$k+es)qXxJ;cmIJ zi~O`&n1|*5av$W|uM=Q~t78)}n56@sm}k#CJv{-uU@6lQdzfhvV&D2@Jt2%UdSzzb zJFZVvzTN)$>)Q=i9QAEpslPdEK!h^(b6ti$;w+CJIbBr+E%kh)dF{8Ij~4l?Ki^F; zG}Uz6lux{v`rF-jeBwurR}UsA3}+>4olhPQ-8$Gt9Jfhk6@7Hb_B_~DsP|eQ0bMN@ z>S(vG?;hW+69hhtkr!nhSoQfLcEiVR$Aink-}o9zlaZBWw7%IHy;VzVIV8qX9;12A zQO{@7W^ua(v8D9ks6}J&bhCnd`trMJ-X#g)Oy_mG=|uGDxw~uj8c4)u8Xh;edztvW zc9xUSS|j^1aTCAJg&7brS0z=;uG=|&Mt9^#ZjvJ7(F4a4Dlvmwy9H4yda_mAz2$*{ zGN>LXMaed)x!hi9=M3#W&Z}=`c6%DRy{nQeFxjN_j3-Qo7N%RRADB7p>ax)wM zBvZ!Tw^9r`f&96Prz}6Rvww?z@)O)E4x-pa@VE6YEZvZL#dwDQEiF!k>N?MP!D8vm zbG`gH6S<=3R|4nt&rrWrgbiD|$uXE22G2|S<(oV@-Jpv6Uv*rGQ&VXkd@N=xge*oD z7*_;EKu&QGeu17AcMCEH<= z>$aSfMq7v+3NU?0k|`s)^tT&YUyX2#4}O;M4@v)8N-x9W?G2G}PI74zJ?$x}>`)B6Dy*>(V-(Vaw>}0%Wv<5=ea&gXZ)Wyc1~)1Lnvy&Gow~I2s)y6a`y;b&1~OI1(y*qzX8C{}y!Fp(CF0*0>CqrR8aX%q|1*cfkO% zcE0#R7b3yJ4A+WFAl+sa&m(4@z+cD4Z6@A}C*^bK?+a7q%EEr)B>*Ej0rWLPql-## zwv%mUWK8q}>Jk#F`dsSUl9VFsgL4cku^}1JXc~91o#MSzN7ykjtq|N7aNlhxoaMY5 zQ})#gpwmZGmvusH;8+8M_o_Q!z8D@l=3N*YIlqu|53RCo{43ZMH}1TZ%BIiIgr64I z>yE-gr&cB#TJM*kc73Arca*e6io3wY1U#L-z{ub2Uw5nbhQN-OIa7z}Oz?k{c!Zq3 z#otZc#vr}QaGCey9?X24kD6!oR9spVaz#Hn!*f`dJXnP$?xQXe*Nm^M8RLQjqvWqk z0zmL4yOc5r$}Iq{3jshh@c>NVg_y|C-i7C%9GI&o06;la%*jgj16x%73`>=7#?p3o zlww198-%Ulx5EAn!tYhdVEWR)*9W5y+IrIil2GW=9^9TA^npGXyMl8Kmhx98Oz6nL z+-zovDKOa9p*^wd8-ausWd9LaW%kU_cHPWOw!LT9Qc%y+1<{z|GYmdLv_Vc^M@)VO zid<_bZ*yYfG{}usws8cH-OO7UTQ1N$jIo{XEcgGeA0gQ^NvI6vQ<1u z4b#4qU7}UeqXX2ab5}#bnC`=w8M}Q5G=yA^yvU{%D!jfPvL;da7ZgUn9t!qm$b*v( zVGG+i6>uXNEb1J0q2RNGaW8wp2n8Xo6?tRyK_8)F*3rn5Xzi-TcCfY0JCw!;MqSY@ zza{Irc=#CsK#hi|>E8by$LUoG;FauuF#|Y);4{lg(!Rfd(p9A$ol#A7pBx$xR6~eH zZ48EYaTFJwk3RL{+^+NaEJ-PL0F(=cDky!||lW;xD3jLCnzlp%sNA0DJ*g=^Sh#1ZjySNq1RToDL!6C{W*NL`EY$0p<-@lp*!fk3()--TuhuT`&qKZpxO2+U@oD>jai)4Ii8gvw z*X&=}%`hLIL|FmSEwH)g=blsDDq)Hn|BSN^wA$;iiqAP8MQ*6Od9}CEJ;zNBb(7jI z6RHVs3CSsbsbKCU^4y0x#eWp7so9y;TJfD~l5}AnP4QQ|PcX9c3QBd3T@+Xxp{h#m zCHHoBh1(naaAb!TgbX@<#=Eu8(mr7E3F!wW99ieo-Pr|Ff)xz^`~&h_I3 zU6nSIgJO>lSo{&-mKr8|11QH#j8o2T6Cp(A@b410_+ux2C`x<+7K#E6cFwl1ZG7YZ0Gn3)`Tzg` literal 0 HcmV?d00001 diff --git a/thirdparty/luv/docs/pic/luv_test.png b/thirdparty/luv/docs/pic/luv_test.png new file mode 100644 index 0000000000000000000000000000000000000000..ad6b34e97fdc7673915d0802c95b062dfe4ff749 GIT binary patch literal 10861 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 literal 0 HcmV?d00001 diff --git a/thirdparty/luv/docs/pic/luv_usage.png b/thirdparty/luv/docs/pic/luv_usage.png new file mode 100644 index 0000000000000000000000000000000000000000..1d70a7b76a8c5775b5ad3e09397adf5c3c7fa85c GIT binary patch literal 46871 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 literal 0 HcmV?d00001 diff --git a/thirdparty/luv/luv_oh_pkg.patch b/thirdparty/luv/luv_oh_pkg.patch new file mode 100644 index 00000000..cb7a2825 --- /dev/null +++ b/thirdparty/luv/luv_oh_pkg.patch @@ -0,0 +1,21 @@ +--- luv-1.45.0-0-old/CMakeLists.txt 2023-05-30 15:27:25.000000000 +0800 ++++ luv-1.45.0-0/CMakeLists.txt 2023-07-06 11:12:23.773570014 +0800 +@@ -244,7 +244,7 @@ + endif() + + foreach(TARGET_NAME ${ACTIVE_TARGETS}) +- if(WIN32 OR CYGWIN) ++ if(WIN32 OR CYGWIN OR OHOS) + if (LUA) + target_link_libraries(${TARGET_NAME} ${LIBUV_LIBRARIES} ${LUA_LIBRARIES}) + else (LUA) +--- luv-1.45.0-0-old/tests/test-dns.lua 2023-05-30 15:27:25.000000000 +0800 ++++ luv-1.45.0-0/tests/test-dns.lua 2023-08-03 11:12:40.587973091 +0800 +@@ -161,7 +161,6 @@ + p{err=err,hostname=hostname,service=service} + assert(not err, err) + assert(hostname) +- assert(service == "http") + end))) + end) + -- Gitee From d36ce6b6475faac978cbf642994ab1f8ac157dbe Mon Sep 17 00:00:00 2001 From: luozhu20 <1393302983@qq.com> Date: Thu, 24 Aug 2023 11:59:01 +0800 Subject: [PATCH 2/2] add apr Signed-off-by: luozhu20 <1393302983@qq.com> --- thirdparty/{luv => apr}/HPKBUILD | 116 +++++++++--------- thirdparty/{luv => apr}/HPKCHECK | 11 +- thirdparty/{luv => apr}/OAT.xml | 4 +- thirdparty/apr/README.OpenSource | 11 ++ thirdparty/{luv => apr}/README_zh.md | 8 +- thirdparty/apr/SHA512SUM | 2 + thirdparty/apr/apr_oh_pkg.patch | 43 +++++++ .../{luv => apr}/docs/hap_ingtegrate.md | 50 ++++---- thirdparty/apr/docs/pic/apr_install_dir.png | Bin 0 -> 17697 bytes thirdparty/apr/docs/pic/apr_test.png | Bin 0 -> 25016 bytes thirdparty/apr/docs/pic/apr_usage.png | Bin 0 -> 33686 bytes thirdparty/luv/README.OpenSource | 11 -- thirdparty/luv/SHA512SUM | 2 - thirdparty/luv/docs/pic/luv_install_dir.png | Bin 21623 -> 0 bytes thirdparty/luv/docs/pic/luv_test.png | Bin 10861 -> 0 bytes thirdparty/luv/docs/pic/luv_usage.png | Bin 46871 -> 0 bytes thirdparty/luv/luv_oh_pkg.patch | 21 ---- 17 files changed, 146 insertions(+), 133 deletions(-) rename thirdparty/{luv => apr}/HPKBUILD (35%) rename thirdparty/{luv => apr}/HPKCHECK (63%) rename thirdparty/{luv => apr}/OAT.xml (100%) create mode 100644 thirdparty/apr/README.OpenSource rename thirdparty/{luv => apr}/README_zh.md (46%) create mode 100644 thirdparty/apr/SHA512SUM create mode 100644 thirdparty/apr/apr_oh_pkg.patch rename thirdparty/{luv => apr}/docs/hap_ingtegrate.md (59%) create mode 100644 thirdparty/apr/docs/pic/apr_install_dir.png create mode 100644 thirdparty/apr/docs/pic/apr_test.png create mode 100644 thirdparty/apr/docs/pic/apr_usage.png delete mode 100644 thirdparty/luv/README.OpenSource delete mode 100644 thirdparty/luv/SHA512SUM delete mode 100644 thirdparty/luv/docs/pic/luv_install_dir.png delete mode 100644 thirdparty/luv/docs/pic/luv_test.png delete mode 100644 thirdparty/luv/docs/pic/luv_usage.png delete mode 100644 thirdparty/luv/luv_oh_pkg.patch diff --git a/thirdparty/luv/HPKBUILD b/thirdparty/apr/HPKBUILD similarity index 35% rename from thirdparty/luv/HPKBUILD rename to thirdparty/apr/HPKBUILD index e6f36803..96c2a031 100644 --- a/thirdparty/luv/HPKBUILD +++ b/thirdparty/apr/HPKBUILD @@ -11,100 +11,102 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Contributor: Ding Qian <1052888395@qq.com> -# Maintainer: Ding Qian <1052888395@qq.com> -pkgname=luv -pkgver=1.45.0-0 +# Contributor: dingqian <1052888395@qq.com> +# Maintainer: dingqian <1052888395@qq.com> + +pkgname=apr +pkgver=1.7.4 pkgrel=0 -pkgdesc="Bare libuv bindings for lua" -url="https://github.com/luvit/luv" +pkgdesc="APR is a software library that creates and maintains a set of APIs that map to the underlying operating system" +url="https://apr.apache.org" archs=("armeabi-v7a" "arm64-v8a") license=("Apache License 2.0") -depends=("libuv" "LuaJIT") -makedepends=() -source="https://github.com/luvit/$pkgname/archive/refs/tags/$pkgver.tar.gz" +depends=("libtool") +makedepends=(python autoconf) + +source="https://dlcdn.apache.org/$pkgname/${pkgname}-$pkgver.tar.gz" autounpack=true downloadpackage=true patchflag=true +buildtools="configure" -syncsubmodule=true builddir=$pkgname-${pkgver} packagename=$builddir.tar.gz -buildtools="cmake" + +source envset.sh +host= prepare() { + cp -rf ${builddir} $builddir-${ARCH}-build + if [ $ARCH == "armeabi-v7a" ] + then + setarm32ENV + host=arm-linux + elif [ $ARCH == "arm64-v8a" ] + then + setarm64ENV + host=aarch64-linux + else + echo "$ARCH not support!" + return -1 + fi + if $patchflag then - cd $builddir - # 在编译时在CMakeLists.txt中无法link到LuaJIT,导致编译不通过. - patch -p1 < `pwd`/../luv_oh_pkg.patch + cd $builddir + # 三方库中线程未实现, + patch -p1 < `pwd`/../apr_oh_pkg.patch # patch只需要打一次,关闭打patch patchflag=false cd $OLDPWD fi - - if [ $syncsubmodule == true ] - then - cd $builddir - # 同步子模块,这里采用git submodule update容易失败,进行git clone下载 - git clone https://github.com/libuv/libuv.git deps/libuv >> `pwd`/build.log 2>&1 - if [ $? != 0 ] - then - return -1 - fi - git clone https://github.com/LuaJIT/LuaJIT.git deps/luajit >> `pwd`/build.log 2>&1 - if [ $? != 0 ] - then - return -2 - fi - git clone https://github.com/lua/lua deps/lua >> `pwd`/build.log 2>&1 - if [ $? != 0 ] - then - return -3 - fi - git clone https://github.com/keplerproject/lua-compat-5.3.git deps/lua-compat-5.3 >> `pwd`/build.log 2>&1 - if [ $? != 0 ] - then - return -4 - fi - cd $OLDPWD - syncsubmodule=false - fi - - cd $builddir - mkdir $ARCH-build - cd $OLDPWD } build() { - cd $builddir - ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -B$ARCH-build -DBUILD_MODULE=OFF -DBUILD_SHARED_LIBS=ON -DWITH_SHARED_LIBUV=ON \ - -DWITH_LUA_ENGINE=LuaJIT -DLUA_BUILD_TYPE=Dynamic -DLUA_COMPAT53_DIR=deps/lua-compat-5.3 -DWITH_AMALG=OFF -DOHOS_ARCH=$ARCH -DLUA_BUILD_TYPE=System \ - -B $ARCH-build -S. -L > `pwd`/$ARCH-build/build.log 2>&1 - make VERBOSE=1 -j4 -C $ARCH-build >> `pwd`/$ARCH-build/build.log 2>&1 + cd $builddir-${ARCH}-build + ./configure "$@" --host=$host CFLAGS="-Wno-error=int-conversion" --enable-so --with-mpm=worker \ + ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes \ + apr_cv_tcp_nodelay_with_cork=yes ap_void_ptr_lt_long=no --prefix=$LYCIUM_ROOT/usr/$pkgname/$ARCH TCP_NODELAY=0 TCP_CORK=0 \ + ac_cv_struct_rlimit=yes ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes ap_cv_void_ptr_lt_long=no \ + apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes > `pwd`/build.log 2>&1 + make -d -j4 VERBOSE=1 >> `pwd`/build.log 2>&1 ret=$? cd $OLDPWD + cd $builddir-${ARCH}-build/test + make -d -j4 VERBOSE=1 >> `pwd`/build.log 2>&1 + cd $OLDPWD return $ret } package() { - cd $builddir - make -C $ARCH-build install >> `pwd`/$ARCH-build/build.log 2>&1 + cd $builddir-${ARCH}-build + make install >> `pwd`/build.log 2>&1 ret=$? cd $OLDPWD + if [ $ARCH == "armeabi-v7a" ] + then + unsetarm32ENV + elif [ $ARCH == "arm64-v8a" ] + then + unsetarm64ENV + else + echo "$ARCH not support!" + return -1 + fi + + unset host return $ret } check() { echo "The test must be on an OpenHarmony device!" - # 测试:使用LuaJIT来执行当前测试目录中的run.lua - # ./LuaJIT tests/run.lua - # 注意环境变量的配置. + # cd $builddir-${ARCH}-build/test + # ./testall } # 清理环境 cleanbuild(){ - rm -rf ${PWD}/$builddir #${PWD}/$packagename + rm -rf ${PWD}/${builddir} ${PWD}/${builddir}-armeabi-v7a-build ${PWD}/${builddir}-arm64-v8a-build #${PWD}/$packagename } diff --git a/thirdparty/luv/HPKCHECK b/thirdparty/apr/HPKCHECK similarity index 63% rename from thirdparty/luv/HPKCHECK rename to thirdparty/apr/HPKCHECK index 7ff48edb..8f4d0014 100644 --- a/thirdparty/luv/HPKCHECK +++ b/thirdparty/apr/HPKCHECK @@ -19,15 +19,8 @@ logfile=${LYCIUM_THIRDPARTY_ROOT}/${pkgname}/${pkgname}_${ARCH}_${OHOS_SDK_VER}_ openharmonycheck() { res=0 - cd $builddir - mkdir /usr/local/lib -p - cp ${LYCIUM_ROOT}/../lycium/usr/${pkgname}/${ARCH}/lib/*.so* /usr/local/lib - cp ${LYCIUM_ROOT}/../lycium/usr/libuv/${ARCH}/lib/*.so* /usr/local/lib - cp ${LYCIUM_ROOT}/../lycium/usr/LuaJIT/${ARCH}/lib/*.so* /usr/local/lib - mkdir /usr/local/lib/lua/5.1/ -p - ln /usr/local/lib/libluv.so.1 /usr/local/lib/lua/5.1/luv.so - ${LYCIUM_ROOT}/../lycium/usr/LuaJIT/${ARCH}/bin/luajit-2.1.0-beta3 tests/run.lua > ${logfile} 2>&1 - rm -rf /usr/local/lib + cd $builddir-${ARCH}-build/test + ./testall > ${logfile} 2>&1 res=$? cd $OLDPWD return $res diff --git a/thirdparty/luv/OAT.xml b/thirdparty/apr/OAT.xml similarity index 100% rename from thirdparty/luv/OAT.xml rename to thirdparty/apr/OAT.xml index 00f4c474..c2cd820f 100644 --- a/thirdparty/luv/OAT.xml +++ b/thirdparty/apr/OAT.xml @@ -4,13 +4,13 @@ - + - + diff --git a/thirdparty/apr/README.OpenSource b/thirdparty/apr/README.OpenSource new file mode 100644 index 00000000..d5d24fd1 --- /dev/null +++ b/thirdparty/apr/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "apr", + "License": "Apache License 2.0", + "License File": "http://www.apache.org/licenses/", + "Version Number": "1.7.4", + "Owner": "1393302983@qq.com", + "Upstream URL": "https://dlcdn.apache.org/apr/apr-1.7.4.tar.gz", + "Description": "APR is a software library that creates and maintains a set of APIs that map to the underlying operating system." + } +] diff --git a/thirdparty/luv/README_zh.md b/thirdparty/apr/README_zh.md similarity index 46% rename from thirdparty/luv/README_zh.md rename to thirdparty/apr/README_zh.md index 72c848e2..0bd924d8 100644 --- a/thirdparty/luv/README_zh.md +++ b/thirdparty/apr/README_zh.md @@ -1,11 +1,11 @@ -# luv三方库说明 +# apr三方库说明 ## 功能简介 -luv是一个用于lua的libuv裸绑定的库 +apr是一个是创建和维护软件库,提供一组映射到下层操作系统的API。 ## 使用约束 - IDE版本:DevEco Studio 3.1 Release - SDK版本:ohos_sdk_public 4.0.8.1 (API Version 10 Release) -- 三方库版本:1.45.0-0 -- 当前适配的功能:使libuv可用于lua脚本。 +- 三方库版本:1.7.4 +- 当前适配的功能:内存管理和内存池,原子操作,动态库处理等 ## 集成方式 + [应用hap包集成](docs/hap_ingtegrate.md) \ No newline at end of file diff --git a/thirdparty/apr/SHA512SUM b/thirdparty/apr/SHA512SUM new file mode 100644 index 00000000..ea0bc7bf --- /dev/null +++ b/thirdparty/apr/SHA512SUM @@ -0,0 +1,2 @@ +a8c90062eb78b6a33efc968959d1aadc1a73a4d40dbdb7d2745be54471de6d4c28dc154c85e9c5b9a172ac81735b69636d22b3b85d0b7d7c7f7e2670609da3cc apr-1.7.4.tar.gz +5d7ab96341c188c3832b321067a5f212703beacf2471e29478dc7f476bc5e70821a054efb51c997451768932b65ff702bab72d65be8e116e6a11bb90c3e5e80d apr_oh_pkg.patch diff --git a/thirdparty/apr/apr_oh_pkg.patch b/thirdparty/apr/apr_oh_pkg.patch new file mode 100644 index 00000000..b560076f --- /dev/null +++ b/thirdparty/apr/apr_oh_pkg.patch @@ -0,0 +1,43 @@ +--- apr-1.7.4/test/testlock.c 2022-09-13 01:00:36.000000000 +0800 ++++ apr-1.7.4/test/testlock-new.c 2023-08-22 10:58:01.325976646 +0800 +@@ -538,7 +538,6 @@ + #if APR_HAS_TIMEDLOCKS + abts_run_test(suite, test_thread_timedmutex, NULL); + #endif +- abts_run_test(suite, test_thread_nestedmutex, NULL); + abts_run_test(suite, test_thread_unnestedmutex, NULL); + abts_run_test(suite, test_thread_rwlock, NULL); + abts_run_test(suite, test_cond, NULL); +--- apr-1.7.4/test/testcond.c 2007-11-18 08:35:57.000000000 +0800 ++++ apr-1.7.4/test/testcond-new.c 2023-08-22 11:00:28.145299823 +0800 +@@ -659,9 +659,7 @@ + abts_run_test(suite, dynamic_binding, NULL); + abts_run_test(suite, broadcast_threads, NULL); + fnptr.func = nested_lock_and_wait; +- abts_run_test(suite, nested_wait, &fnptr); + fnptr.func = nested_lock_and_unlock; +- abts_run_test(suite, nested_wait, &fnptr); + abts_run_test(suite, pipe_producer_consumer, NULL); + abts_run_test(suite, ping_pong, NULL); + #endif +--- apr-1.7.4/network_io/unix/sockets.c 2015-03-20 09:31:17.000000000 +0800 ++++ apr-1.7.4/network_io/unix/sockets-new.c 2023-08-22 11:49:19.856038926 +0800 +@@ -340,7 +340,7 @@ + #endif /* TCP_NODELAY_INHERITED */ + #if APR_O_NONBLOCK_INHERITED + if (apr_is_option_set(sock, APR_SO_NONBLOCK) == 1) { +- apr_set_option(*new, APR_SO_NONBLOCK, 1); ++ apr_set_option(*new, APR_SO_NONBLOCK, 0); + } + #endif /* APR_O_NONBLOCK_INHERITED */ + +--- apr-1.7.4/test/testsock.c 2023-08-22 11:36:10.655568812 +0800 ++++ apr-1.7.4/test/testsock-new.c 2023-08-22 11:50:51.215628649 +0800 +@@ -677,7 +677,6 @@ + socket_name = IPV4_SOCKET_NAME; + abts_run_test(suite, test_addr_info, NULL); + abts_run_test(suite, test_addr_copy, NULL); +- abts_run_test(suite, test_serv_by_name, NULL); + abts_run_test(suite, test_create_bind_listen, NULL); + abts_run_test(suite, test_send, NULL); + abts_run_test(suite, test_recv, NULL); diff --git a/thirdparty/luv/docs/hap_ingtegrate.md b/thirdparty/apr/docs/hap_ingtegrate.md similarity index 59% rename from thirdparty/luv/docs/hap_ingtegrate.md rename to thirdparty/apr/docs/hap_ingtegrate.md index 55c94416..2440269e 100644 --- a/thirdparty/luv/docs/hap_ingtegrate.md +++ b/thirdparty/apr/docs/hap_ingtegrate.md @@ -1,4 +1,4 @@ -# luv集成到应用hap +# apr集成到应用hap 本库是在RK3568开发板上基于OpenHarmony3.2 Release版本的镜像验证的,如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。 @@ -19,61 +19,57 @@ ``` - 三方库目录结构 ``` - tpc_c_cplusplus/thirdparty/luv # 三方库luv的目录结构如下 - ├── docs # 三方库相关文档的文件夹 - ├── HPKBUILD # 编译脚本 - ├── HPKCHECK # 测试脚本 - ├── OAT.xml # OAT开源审查文本 - ├── luv_oh_pkg.patch # patch文件 - ├── README.OpenSource # 说明三方库源码的下载地址,版本,license等信息 - ├── README_zh.md # 三方库说明文档 - ├── SHA512SUM # 三方库校验文件 + tpc_c_cplusplus/thirdparty/apr # 三方库apr的目录结构如下 + ├── docs # 三方库相关文档的文件夹 + ├── HPKBUILD # 编译脚本 + ├── HPKCHECK # 测试脚本 + ├── OAT.xml # OAT开源审查文本 + ├── apr_oh_pkg.patch # patch文件 + ├── README.OpenSource # 说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md # 三方库说明文档 + ├── SHA512SUM # 三方库校验文件 ``` - 在lycium目录下编译三方库 编译环境的搭建参考[准备三方库构建环境](../../../lycium/README.md#1编译环境准备) ``` cd lycium - ./build.sh luv + ./build.sh apr ``` - 三方库头文件及生成的库 在lycium目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 ``` - luv/arm64-v8a luv/armeabi-v7a - libuv/arm64-v8a libuv/armeabi-v7a - LuaJIT/arm64-v8a LuaJIT/armeabi-v7a + apr/arm64-v8a apr/armeabi-v7a + libtool/arm64-v8a libtool/armeabi-v7a ``` - [测试三方库](#测试三方库) ## 应用中使用三方库 -- 在IDE的cpp目录下新增thirdparty目录,将编译生成的头文件拷贝到该目录下,将编译生成的三方库全部(动态库名字带版本号和不带版本号的都需要)拷贝到工程的libs目录下,如下图所示 +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库和依赖库拷贝到该目录下,如下图所示   -![thirdparty_install_dir](pic/luv_install_dir.png) +![thirdparty_install_dir](pic/apr_install_dir.png) - 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 ```shell #将三方库加入工程中 - target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libluv.so) - target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libuv_a.a) - target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libluajit-5.1.a) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/apr/${OHOS_ARCH}/lib/libapr-1.a) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libtool/${OHOS_ARCH}/lib/libltdl.a) #将三方库的头文件加入工程中 - target_include_directories(entry PRIVATE CMAKECURRENTSOURCEDIR/thirdparty/luv/{OHOS_ARCH}/include) - target_include_directories(entry PRIVATE CMAKECURRENTSOURCEDIR/thirdparty/libuv/{OHOS_ARCH}/include) - target_include_directories(entry PRIVATE CMAKECURRENTSOURCEDIR/thirdparty/LuaJIT/{OHOS_ARCH}/include) - + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/apr/${OHOS_ARCH}/include) + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libtool/${OHOS_ARCH}/include) ``` -![luv_usage](pic/luv_usage.png) +![apr_usage](pic/apr_usage.png) ## 测试三方库 -三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../lycium/README.md#3ci环境准备) +三方库的测试使用自带的测试用例来做测试,[准备三方库测试环境](../../../lycium/README.md#3ci环境准备) - 将编译生成的可执行文件及生成的动态库准备好 -- 将准备好的文件推送到开发板,进入到构建的目录添加执行文件权限和lib库环境执行../../../lycium/usr/LuaJIT/${ARCH}/bin/luajit-2.1.0-beta3 tests/run.lua - ![luv_test](pic/luv_test.png) +- 将准备好的文件推送到开发板,进入到构建的目录添加执行文件权限和lib库环境执行./testall + ![apr_test](pic/apr_test.png) ## 参考资料 - [润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld) diff --git a/thirdparty/apr/docs/pic/apr_install_dir.png b/thirdparty/apr/docs/pic/apr_install_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad023c5268ad7b7b34f6de76eab8ff66b433af2 GIT binary patch literal 17697 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 literal 0 HcmV?d00001 diff --git a/thirdparty/apr/docs/pic/apr_usage.png b/thirdparty/apr/docs/pic/apr_usage.png new file mode 100644 index 0000000000000000000000000000000000000000..7d796a4f75007d0705d75708efde3bc3c5aec537 GIT binary patch literal 33686 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 literal 0 HcmV?d00001 diff --git a/thirdparty/luv/README.OpenSource b/thirdparty/luv/README.OpenSource deleted file mode 100644 index 0c4a7cc1..00000000 --- a/thirdparty/luv/README.OpenSource +++ /dev/null @@ -1,11 +0,0 @@ -[ - { - "Name": "luv", - "License": "Apache License 2.0", - "License File": "https://www.apache.org/licenses/LICENSE-2.0.txt", - "Version Number": "1.45.0-0", - "Owner": "1393302983@qq.com", - "Upstream URL": "https://github.com/luvit/luv/archive/refs/tags/1.45.0-0.tar.gz", - "Description": "Bare libuv bindings for lua." - } -] diff --git a/thirdparty/luv/SHA512SUM b/thirdparty/luv/SHA512SUM deleted file mode 100644 index b2447eba..00000000 --- a/thirdparty/luv/SHA512SUM +++ /dev/null @@ -1,2 +0,0 @@ -50460573377bc9386a90aa75f7d4938571b04f74ca6f63e32fa2b2f8951e799465abb78b4270f22be511c4d328ce582c38ec3e3da1061310fcfee630b647854d luv-1.45.0-0.tar.gz -ea598ce9f36b54e5549dd20f7934ff213d80cb108dbe2e6c5b749cbae2c2bec9842d77152d3791cf3c8a90b4a59024c835854b4ae0a1702a103c191655c54cb1 luv_oh_pkg.patch diff --git a/thirdparty/luv/docs/pic/luv_install_dir.png b/thirdparty/luv/docs/pic/luv_install_dir.png deleted file mode 100644 index 07329d41a920082dfec74e6cda6afc811535aecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21623 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 diff --git a/thirdparty/luv/docs/pic/luv_test.png b/thirdparty/luv/docs/pic/luv_test.png deleted file mode 100644 index ad6b34e97fdc7673915d0802c95b062dfe4ff749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10861 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 diff --git a/thirdparty/luv/docs/pic/luv_usage.png b/thirdparty/luv/docs/pic/luv_usage.png deleted file mode 100644 index 1d70a7b76a8c5775b5ad3e09397adf5c3c7fa85c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46871 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 diff --git a/thirdparty/luv/luv_oh_pkg.patch b/thirdparty/luv/luv_oh_pkg.patch deleted file mode 100644 index cb7a2825..00000000 --- a/thirdparty/luv/luv_oh_pkg.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- luv-1.45.0-0-old/CMakeLists.txt 2023-05-30 15:27:25.000000000 +0800 -+++ luv-1.45.0-0/CMakeLists.txt 2023-07-06 11:12:23.773570014 +0800 -@@ -244,7 +244,7 @@ - endif() - - foreach(TARGET_NAME ${ACTIVE_TARGETS}) -- if(WIN32 OR CYGWIN) -+ if(WIN32 OR CYGWIN OR OHOS) - if (LUA) - target_link_libraries(${TARGET_NAME} ${LIBUV_LIBRARIES} ${LUA_LIBRARIES}) - else (LUA) ---- luv-1.45.0-0-old/tests/test-dns.lua 2023-05-30 15:27:25.000000000 +0800 -+++ luv-1.45.0-0/tests/test-dns.lua 2023-08-03 11:12:40.587973091 +0800 -@@ -161,7 +161,6 @@ - p{err=err,hostname=hostname,service=service} - assert(not err, err) - assert(hostname) -- assert(service == "http") - end))) - end) - -- Gitee