From 3457fce26b2b9b85f0dbb585c829c23c00ce9212 Mon Sep 17 00:00:00 2001 From: liulihong Date: Fri, 16 Jun 2023 15:56:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6libtiff=E5=88=B0tiff=E9=87=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liulihong --- thirdparty/libtiff/BUILD.gn | 319 ------------------ thirdparty/libtiff/adapted/libport_config.h | 13 - thirdparty/libtiff/adapted/tif_config.h | 155 --------- thirdparty/libtiff/adapted/tiffconf.h | 127 ------- thirdparty/libtiff/bundle.json | 33 -- thirdparty/libtiff/docs/pic/result.png | Bin 24538 -> 0 bytes thirdparty/libtiff/docs/rom_integrate.md | 111 ------ thirdparty/tiff/HPKBUILD | 2 + .../{libtiff => tiff}/README.OpenSource | 6 +- thirdparty/{libtiff => tiff}/README_zh.md | 14 +- thirdparty/tiff/docs/hap_integrate.md | 97 ++++++ thirdparty/tiff/docs/pic/tiff_install.png | Bin 0 -> 14292 bytes thirdparty/tiff/docs/pic/tiff_ohos_test1.png | Bin 0 -> 6603 bytes thirdparty/tiff/docs/pic/tiff_ohos_test2.png | Bin 0 -> 11292 bytes thirdparty/tiff/docs/pic/tiff_usage.png | Bin 0 -> 99860 bytes 15 files changed, 111 insertions(+), 766 deletions(-) delete mode 100755 thirdparty/libtiff/BUILD.gn delete mode 100755 thirdparty/libtiff/adapted/libport_config.h delete mode 100755 thirdparty/libtiff/adapted/tif_config.h delete mode 100755 thirdparty/libtiff/adapted/tiffconf.h delete mode 100755 thirdparty/libtiff/bundle.json delete mode 100755 thirdparty/libtiff/docs/pic/result.png delete mode 100755 thirdparty/libtiff/docs/rom_integrate.md rename thirdparty/{libtiff => tiff}/README.OpenSource (71%) mode change 100755 => 100644 rename thirdparty/{libtiff => tiff}/README_zh.md (51%) mode change 100755 => 100644 create mode 100644 thirdparty/tiff/docs/hap_integrate.md create mode 100644 thirdparty/tiff/docs/pic/tiff_install.png create mode 100644 thirdparty/tiff/docs/pic/tiff_ohos_test1.png create mode 100644 thirdparty/tiff/docs/pic/tiff_ohos_test2.png create mode 100644 thirdparty/tiff/docs/pic/tiff_usage.png diff --git a/thirdparty/libtiff/BUILD.gn b/thirdparty/libtiff/BUILD.gn deleted file mode 100755 index c3434fc9..00000000 --- a/thirdparty/libtiff/BUILD.gn +++ /dev/null @@ -1,319 +0,0 @@ -# Copyright (c) 2021 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. - -import("//build/ohos.gni") - -declare_args() { - enable_libtiff_test = false -} - -config("libtiff_config") { - include_dirs = [ - "libtiff/libtiff/libtiff", - "//third_party/libjpeg", - "//third_party/zlib", - "adapted", - ] -} - -ohos_shared_library("libtiff_shared") { - sources = [ - "libtiff/libtiff/tif_aux.c", - "libtiff/libtiff/tif_close.c", - "libtiff/libtiff/tif_codec.c", - "libtiff/libtiff/tif_color.c", - "libtiff/libtiff/tif_compress.c", - "libtiff/libtiff/tif_dir.c", - "libtiff/libtiff/tif_dirinfo.c", - "libtiff/libtiff/tif_dirread.c", - "libtiff/libtiff/tif_dirwrite.c", - "libtiff/libtiff/tif_dumpmode.c", - "libtiff/libtiff/tif_error.c", - "libtiff/libtiff/tif_extension.c", - "libtiff/libtiff/tif_fax3.c", - "libtiff/libtiff/tif_fax3sm.c", - "libtiff/libtiff/tif_flush.c", - "libtiff/libtiff/tif_getimage.c", - "libtiff/libtiff/tif_jbig.c", - "libtiff/libtiff/tif_jpeg.c", - "libtiff/libtiff/tif_jpeg_12.c", - "libtiff/libtiff/tif_lerc.c", - "libtiff/libtiff/tif_luv.c", - "libtiff/libtiff/tif_lzma.c", - "libtiff/libtiff/tif_lzw.c", - "libtiff/libtiff/tif_next.c", - "libtiff/libtiff/tif_ojpeg.c", - "libtiff/libtiff/tif_open.c", - "libtiff/libtiff/tif_packbits.c", - "libtiff/libtiff/tif_pixarlog.c", - "libtiff/libtiff/tif_predict.c", - "libtiff/libtiff/tif_print.c", - "libtiff/libtiff/tif_read.c", - "libtiff/libtiff/tif_strip.c", - "libtiff/libtiff/tif_swab.c", - "libtiff/libtiff/tif_thunder.c", - "libtiff/libtiff/tif_tile.c", - "libtiff/libtiff/tif_unix.c", - "libtiff/libtiff/tif_version.c", - "libtiff/libtiff/tif_warning.c", - "libtiff/libtiff/tif_webp.c", - "libtiff/libtiff/tif_write.c", - "libtiff/libtiff/tif_zip.c", - "libtiff/libtiff/tif_zstd.c", - ] - configs = [ ":libtiff_config" ] - deps = [ - "//third_party/libjpeg:libjpeg_static", - "//third_party/zlib:libz", - ] - part_name = "libtiff" -} - -config("test_config") { - include_dirs = [ - "libtiff/tools", - "libtiff/libtiff", - "libtiff/port", - "adapted", - ] - - cflags_cc = [] -} -ohos_executable("fax2ps") { - sources = [ "libtiff/tools/fax2ps.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("fax2tiff") { - sources = [ "libtiff/tools/fax2tiff.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("pal2rgb") { - sources = [ "libtiff/tools/pal2rgb.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("ppm2tiff") { - sources = [ "libtiff/tools/ppm2tiff.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("raw2tiff") { - sources = [ "libtiff/tools/raw2tiff.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("rgb2ycbcr") { - sources = [ "libtiff/tools/rgb2ycbcr.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("thumbnail") { - sources = [ "libtiff/tools/thumbnail.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiff2bw") { - sources = [ "libtiff/tools/tiff2bw.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiff2pdf") { - sources = [ "libtiff/tools/tiff2pdf.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiff2ps") { - sources = [ "libtiff/tools/tiff2ps.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiff2rgba") { - sources = [ "libtiff/tools/tiff2rgba.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffcmp") { - sources = [ "libtiff/tools/tiffcmp.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffcp") { - sources = [ "libtiff/tools/tiffcp.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffcrop") { - sources = [ "libtiff/tools/tiffcrop.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffdither") { - sources = [ "libtiff/tools/tiffdither.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffdump") { - sources = [ "libtiff/tools/tiffdump.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffinfo") { - sources = [ "libtiff/tools/tiffinfo.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffmedian") { - sources = [ "libtiff/tools/tiffmedian.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffset") { - sources = [ "libtiff/tools/tiffset.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -ohos_executable("tiffsplit") { - sources = [ "libtiff/tools/tiffsplit.c" ] - - configs = [ ":test_config" ] - - deps = [ ":libtiff_shared" ] - - part_name = "libtiff" -} - -group("libtiff") { - deps = [ ":libtiff_shared" ] - - if (enable_libtiff_test) { - deps += [ - ":fax2ps", - ":fax2tiff", - ":pal2rgb", - ":ppm2tiff", - ":raw2tiff", - ":rgb2ycbcr", - ":thumbnail", - ":tiff2bw", - ":tiff2pdf", - ":tiff2ps", - ":tiff2rgba", - ":tiffcmp", - ":tiffcp", - ":tiffcrop", - ":tiffdither", - ":tiffdump", - ":tiffinfo", - ":tiffmedian", - ":tiffset", - ":tiffsplit", - ] - } -} diff --git a/thirdparty/libtiff/adapted/libport_config.h b/thirdparty/libtiff/adapted/libport_config.h deleted file mode 100755 index d708dae4..00000000 --- a/thirdparty/libtiff/adapted/libport_config.h +++ /dev/null @@ -1,13 +0,0 @@ -/* libtiff/libport_config.h.cmake.in. Not generated, but originated from autoheader. */ -/* This file must be kept up-to-date with needed substitutions from port/libport_config.h.in. */ - -#ifndef _LIBPORT_CONFIG_H_ -#define _LIBPORT_CONFIG_H_ - -/* Define to 1 if you have the `getopt' function. */ -#define HAVE_GETOPT 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -#endif /* _LIBPORT_CONFIG_H_ */ diff --git a/thirdparty/libtiff/adapted/tif_config.h b/thirdparty/libtiff/adapted/tif_config.h deleted file mode 100755 index 98948a20..00000000 --- a/thirdparty/libtiff/adapted/tif_config.h +++ /dev/null @@ -1,155 +0,0 @@ -/* libtiff/tif_config.h.cmake.in. Not generated, but originated from autoheader. */ -/* This file must be kept up-to-date with needed substitutions from libtiff/tif_config.h.in. */ - -#include "tiffconf.h" - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* enable partial strip reading for large strips (experimental) */ -/* #undef CHUNKY_STRIP_READ_SUPPORT */ - -/* Support C++ stream API (requires C++ compiler) */ -#define CXX_SUPPORT 1 - -/* enable deferred strip/tile offset/size loading (experimental) */ -/* #undef DEFER_STRILE_LOAD */ - -/* Define to 1 if you have the header file. */ -#define HAVE_ASSERT_H 1 - -/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't. */ -#define HAVE_DECL_OPTARG 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_FCNTL_H 1 - -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ -/* #undef HAVE_FSEEKO */ - -/* Define to 1 if you have the `getopt' function. */ -#define HAVE_GETOPT 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_GLUT_GLUT_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_GL_GLUT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_GL_GLU_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_GL_GL_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_IO_H */ - -/* Define to 1 if you have the `jbg_newlen' function. */ -#define HAVE_JBG_NEWLEN 1 - -/* Define to 1 if you have the `mmap' function. */ -#define HAVE_MMAP 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_OPENGL_GLU_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_OPENGL_GL_H */ - -/* Define to 1 if you have the `setmode' function. */ -/* #undef HAVE_SETMODE */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* 8/12 bit libjpeg dual mode enabled */ -/* #undef JPEG_DUAL_MODE_8_12 */ - -/* Support LERC compression */ -/* #undef LERC_SUPPORT */ - -/* 12bit libjpeg primary include file with path */ -#define LIBJPEG_12_PATH "" - -/* Support LZMA2 compression */ -/* #undef LZMA_SUPPORT */ - -/* Name of package */ -#define PACKAGE "LibTIFF Software" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "tiff@lists.maptools.org" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "LibTIFF Software" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "LibTIFF Software 4.3.0" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "tiff" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "4.3.0" - -/* Size of size_t */ -#define SIZEOF_SIZE_T 8 - -/* Default size of the strip in bytes (when strip chopping enabled) */ -#define STRIP_SIZE_DEFAULT 8192 - -/* define to use win32 IO system */ -/* #undef USE_WIN32_FILEIO */ - -/* Version number of package */ -#define VERSION "4.3.0" - -/* Support WEBP compression */ -/* #undef WEBP_SUPPORT */ - -/* Support ZSTD compression */ -/* #undef ZSTD_SUPPORT */ - - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif - -#if !defined(__MINGW32__) -# define TIFF_SIZE_FORMAT "zu" -#endif -#if SIZEOF_SIZE_T == 8 -# define TIFF_SSIZE_FORMAT PRId64 -# if defined(__MINGW32__) -# define TIFF_SIZE_FORMAT PRIu64 -# endif -#elif SIZEOF_SIZE_T == 4 -# define TIFF_SSIZE_FORMAT PRId32 -# if defined(__MINGW32__) -# define TIFF_SIZE_FORMAT PRIu32 -# endif -#else -# error "Unsupported size_t size; please submit a bug report" -#endif diff --git a/thirdparty/libtiff/adapted/tiffconf.h b/thirdparty/libtiff/adapted/tiffconf.h deleted file mode 100755 index ce51e612..00000000 --- a/thirdparty/libtiff/adapted/tiffconf.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - - -#include -#include -#include - - -/* Signed 16-bit type */ -#define TIFF_INT16_T int16_t - -/* Signed 32-bit type */ -#define TIFF_INT32_T int32_t - -/* Signed 64-bit type */ -#define TIFF_INT64_T int64_t - -/* Signed 8-bit type */ -#define TIFF_INT8_T int8_t - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T uint16_t - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T uint32_t - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T uint64_t - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T uint8_t - -/* Signed size type */ -#define TIFF_SSIZE_T int64_t - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format supported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_LSB2MSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -#define JPEG_SUPPORT 1 - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LERC compression */ -/* #undef LERC_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -#define OJPEG_SUPPORT 1 - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -#define PIXARLOG_SUPPORT 1 - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -#define ZIP_SUPPORT 1 - -/* Support libdeflate enhanced compression */ -/* #undef LIBDEFLATE_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to multiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT 1 - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/thirdparty/libtiff/bundle.json b/thirdparty/libtiff/bundle.json deleted file mode 100755 index 8b9b9f08..00000000 --- a/thirdparty/libtiff/bundle.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "@ohos/libtiff", - "description": "a small collection of tools for doingsimple manipulations of TIFF images, and documentation on the library and tools.", - "version": "v4.3.0", - "license": "libtiff License", - "publishAs": "", - "segment": { - "destPath": "third_party/libtiff" - }, - "dirs": {}, - "scripts": {}, - "readmePath": { - "en": "README" - }, - "component": { - "name": "libtiff", - "subsystem": "thirdparty", - "syscap": [], - "features": [], - "adapted_system_type": ["standard"], - "rom": "", - "ram": "", - "deps": { - "components": [], - "third_party": [] - }, - "build": { - "sub_component": ["//third_party/libtiff:libtiff"], - "inner_kits": [], - "test": [] - } - } -} diff --git a/thirdparty/libtiff/docs/pic/result.png b/thirdparty/libtiff/docs/pic/result.png deleted file mode 100755 index f48367939c2d4529a678cb3341df611935cc127c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24538 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 diff --git a/thirdparty/libtiff/docs/rom_integrate.md b/thirdparty/libtiff/docs/rom_integrate.md deleted file mode 100755 index 3dad4f31..00000000 --- a/thirdparty/libtiff/docs/rom_integrate.md +++ /dev/null @@ -1,111 +0,0 @@ -# libtiff如何集成到系统Rom -## 准备源码工程 -本库是基于OpenHarmony-v3.2-Beta1版本,在RK3568开发板上验证的,如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。 -### 准备系统Rom源码 -系统源码获取请参考:[OpenHarmony源码下载](https://gitee.com/openharmony/docs/blob/OpenHarmony-v3.2-Beta2/zh-cn/release-notes/OpenHarmony-v3.2-beta1.md) -### 增加构建脚本及配置文件 -- 下载本仓库代码 - ``` - cd ~ - git clone git@gitee.com:openharmony-sig/tpc_c_cplusplus.git --depth=1 - ``` -- 三方库目录结构 - ``` - tpc_c_cplusplus/thirdparty/libtiff #三方库xerces-c的目录结构如下 - ├── adapted #存放三方库适配需要的代码文件 - ├── docs #存放三方库相关文档的文件夹 - ├── BUILD.gn #构建脚本,支持rom包集成 - ├── bundle.json #三方库组件定义文件 - ├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息 - ├── README_zh.md - ``` -- 将三方库拷贝到OpenHarmony源码的third_party目录下 - ``` - cp ~/tpc_c_cplusplus/thirdparty/libtiff ~/openharmony/third_party -rf - ``` -### 准备三方库源码 -``` -cd ~/openharmony/third_party/libtiff #进入三方库目录 -git clone https://gitlab.com/libtiff/libtiff.git -b v4.3.0 --depth=1 #下载三方库源码 -``` -## 系统Rom中引入三方库 -准备完三方库代码后,我们需要将三方库加入到编译构建体系中。标准系统编译构建可以参考文档[标准系统编译构建指导](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/device-dev/subsystems/subsys-build-standard-large.md) -我们默认三方库是属于OpenHarmony的thirdparty子系统,如果需要自己定义子系统参考文档[如何为三方库组件中添加一个三方库](https://gitee.com/openharmony-sig/knowledge/blob/master/docs/openharmony_getstarted/port_thirdparty/README.md) -新增需要编译的组件,在OpenHarmony源码的vendor/hihope/rk3568/config.json文件中,新增需要编译的组件,如下代码段所示,在thirdparty子系统下面新增libtiff组件 - -``` - { - "subsystem": "thirdparty", - "components": [ - { - "component": "musl", - "features": [] - }, - { - "component": "libtiff", - "features": [] - } - ] - } - -``` -## 系统Rom中引入三方库测试程序 -如果需要编译测试用例,在OpenHarmony源码的vendor/hihope/rk3568/config.json文件,对应组件的features中打开编译选项,如下 -``` - { - "subsystem": "thirdparty", - "components": [ - { - "component": "musl", - "features": [] - }, - { - "component": "libtiff", - "features": ["enable_libtiff_test=true"] - } - ] - } -``` -## 编译工程 -在OpenHarmony源码根目录下 -``` -cd ~/openharmony -``` -- 选择平台 - ``` - hb set #hb set 命令会列出所有可选平台,这里我们选择rk3568 - ``` -- 执行编译 - ``` - hb build --target-cpu arm #编译32位系统 - hb build --target-cpu arm64 #编译64位系统 - ``` -- 生成文件的路径,可执行文件和库文件都在out/rk3568/thirdparty/libtiff目录下,同时也打包到了镜像中 -## 运行效果 -将编译生成的库和测试文件放到板子上运行,为避免每次将文件推入设备都烧录整个镜像,我们使用hdc_std工具将文件推到开发板上 -- 首先将hdc_std工具编译出来 - 工具编译出来所在路径out/sdk/ohos-sdk/windows/toolchains/hdc_std.exe - - ``` - hb set #源码根目录下使用hb set 选择产品ohos-sdk - hb build #然后编译 - ``` -- 将工具拷贝到Windows,可以为工具目录配置环境变量,也可以在工具所在目录打开windows命令行 -- 将原生库测试需要的所有文件打包成libtiff.tar,并拷贝到windows下 -- 将文件推送到开发板,在windows命令行进行如下操作 - ``` - hdc_std shell mount -oremount,rw / #修改系统权限为可读写 - hdc_std file send libtiff.tar / #将文件包推入开发板 - hdc_std shell #进入开发板 - tar xvf libtiff.tar #解压 - #注意需要将库拷贝到/system/lib 或者/system/lib64目录下 - ``` -- 运行测试程序 - 测试用例非常多,这里演示其中几个用例,如下图 - ![result](pic/result.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) -- [如何为三方库组件中添加一个三方库](https://gitee.com/openharmony-sig/knowledge/blob/master/docs/openharmony_getstarted/port_thirdparty/README.md) -- [标准系统编译构建指导](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/device-dev/subsystems/subsys-build-standard-large.md) \ No newline at end of file diff --git a/thirdparty/tiff/HPKBUILD b/thirdparty/tiff/HPKBUILD index 7e62baeb..ec0523f1 100644 --- a/thirdparty/tiff/HPKBUILD +++ b/thirdparty/tiff/HPKBUILD @@ -40,6 +40,8 @@ package() { check() { echo "The test must be on an OpenHarmony device!" + # 设置LD_LIBRARY_PATH环境变量 + # ctest 测试 } # 清理环境 diff --git a/thirdparty/libtiff/README.OpenSource b/thirdparty/tiff/README.OpenSource old mode 100755 new mode 100644 similarity index 71% rename from thirdparty/libtiff/README.OpenSource rename to thirdparty/tiff/README.OpenSource index 262d6f3c..f086b200 --- a/thirdparty/libtiff/README.OpenSource +++ b/thirdparty/tiff/README.OpenSource @@ -1,9 +1,9 @@ [ { - "Name": "libtiff", - "License": "libtiff License", + "Name": "tiff", + "License": "1991-1997 Silicon Graphics, Inc", "License File": "COPYRIGHT", - "Version Number": "v4.3.0", + "Version Number": "v4.5.0", "Owner": "huangminzhong2@huawei.com", "Upstream URL": "https://gitlab.com/libtiff/libtiff.git", "Description": "a small collection of tools for doingsimple manipulations of TIFF images, and documentation on the library and tools." diff --git a/thirdparty/libtiff/README_zh.md b/thirdparty/tiff/README_zh.md old mode 100755 new mode 100644 similarity index 51% rename from thirdparty/libtiff/README_zh.md rename to thirdparty/tiff/README_zh.md index 1e1ddb5e..1d449436 --- a/thirdparty/libtiff/README_zh.md +++ b/thirdparty/tiff/README_zh.md @@ -1,10 +1,14 @@ -# libtiff三方库说明 +# tiff三方库说明 ## 功能简介 -libtiff是一个用来读写标签图片(tiff)的库。该库还支持如下文件格式的转化。 +tiff是一个用来读写标签图片(tiff)的库。该库还支持如下文件格式的转化。 ## 使用约束 - ROM版本:OpenHarmony-v3.2-Beta1 -- 三方库版本:v4.3.0 +- IDE版本:DevEco Studio 3.1 Release(3.1.0.500) + +- SDK:API9 Release(3.2.12.2) + +- 三方库版本:v4.5.0 - 当前适配的功能:支持如下格式转换 @@ -18,6 +22,6 @@ libtiff是一个用来读写标签图片(tiff)的库。该库还支持如下文 | tiff | pdf | | tiff | ps | -- [libtiff license](https://gitlab.com/libtiff/libtiff/-/blob/v4.3.0/COPYRIGHT) +- [1991-1997 Silicon Graphics, Inc](https://gitlab.com/libtiff/libtiff/-/blob/v4.5.0/) ## 集成方式 -+ [系统Rom包集成](docs/rom_integrate.md) ++ [系统hap包集成](docs/hap_integrate.md) diff --git a/thirdparty/tiff/docs/hap_integrate.md b/thirdparty/tiff/docs/hap_integrate.md new file mode 100644 index 00000000..13567865 --- /dev/null +++ b/thirdparty/tiff/docs/hap_integrate.md @@ -0,0 +1,97 @@ +# tiff集成到应用hap +本库是在RK3568开发板上基于OpenHarmony3.2 Release版本的镜像验证的,如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。 +## 开发环境 +- ubuntu20.04 +- [OpenHarmony3.2.1Release镜像](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fopenharmony%2Fos%2F3.2.1%2Fdayu200_standard_arm32.tar.gz) +- [ohos_sdk_public 3.2.12.5](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fopenharmony%2Fos%2F3.2.1%2Fohos-sdk-windows_linux-public.tar.gz) +- [DevEco Studio 3.1 release](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_package_901_9/16/v3/YO_7mAQNTbS8jekrvez5IA/devecostudio-windows-3.1.0.500.zip?HW-CC-KV=V1&HW-CC-Date=20230512T073650Z&HW-CC-Expire=315360000&HW-CC-Sign=90814E421B9A6D8DB4757FAFC21A965CF890A387DF9A2633B4AB797AD77E6485) +- [准备三方库构建环境](../../../tools/README.md#编译环境准备) +- [准备三方库测试环境](../../../tools/README.md#ci环境准备) + +## 编译三方库 +- 下载本仓库 + ``` + git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1 + ``` +- 三方库目录结构 + ``` + tpc_c_cplusplus/thirdparty/tiff #三方库tiff的目录结构如下 + ├── adapted #存放三方库适配需要的代码文件 + ├── BUILD.gn # 构建脚本,支持rom包集成 + ├── docs #三方库相关文档的文件夹 + ├── bundle.json #三方库组件定义文件 + ├── HPKBUILD #构建脚本 + ├── SHA512SUM #三方库校验文件 + ├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md + ``` + +- 将tiff拷贝和依赖的库拷贝至tools/main目录下 + ``` + cd tpc_c_cplusplus + cp thirdparty/tiff tools/main -rf + cp thirdparty/libpng tools/main -rf + cp thirdparty/libjpeg-turbo tools/main -rf + cp thirdparty/libwebp tools/main -rf + cp thirdparty/xz tools/main -rf + cp thirdparty/zstd tools/main -rf + cp thirdparty/libdeflate tools/main -rf + ``` +- 在tools目录下编译三方库 + 编译环境的搭建参考[准备三方库构建环境](../../../tools/README.md#编译环境准备) + + ``` + cd tools + ./build.sh tiff libpng libjpeg-turbo libwebp zstd xz libdeflate + ``` +- 三方库头文件及生成的库 + 在tools目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + + ``` + tiff/arm64-v8a tiff/armeabi-v7a libpng/arm64-v8a libpng/armeabi-v7a + libjpeg-turbo/arm64-v8a libjpeg-turbo/armeabi-v7a libwebp/arm64-v8a libwebp/armeabi-v7a + zstd/arm64-v8a zstd/armeabi-v7a xz/arm64-v8a xz/armeabi-v7a libdeflate/arm64-v8a libdeflate/armeabi-v7a + ``` + +- [测试三方库](#测试三方库) + +## 应用中使用三方库 +- 拷贝动态库到`\\entry\libs\${OHOS_ARCH}\`目录: + 动态库需要在`\\entry\libs\${OHOS_ARCH}\`目录,才能集成到hap包中,所以需要将对应的so文件拷贝到对应CPU架构的目录 +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库拷贝到该目录下,如下图所示 + ![tiff_install](pic/tiff_install.png) +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + ``` + + #将三方库加入工程中 + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libdeflate.so.0) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libjpeg.so.62) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/liblzma.so.5) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libtiff.so.6) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libzstd.so.1) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libwebp.so.7) + #将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libpng/${OHOS_ARCH}/include) + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libjpeg-turbo/${OHOS_ARCH}/include) + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libwebp/${OHOS_ARCH}/include) + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/tiff/${OHOS_ARCH}/include) + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zstd/${OHOS_ARCH}/include) + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/xz/${OHOS_ARCH}/include) + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libdeflate/${OHOS_ARCH}/include) + + ``` + ![tiff_usage](pic/tiff_usage.png) +## 测试三方库 +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../tools/README.md#ci环境准备) + +进入到构建目录执行 make -C prog check-TESTS 运行测试用例,如下截图(arm64-v8a-build为构建64位的目录,armeabi-v7a-build为构建32位的目录) + +![tiff_test](pic/tiff_ohos_test1.png) + +![tiff_test](pic/tiff_ohos_test2.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/tiff/docs/pic/tiff_install.png b/thirdparty/tiff/docs/pic/tiff_install.png new file mode 100644 index 0000000000000000000000000000000000000000..d294cbdec62514a435cd37c7363116f013b5e233 GIT binary patch literal 14292 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 O977)E|N4{v^}hjf*j`}( literal 0 HcmV?d00001 diff --git a/thirdparty/tiff/docs/pic/tiff_ohos_test2.png b/thirdparty/tiff/docs/pic/tiff_ohos_test2.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d1f59678554511de4c79c08f2c06617165268f GIT binary patch literal 11292 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 SpKd(h)QOx7{(t`bH~$BqfFaEQ literal 0 HcmV?d00001 diff --git a/thirdparty/tiff/docs/pic/tiff_usage.png b/thirdparty/tiff/docs/pic/tiff_usage.png new file mode 100644 index 0000000000000000000000000000000000000000..817d25565afa90c346ad1530405c57ee28d3634a GIT binary patch literal 99860 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 Xf{y)KUXlJ6>7%P@q*1447yiEh;-J5n literal 0 HcmV?d00001 -- Gitee