From bb527e21f35bfbc2cac6ee046b82e1519972e70d Mon Sep 17 00:00:00 2001 From: xiong-qiushi Date: Fri, 12 Jul 2024 15:55:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=BA=93proj=E4=B8=8A?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xiong-qiushi --- thirdparty/PROJ/HPKBUILD | 125 ++++++++++++++++ thirdparty/PROJ/HPKCHECK | 34 +++++ thirdparty/PROJ/OAT.xml | 16 +++ thirdparty/PROJ/README.OpenSource | 38 +++++ thirdparty/PROJ/README_zh.md | 15 ++ thirdparty/PROJ/SHA512SUM | 1 + thirdparty/PROJ/docs/hap_integrate.md | 134 ++++++++++++++++++ thirdparty/PROJ/docs/pic/PROJ_include_ide.PNG | Bin 0 -> 10365 bytes thirdparty/PROJ/docs/pic/PROJ_so_ide.PNG | Bin 0 -> 9516 bytes thirdparty/PROJ/docs/pic/build_PROJ.PNG | Bin 0 -> 28584 bytes thirdparty/PROJ/docs/pic/ctest.PNG | Bin 0 -> 41695 bytes 11 files changed, 363 insertions(+) create mode 100644 thirdparty/PROJ/HPKBUILD create mode 100644 thirdparty/PROJ/HPKCHECK create mode 100644 thirdparty/PROJ/OAT.xml create mode 100644 thirdparty/PROJ/README.OpenSource create mode 100644 thirdparty/PROJ/README_zh.md create mode 100644 thirdparty/PROJ/SHA512SUM create mode 100644 thirdparty/PROJ/docs/hap_integrate.md create mode 100644 thirdparty/PROJ/docs/pic/PROJ_include_ide.PNG create mode 100644 thirdparty/PROJ/docs/pic/PROJ_so_ide.PNG create mode 100644 thirdparty/PROJ/docs/pic/build_PROJ.PNG create mode 100644 thirdparty/PROJ/docs/pic/ctest.PNG diff --git a/thirdparty/PROJ/HPKBUILD b/thirdparty/PROJ/HPKBUILD new file mode 100644 index 00000000..8be29178 --- /dev/null +++ b/thirdparty/PROJ/HPKBUILD @@ -0,0 +1,125 @@ +# 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: Jeff Han +# Maintainer: Jeff Han + +pkgname=PROJ +pkgver=9.4.1 +pkgrel=0 +pkgdesc="PROJ is a general purpose coordinate conversion software that can convert coordinates from one coordinate reference system (CRS) to another" +url="https://github.com/OSGeo/PROJ" +archs=("armeabi-v7a" "arm64-v8a") +license=("MIT License") +depends=("sqlite" "curl" "openssl") + +source="https://github.com/OSGeo/$pkgname/archive/refs/tags/$pkgver.tar.gz" + +# 需要依赖sqlite3 linux编译 +# 因为在编译PROJ的过程中会执行sqlite3程序创建proj.db数据库进行使用,而鸿蒙化后的sqlite3程序版本在linux环境不能运行 +sqlitepkgname=sqlite +sqlitebuildhostflag=true +sqlitepkgver=version-3.46.0 +sqlitesource="https://github.com/$sqlitepkgname/$sqlitepkgname/archive/refs/tags/$sqlitepkgver.tar.gz" +sqlitebuilddir=$sqlitepkgname-${sqlitepkgver} +sqlitepackagename=$sqlitebuilddir.tar.gz + +autounpack=true +downloadpackage=true +buildtools="cmake" +buildlinux=true + +builddir=$pkgname-${pkgver} +packagename=$builddir.tar.gz + +# 下载sqlite +downloadsqlite() { + if [ ! -s $sqlitepackagename ];then + curl -f -L -- $sqlitesource > $sqlitepackagename + if [ "$?" != "0" ];then + echo "download $sqlitebuilddir fail" + return 1 + fi + fi + echo "a9575b5b545a0fd9261651b862e1f4649da2644492723510aeeb5cfca33a8baad98349f9626dc985b21e2d081149af2f7d8f7421a5a766fd7dae4c24ed544848 sqlite-version-3.46.0.tar.gz" > sqlitesha512sum + sha512sum -c sqlitesha512sum + ret=$? + if [ $ret -ne 0 ];then + echo "请检查$sqlitepackagename文件, 并重新下载压缩包." + return 2 + fi + rm -rf sqlitesha512sum + tar -xvf $sqlitepackagename > /dev/null 2>&1 + return 0 +} + +# 编译sqlite +buildsqlite() { + cd $sqlitebuilddir + ./configure > $buildlog 2>&1 + make >> $buildlog 2>&1 + cd $OLDPWD + return 0 +} + +prepare() { + if $buildlinux + then + downloadsqlite + ret=$? + if [ "$ret" != "0" ];then + return $ret + fi + buildsqlite + ret=$? + if [ "$ret" != "0" ];then + return $ret + fi + buildlinux=false + fi + mkdir -p $builddir/$ARCH-build +} + +build() { + cd $builddir + ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" \ + -DEXE_SQLITE3=$LYCIUM_ROOT/../thirdparty/PROJ/$sqlitebuilddir/sqlite3 \ + -DOPENSSL_INCLUDE_DIR=$LYCIUM_ROOT/usr/openssl/${ARCH}/include \ + -DOPENSSL_SSL_LIBRARY=$LYCIUM_ROOT/usr/openssl/${ARCH}/lib \ + -DENABLE_TIFF=OFF \ + -B$ARCH-build -S./ -L >> $buildlog 2>&1 + ret=$? + if [ $ret -ne 0 ]; then + echo "CMake failed. Check $buildlog for details." >> $buildlog 2>&1 + return 1 + fi + $MAKE VERBOSE=1 -C $ARCH-build >> $buildlog 2>&1 + ret=$? + cd $OLDPWD + return $ret +} + +package() { + cd $builddir + $MAKE -C $ARCH-build install >> $buildlog 2>&1 + cd $OLDPWD +} + +check() { + echo "The test must be on an OpenHarmony device!" +} + +# 清理环境 +cleanbuild(){ + rm -rf ${PWD}/$builddir #${PWD}/$packagename +} \ No newline at end of file diff --git a/thirdparty/PROJ/HPKCHECK b/thirdparty/PROJ/HPKCHECK new file mode 100644 index 00000000..8ba53bf2 --- /dev/null +++ b/thirdparty/PROJ/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: Jeff Han +# Maintainer: Jeff Han + +source HPKBUILD > /dev/null 2>&1 +logfile=${LYCIUM_THIRDPARTY_ROOT}/${pkgname}/${pkgname}_${ARCH}_${OHOS_SDK_VER}_test.log + +openharmonycheck() { + cd $builddir/$ARCH-build + echo "total test 61" > $logfile 2>&1 + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/data/tpc_c_cplusplus/thirdparty/PROJ/PROJ-9.4.1/${ARCH}-build/lib/ + export PATH=${PATH}:/data/tpc_c_cplusplus/lycium/usr/sqlite/${ARCH}/bin/ + ctest >> ${logfile} 2>&1 + res=$? + if [ $res -ne 0 ];then + mkdir ${LYCIUM_FAULT_PATH}/${pkgname} + cp Testing/Temporary/LastTest.log ${LYCIUM_FAULT_PATH}/${pkgname}/ + fi + + cd $OLDPWD + return $res +} diff --git a/thirdparty/PROJ/OAT.xml b/thirdparty/PROJ/OAT.xml new file mode 100644 index 00000000..6c910b32 --- /dev/null +++ b/thirdparty/PROJ/OAT.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/thirdparty/PROJ/README.OpenSource b/thirdparty/PROJ/README.OpenSource new file mode 100644 index 00000000..ca9da074 --- /dev/null +++ b/thirdparty/PROJ/README.OpenSource @@ -0,0 +1,38 @@ +[ + { + "Name": "PROJ", + "License": "MIT License", + "License File": "https://github.com/OSGeo/PROJ/blob/master/COPYING", + "Version Number": "9.4.1", + "Owner": "hanjinfei@foxmail.com", + "Upstream URL": "https://github.com/OSGeo/PROJ", + "Description": "PROJ is the most famous map projection library of open source GIS, which provides the function of coordinate conversion between multiple coordinate systems. " + }, + { + "Name": "sqlite", + "License": "Public Domain", + "License File": "https://www.sqlite.org/copyright.html", + "Version Number": "version-3.42.0", + "Owner": "wupingyuan@huawei.com", + "Upstream URL": "https://github.com/sqlite/sqlite/archive/refs/tags/.tar.gz", + "Description": "This repository contains the complete source code for the SQLite database engine. Some test scripts are also included. However, many other test scripts and most of the documentation are managed separately." + }, + { + "Name": "tiff", + "License": "LibTIFF license", + "License File": "https://gitlab.com/libtiff/libtiff/-/blob/master/LICENSE.md?ref_type=heads", + "Version Number": "4.5.0", + "Owner": "huangminzhong2@huawei.com", + "Upstream URL": "http://download.osgeo.org/libtiff/tiff-4.5.0.tar.xz", + "Description": "a small collection of tools for doingsimple manipulations of TIFF images, and documentation on the library and tools." + }, + { + "Name": "curl", + "License": "BSD/ISC/curl", + "License File": "https://github.com/curl/curl/blob/master/COPYING", + "Version Number": "curl-8_0_1", + "Owner": "hanjinfei@foxmail.com", + "Upstream URL": "https://github.com/curl/curl/archive/refs/tags/curl-8_0_1.tar.gz", + "Description": "Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document." + } +] diff --git a/thirdparty/PROJ/README_zh.md b/thirdparty/PROJ/README_zh.md new file mode 100644 index 00000000..5f110194 --- /dev/null +++ b/thirdparty/PROJ/README_zh.md @@ -0,0 +1,15 @@ +# PROJ 三方库说明 + +## 功能简介 + +PROJ 是一个通用的坐标转换软件,它可以将坐标从一种坐标参考系(CRS)转换到另一种坐标参考系(CRS)。 + +## 使用约束 +- IDE版本:DevEco Studio 4.1.3 Release +- SDK版本:ohos_sdk_public 5.0.3.100 (API Version 10 Release) +- 三方库版本:9.4.1 +- 当前适配的功能: + +## 集成方式 + +- [应用hap包集成](docs/hap_integrate.md) diff --git a/thirdparty/PROJ/SHA512SUM b/thirdparty/PROJ/SHA512SUM new file mode 100644 index 00000000..c4aad282 --- /dev/null +++ b/thirdparty/PROJ/SHA512SUM @@ -0,0 +1 @@ +4b3ceb9e3b2213b0bb2fc839f4dd70e08ee53323465c7bb473131907e4b66c836623da115c7413dfd8bafd0a992fa173003063e2233ab577139ab8462655b6cc PROJ-9.4.1.tar.gz \ No newline at end of file diff --git a/thirdparty/PROJ/docs/hap_integrate.md b/thirdparty/PROJ/docs/hap_integrate.md new file mode 100644 index 00000000..46c199fd --- /dev/null +++ b/thirdparty/PROJ/docs/hap_integrate.md @@ -0,0 +1,134 @@ +# PROJ集成到应用hap + +本库是在RK3568开发板上基于OpenHarmony3.2 Release版本的镜像验证的,如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。 + +## 开发环境 + +- [开发环境准备](../../../docs/hap_integrate_environment.md) + +## 编译三方库 + +- 下载本仓库 + + ```shell + git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1 + ``` + +- 三方库目录结构 + + ```shell + tpc_c_cplusplus/thirdparty/PROJ #三方库PROJ的目录结构如下 + ├── docs #三方库相关文档的文件夹 + ├── HPKBUILD #构建脚本 + ├── HPKCHECK #测试脚本 + ├── SHA512SUM #三方库校验文件 + ├── README.OpenSource #说明三方库源码的下载地址,版本、license等信息 + ├── README_zh.md + ``` + +- 在lycium目录下编译三方库 + + 编译环境的搭建参考[准备三方库构建环境](../../../lycium/README.md#1编译环境准备) + + ```shell + cd lycium + ./build.sh PROJ + ``` +- ![thirdparty_install_dir](pic/build_PROJ.PNG) + +- 三方库头文件及生成的库 + + 在lycium目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + + ```shell + PROJ/arm64-v8a PROJ/armeabi-v7a + ``` + +- [测试三方库](#测试三方库) + +## 应用中使用三方库 + +- 需要将PROJ生成的so动态库文件以及依赖的库文件拷贝到entry/libs目录下 + +- ![thirdparty_install_dir](pic/PROJ_so_ide.PNG) + +- 在IDE的cpp目录下新增thirdparty目录,将生成的头文件拷贝到该目录下,如下图所示 + +- ![thirdparty_install_dir](pic/PROJ_include_ide.PNG) + +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + +#将三方库的头文件和库文件加入工程中 +``` +#将三方库加入工程中 +target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/sqlite/${OHOS_ARCH}/lib/libsqlite3.so.0 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libjpeg-turbo/${OHOS_ARCH}/lib/libjpeg.so.62 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libjpeg-turbo/${OHOS_ARCH}/lib/libturbojpeg.so.0 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/xz/${OHOS_ARCH}/lib/liblzma.so.5 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libdeflate/${OHOS_ARCH}/lib/libdeflate.so.0 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/jbigkit/${OHOS_ARCH}/lib/libjbig.a + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/jbigkit/${OHOS_ARCH}/lib/libjbig85.a + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl/${OHOS_ARCH}/lib/libssl.a + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl/${OHOS_ARCH}/lib/libcrypto.a + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libpng/${OHOS_ARCH}/lib/libpng16.so.16 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libwebp/${OHOS_ARCH}/lib/libwebp.so.7 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libwebp/${OHOS_ARCH}/lib/libsharpyuv.so.0 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libwebp/${OHOS_ARCH}/lib/libwebpdecoder.so.3 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libwebp/${OHOS_ARCH}/lib/libwebpdemux.so.2 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libwebp/${OHOS_ARCH}/lib/libwebpmux.so.3 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zstd_1_5_6/${OHOS_ARCH}/lib/libzstd.so.1 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/tiff/${OHOS_ARCH}/lib/libtiff.so.6 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl_quic/${OHOS_ARCH}/lib/libcrypto.a + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/CUnit/${OHOS_ARCH}/lib/libcunit.so.1 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/nghttp3/${OHOS_ARCH}/lib/libnghttp3.so.5 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libxml2/${OHOS_ARCH}/lib/libxml2.so + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/nghttp2/${OHOS_ARCH}/lib/libnghttp2.so.14 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/curl/${OHOS_ARCH}/lib/libcurl.so.4 + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/PROJ/${OHOS_ARCH}/lib/libproj.so.25) + +#将三方库的头文件加入工程中 +target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/sqlite/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libjpeg-turbo/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/xz/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libdeflate/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/jbigkit/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libpng/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libwebp/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zstd_1_5_6/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/tiff/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl_quic/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/CUnit/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/nghttp3/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libxml2/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/nghttp2/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/curl/${OHOS_ARCH}/include + ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/PROJ/${OHOS_ARCH}/include) +``` + +## 测试三方库 + +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../lycium/README.md#3ci环境准备) + +进入到构建目录运行测试用例(注意arm64-v8a为构建64位的目录,armeabi-v7a为构建32位的目录),执行ctest前,需要导入环境变量 +```shell + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/data/tpc_c_cplusplus/thirdparty/PROJ/PROJ-9.4.1/armeabi-v7a-build/lib/:/data/tpc_c_cplusplus/lycium/usr/sqlite/armeabi-v7a/lib/:/data/tpc_c_cplusplus/lycium/usr/tiff/armeabi-v7a/lib/:/data/tpc_c_cplusplus/lycium/usr/curl/armeabi-v7a/lib/:/data/lycium-citools/armeabi-v7a-gdb/lib/:/data/tpc_c_cplusplus/lycium/usr/libdeflate/armeabi-v7a/lib/:/data/tpc_c_cplusplus/lycium/usr/libjpeg-turbo/armeabi-v7a/lib/:/data/tpc_c_cplusplus/lycium/usr/xz/armeabi-v7a/lib/:/data/tpc_c_cplusplus/lycium/usr/zstd_1_5_6/armeabi-v7a/lib/:/data/tpc_c_cplusplus/lycium/usr/libwebp/armeabi-v7a/lib/:/data/tpc_c_cplusplus/lycium/usr/nghttp2/armeabi-v7a/lib/ + (或者export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/data/tpc_c_cplusplus/thirdparty/PROJ/PROJ-9.4.1/arm64-v8a-build/lib/:/data/tpc_c_cplusplus/lycium/usr/sqlite/arm64-v8a/lib/:/data/tpc_c_cplusplus/lycium/usr/tiff/arm64-v8a/lib/:/data/tpc_c_cplusplus/lycium/usr/curl/arm64-v8a/lib/:/data/lycium-citools/arm64-v8a-gdb/lib/:/data/tpc_c_cplusplus/lycium/usr/libdeflate/arm64-v8a/lib/:/data/tpc_c_cplusplus/lycium/usr/libjpeg-turbo/arm64-v8a/lib/:/data/tpc_c_cplusplus/lycium/usr/xz/arm64-v8a/lib/:/data/tpc_c_cplusplus/lycium/usr/zstd_1_5_6/arm64-v8a/lib/:/data/tpc_c_cplusplus/lycium/usr/libwebp/arm64-v8a/lib/:/data/tpc_c_cplusplus/lycium/usr/nghttp2/arm64-v8a/lib/) + + export PATH=${PATH}:/data/tpc_c_cplusplus/lycium/usr/sqlite/armeabi-v7a/bin/ + (或者export PATH=${PATH}:/data/tpc_c_cplusplus/lycium/usr/sqlite/arm64-v8a/bin/) +``` +执行ctest及结果如图所示 +```shell + cd /data/tpc_c_cplusplus/thirdparty/PROJ/PROJ-4.9.2/armeabi-v7a-build(或者cd /data/tpc_c_cplusplus/thirdparty/PROJ/PROJ-4.9.2/arm64-v8a-build) + ctest +``` + +- 测试结果如图所示: +- ![thirdparty_install_dir](pic/ctest.PNG) + +## 参考资料 + +- [OpenHarmony三方库地址](https://gitee.com/openharmony-tpc) +- [OpenHarmony知识体系](https://gitee.com/openharmony-sig/knowledge) +- [PROJ三方库地址](https://github.com/OSGeo/PROJ) diff --git a/thirdparty/PROJ/docs/pic/PROJ_include_ide.PNG b/thirdparty/PROJ/docs/pic/PROJ_include_ide.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2c150be177bdedefad0343db66d8ffb6ee99b0bc GIT binary patch literal 10365 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⪼{N7QZ1lwjg!eo>I(eJPJs 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 literal 0 HcmV?d00001 diff --git a/thirdparty/PROJ/docs/pic/build_PROJ.PNG b/thirdparty/PROJ/docs/pic/build_PROJ.PNG new file mode 100644 index 0000000000000000000000000000000000000000..74c5906f73f0ef605bbf5091cccc59ce590ab7ee GIT binary patch literal 28584 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 a+YTh{Dd`(ymJ?6!!9d4IJ73f0<^KU{4t!kz literal 0 HcmV?d00001 diff --git a/thirdparty/PROJ/docs/pic/ctest.PNG b/thirdparty/PROJ/docs/pic/ctest.PNG new file mode 100644 index 0000000000000000000000000000000000000000..58eaa42b6ce78fc9e7a2a99e00f051c00e0c7204 GIT binary patch literal 41695 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 Z)}8HzuXg_#ea5%8Y}+jP?eG8ee*xh2510S| literal 0 HcmV?d00001 -- Gitee