mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-17 14:29:48 +02:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
233960a0ad | |||
ca332209cb | |||
1ace578c91 | |||
63234c4296 |
@ -1,3 +1,7 @@
|
|||||||
|
1ace578c update NEWS
|
||||||
|
63234c42 bump version to 1.3.2
|
||||||
|
2af26267 Fix OOB write in BuildHuffmanTable.
|
||||||
|
fd7bb21c update ChangeLog (tag: v1.3.1-rc2, tag: v1.3.1)
|
||||||
e1adea50 update NEWS
|
e1adea50 update NEWS
|
||||||
43393320 enc/*: normalize WebPEncodingSetError() calls
|
43393320 enc/*: normalize WebPEncodingSetError() calls
|
||||||
287fdefe enc/*: add missing WebPEncodingSetError() calls
|
287fdefe enc/*: add missing WebPEncodingSetError() calls
|
||||||
|
4
NEWS
4
NEWS
@ -1,3 +1,7 @@
|
|||||||
|
- 9/13/2023: version 1.3.2
|
||||||
|
This is a binary compatible release.
|
||||||
|
* security fix for lossless decoder (chromium: #1479274, CVE-2023-4863)
|
||||||
|
|
||||||
- 6/23/2023: version 1.3.1
|
- 6/23/2023: version 1.3.1
|
||||||
This is a binary compatible release.
|
This is a binary compatible release.
|
||||||
* security fixes for lossless encoder (#603, chromium: #1420107, #1455619,
|
* security fixes for lossless encoder (#603, chromium: #1420107, #1455619,
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
\__\__/\____/\_____/__/ ____ ___
|
\__\__/\____/\_____/__/ ____ ___
|
||||||
/ _/ / \ \ / _ \/ _/
|
/ _/ / \ \ / _ \/ _/
|
||||||
/ \_/ / / \ \ __/ \__
|
/ \_/ / / \ \ __/ \__
|
||||||
\____/____/\_____/_____/____/v1.3.1
|
\____/____/\_____/_____/____/v1.3.2
|
||||||
```
|
```
|
||||||
|
|
||||||
WebP codec is a library to encode and decode images in WebP format. This package
|
WebP codec is a library to encode and decode images in WebP format. This package
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
AC_INIT([libwebp], [1.3.1],
|
AC_INIT([libwebp], [1.3.2],
|
||||||
[https://bugs.chromium.org/p/webp],,
|
[https://bugs.chromium.org/p/webp],,
|
||||||
[https://developers.google.com/speed/webp])
|
[https://developers.google.com/speed/webp])
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#define XTRA_MAJ_VERSION 1
|
#define XTRA_MAJ_VERSION 1
|
||||||
#define XTRA_MIN_VERSION 3
|
#define XTRA_MIN_VERSION 3
|
||||||
#define XTRA_REV_VERSION 1
|
#define XTRA_REV_VERSION 2
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
18
iosbuild.sh
18
iosbuild.sh
@ -41,6 +41,7 @@ readonly TARGETDIR="${TOPDIR}/WebP.framework"
|
|||||||
readonly DECTARGETDIR="${TOPDIR}/WebPDecoder.framework"
|
readonly DECTARGETDIR="${TOPDIR}/WebPDecoder.framework"
|
||||||
readonly MUXTARGETDIR="${TOPDIR}/WebPMux.framework"
|
readonly MUXTARGETDIR="${TOPDIR}/WebPMux.framework"
|
||||||
readonly DEMUXTARGETDIR="${TOPDIR}/WebPDemux.framework"
|
readonly DEMUXTARGETDIR="${TOPDIR}/WebPDemux.framework"
|
||||||
|
readonly SHARPYUVTARGETDIR="${TOPDIR}/SharpYuv.framework"
|
||||||
readonly DEVELOPER=$(xcode-select --print-path)
|
readonly DEVELOPER=$(xcode-select --print-path)
|
||||||
readonly PLATFORMSROOT="${DEVELOPER}/Platforms"
|
readonly PLATFORMSROOT="${DEVELOPER}/Platforms"
|
||||||
readonly LIPO=$(xcrun -sdk iphoneos${SDK} -find lipo)
|
readonly LIPO=$(xcrun -sdk iphoneos${SDK} -find lipo)
|
||||||
@ -63,7 +64,8 @@ echo "Xcode Version: ${XCODE}"
|
|||||||
echo "iOS SDK Version: ${SDK}"
|
echo "iOS SDK Version: ${SDK}"
|
||||||
|
|
||||||
if [[ -e "${BUILDDIR}" || -e "${TARGETDIR}" || -e "${DECTARGETDIR}" \
|
if [[ -e "${BUILDDIR}" || -e "${TARGETDIR}" || -e "${DECTARGETDIR}" \
|
||||||
|| -e "${MUXTARGETDIR}" || -e "${DEMUXTARGETDIR}" ]]; then
|
|| -e "${MUXTARGETDIR}" || -e "${DEMUXTARGETDIR}" \
|
||||||
|
|| -e "${SHARPYUVTARGETDIR}" ]]; then
|
||||||
cat << EOF
|
cat << EOF
|
||||||
WARNING: The following directories will be deleted:
|
WARNING: The following directories will be deleted:
|
||||||
WARNING: ${BUILDDIR}
|
WARNING: ${BUILDDIR}
|
||||||
@ -71,14 +73,16 @@ WARNING: ${TARGETDIR}
|
|||||||
WARNING: ${DECTARGETDIR}
|
WARNING: ${DECTARGETDIR}
|
||||||
WARNING: ${MUXTARGETDIR}
|
WARNING: ${MUXTARGETDIR}
|
||||||
WARNING: ${DEMUXTARGETDIR}
|
WARNING: ${DEMUXTARGETDIR}
|
||||||
|
WARNING: ${SHARPYUVTARGETDIR}
|
||||||
WARNING: The build will continue in 5 seconds...
|
WARNING: The build will continue in 5 seconds...
|
||||||
EOF
|
EOF
|
||||||
sleep 5
|
sleep 5
|
||||||
fi
|
fi
|
||||||
rm -rf ${BUILDDIR} ${TARGETDIR} ${DECTARGETDIR} \
|
rm -rf ${BUILDDIR} ${TARGETDIR} ${DECTARGETDIR} \
|
||||||
${MUXTARGETDIR} ${DEMUXTARGETDIR}
|
${MUXTARGETDIR} ${DEMUXTARGETDIR} ${SHARPYUVTARGETDIR}
|
||||||
mkdir -p ${BUILDDIR} ${TARGETDIR}/Headers/ ${DECTARGETDIR}/Headers/ \
|
mkdir -p ${BUILDDIR} ${TARGETDIR}/Headers/ ${DECTARGETDIR}/Headers/ \
|
||||||
${MUXTARGETDIR}/Headers/ ${DEMUXTARGETDIR}/Headers/
|
${MUXTARGETDIR}/Headers/ ${DEMUXTARGETDIR}/Headers/ \
|
||||||
|
${SHARPYUVTARGETDIR}/Headers/
|
||||||
|
|
||||||
if [[ ! -e ${SRCDIR}/configure ]]; then
|
if [[ ! -e ${SRCDIR}/configure ]]; then
|
||||||
if ! (cd ${SRCDIR} && sh autogen.sh); then
|
if ! (cd ${SRCDIR} && sh autogen.sh); then
|
||||||
@ -134,13 +138,14 @@ for PLATFORM in ${PLATFORMS}; do
|
|||||||
set +x
|
set +x
|
||||||
|
|
||||||
# Build only the libraries, skip the examples.
|
# Build only the libraries, skip the examples.
|
||||||
make V=0 -C sharpyuv
|
make V=0 -C sharpyuv install
|
||||||
make V=0 -C src install
|
make V=0 -C src install
|
||||||
|
|
||||||
LIBLIST+=" ${ROOTDIR}/lib/libwebp.a"
|
LIBLIST+=" ${ROOTDIR}/lib/libwebp.a"
|
||||||
DECLIBLIST+=" ${ROOTDIR}/lib/libwebpdecoder.a"
|
DECLIBLIST+=" ${ROOTDIR}/lib/libwebpdecoder.a"
|
||||||
MUXLIBLIST+=" ${ROOTDIR}/lib/libwebpmux.a"
|
MUXLIBLIST+=" ${ROOTDIR}/lib/libwebpmux.a"
|
||||||
DEMUXLIBLIST+=" ${ROOTDIR}/lib/libwebpdemux.a"
|
DEMUXLIBLIST+=" ${ROOTDIR}/lib/libwebpdemux.a"
|
||||||
|
SHARPYUVLIBLIST+=" ${ROOTDIR}/lib/libsharpyuv.a"
|
||||||
|
|
||||||
make clean
|
make clean
|
||||||
|
|
||||||
@ -165,4 +170,9 @@ cp -a ${SRCDIR}/src/webp/{decode,types,mux_types,demux}.h \
|
|||||||
${DEMUXTARGETDIR}/Headers/
|
${DEMUXTARGETDIR}/Headers/
|
||||||
${LIPO} -create ${DEMUXLIBLIST} -output ${DEMUXTARGETDIR}/WebPDemux
|
${LIPO} -create ${DEMUXLIBLIST} -output ${DEMUXTARGETDIR}/WebPDemux
|
||||||
|
|
||||||
|
echo "SHARPYUVLIBLIST = ${SHARPYUVLIBLIST}"
|
||||||
|
cp -a ${SRCDIR}/sharpyuv/{sharpyuv,sharpyuv_csp}.h \
|
||||||
|
${SHARPYUVTARGETDIR}/Headers/
|
||||||
|
${LIPO} -create ${SHARPYUVLIBLIST} -output ${SHARPYUVTARGETDIR}/SharpYuv
|
||||||
|
|
||||||
echo "SUCCESS"
|
echo "SUCCESS"
|
||||||
|
@ -36,7 +36,7 @@ libwebp_la_LIBADD += utils/libwebputils.la
|
|||||||
# other than the ones listed on the command line, i.e., after linking, it will
|
# other than the ones listed on the command line, i.e., after linking, it will
|
||||||
# not have unresolved symbols. Some platforms (Windows among them) require all
|
# not have unresolved symbols. Some platforms (Windows among them) require all
|
||||||
# symbols in shared libraries to be resolved at library creation.
|
# symbols in shared libraries to be resolved at library creation.
|
||||||
libwebp_la_LDFLAGS = -no-undefined -version-info 8:7:1
|
libwebp_la_LDFLAGS = -no-undefined -version-info 8:8:1
|
||||||
libwebpincludedir = $(includedir)/webp
|
libwebpincludedir = $(includedir)/webp
|
||||||
pkgconfig_DATA = libwebp.pc
|
pkgconfig_DATA = libwebp.pc
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ if BUILD_LIBWEBPDECODER
|
|||||||
libwebpdecoder_la_LIBADD += dsp/libwebpdspdecode.la
|
libwebpdecoder_la_LIBADD += dsp/libwebpdspdecode.la
|
||||||
libwebpdecoder_la_LIBADD += utils/libwebputilsdecode.la
|
libwebpdecoder_la_LIBADD += utils/libwebputilsdecode.la
|
||||||
|
|
||||||
libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 4:7:1
|
libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 4:8:1
|
||||||
pkgconfig_DATA += libwebpdecoder.pc
|
pkgconfig_DATA += libwebpdecoder.pc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ extern "C" {
|
|||||||
// version numbers
|
// version numbers
|
||||||
#define DEC_MAJ_VERSION 1
|
#define DEC_MAJ_VERSION 1
|
||||||
#define DEC_MIN_VERSION 3
|
#define DEC_MIN_VERSION 3
|
||||||
#define DEC_REV_VERSION 1
|
#define DEC_REV_VERSION 2
|
||||||
|
|
||||||
// YUV-cache parameters. Cache is 32-bytes wide (= one cacheline).
|
// YUV-cache parameters. Cache is 32-bytes wide (= one cacheline).
|
||||||
// Constraints are: We need to store one 16x16 block of luma samples (y),
|
// Constraints are: We need to store one 16x16 block of luma samples (y),
|
||||||
|
@ -13,6 +13,6 @@ noinst_HEADERS =
|
|||||||
noinst_HEADERS += ../webp/format_constants.h
|
noinst_HEADERS += ../webp/format_constants.h
|
||||||
|
|
||||||
libwebpdemux_la_LIBADD = ../libwebp.la
|
libwebpdemux_la_LIBADD = ../libwebp.la
|
||||||
libwebpdemux_la_LDFLAGS = -no-undefined -version-info 2:13:0
|
libwebpdemux_la_LDFLAGS = -no-undefined -version-info 2:14:0
|
||||||
libwebpdemuxincludedir = $(includedir)/webp
|
libwebpdemuxincludedir = $(includedir)/webp
|
||||||
pkgconfig_DATA = libwebpdemux.pc
|
pkgconfig_DATA = libwebpdemux.pc
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
#define DMUX_MAJ_VERSION 1
|
#define DMUX_MAJ_VERSION 1
|
||||||
#define DMUX_MIN_VERSION 3
|
#define DMUX_MIN_VERSION 3
|
||||||
#define DMUX_REV_VERSION 1
|
#define DMUX_REV_VERSION 2
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
size_t start_; // start location of the data
|
size_t start_; // start location of the data
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,3,1
|
FILEVERSION 1,0,3,2
|
||||||
PRODUCTVERSION 1,0,3,1
|
PRODUCTVERSION 1,0,3,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebpdemux DLL"
|
VALUE "FileDescription", "libwebpdemux DLL"
|
||||||
VALUE "FileVersion", "1.3.1"
|
VALUE "FileVersion", "1.3.2"
|
||||||
VALUE "InternalName", "libwebpdemux.dll"
|
VALUE "InternalName", "libwebpdemux.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2023"
|
VALUE "LegalCopyright", "Copyright (C) 2023"
|
||||||
VALUE "OriginalFilename", "libwebpdemux.dll"
|
VALUE "OriginalFilename", "libwebpdemux.dll"
|
||||||
VALUE "ProductName", "WebP Image Demuxer"
|
VALUE "ProductName", "WebP Image Demuxer"
|
||||||
VALUE "ProductVersion", "1.3.1"
|
VALUE "ProductVersion", "1.3.2"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -32,7 +32,7 @@ extern "C" {
|
|||||||
// version numbers
|
// version numbers
|
||||||
#define ENC_MAJ_VERSION 1
|
#define ENC_MAJ_VERSION 1
|
||||||
#define ENC_MIN_VERSION 3
|
#define ENC_MIN_VERSION 3
|
||||||
#define ENC_REV_VERSION 1
|
#define ENC_REV_VERSION 2
|
||||||
|
|
||||||
enum { MAX_LF_LEVELS = 64, // Maximum loop filter level
|
enum { MAX_LF_LEVELS = 64, // Maximum loop filter level
|
||||||
MAX_VARIABLE_LEVEL = 67, // last (inclusive) level with variable cost
|
MAX_VARIABLE_LEVEL = 67, // last (inclusive) level with variable cost
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,3,1
|
FILEVERSION 1,0,3,2
|
||||||
PRODUCTVERSION 1,0,3,1
|
PRODUCTVERSION 1,0,3,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebp DLL"
|
VALUE "FileDescription", "libwebp DLL"
|
||||||
VALUE "FileVersion", "1.3.1"
|
VALUE "FileVersion", "1.3.2"
|
||||||
VALUE "InternalName", "libwebp.dll"
|
VALUE "InternalName", "libwebp.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2023"
|
VALUE "LegalCopyright", "Copyright (C) 2023"
|
||||||
VALUE "OriginalFilename", "libwebp.dll"
|
VALUE "OriginalFilename", "libwebp.dll"
|
||||||
VALUE "ProductName", "WebP Image Codec"
|
VALUE "ProductName", "WebP Image Codec"
|
||||||
VALUE "ProductVersion", "1.3.1"
|
VALUE "ProductVersion", "1.3.2"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,3,1
|
FILEVERSION 1,0,3,2
|
||||||
PRODUCTVERSION 1,0,3,1
|
PRODUCTVERSION 1,0,3,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebpdecoder DLL"
|
VALUE "FileDescription", "libwebpdecoder DLL"
|
||||||
VALUE "FileVersion", "1.3.1"
|
VALUE "FileVersion", "1.3.2"
|
||||||
VALUE "InternalName", "libwebpdecoder.dll"
|
VALUE "InternalName", "libwebpdecoder.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2023"
|
VALUE "LegalCopyright", "Copyright (C) 2023"
|
||||||
VALUE "OriginalFilename", "libwebpdecoder.dll"
|
VALUE "OriginalFilename", "libwebpdecoder.dll"
|
||||||
VALUE "ProductName", "WebP Image Decoder"
|
VALUE "ProductName", "WebP Image Decoder"
|
||||||
VALUE "ProductVersion", "1.3.1"
|
VALUE "ProductVersion", "1.3.2"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -17,6 +17,6 @@ noinst_HEADERS =
|
|||||||
noinst_HEADERS += ../webp/format_constants.h
|
noinst_HEADERS += ../webp/format_constants.h
|
||||||
|
|
||||||
libwebpmux_la_LIBADD = ../libwebp.la
|
libwebpmux_la_LIBADD = ../libwebp.la
|
||||||
libwebpmux_la_LDFLAGS = -no-undefined -version-info 3:12:0 -lm
|
libwebpmux_la_LDFLAGS = -no-undefined -version-info 3:13:0 -lm
|
||||||
libwebpmuxincludedir = $(includedir)/webp
|
libwebpmuxincludedir = $(includedir)/webp
|
||||||
pkgconfig_DATA = libwebpmux.pc
|
pkgconfig_DATA = libwebpmux.pc
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,3,1
|
FILEVERSION 1,0,3,2
|
||||||
PRODUCTVERSION 1,0,3,1
|
PRODUCTVERSION 1,0,3,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebpmux DLL"
|
VALUE "FileDescription", "libwebpmux DLL"
|
||||||
VALUE "FileVersion", "1.3.1"
|
VALUE "FileVersion", "1.3.2"
|
||||||
VALUE "InternalName", "libwebpmux.dll"
|
VALUE "InternalName", "libwebpmux.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2023"
|
VALUE "LegalCopyright", "Copyright (C) 2023"
|
||||||
VALUE "OriginalFilename", "libwebpmux.dll"
|
VALUE "OriginalFilename", "libwebpmux.dll"
|
||||||
VALUE "ProductName", "WebP Image Muxer"
|
VALUE "ProductName", "WebP Image Muxer"
|
||||||
VALUE "ProductVersion", "1.3.1"
|
VALUE "ProductVersion", "1.3.2"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -29,7 +29,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define MUX_MAJ_VERSION 1
|
#define MUX_MAJ_VERSION 1
|
||||||
#define MUX_MIN_VERSION 3
|
#define MUX_MIN_VERSION 3
|
||||||
#define MUX_REV_VERSION 1
|
#define MUX_REV_VERSION 2
|
||||||
|
|
||||||
// Chunk object.
|
// Chunk object.
|
||||||
typedef struct WebPChunk WebPChunk;
|
typedef struct WebPChunk WebPChunk;
|
||||||
|
@ -69,6 +69,7 @@ readonly TARGETDIR="${TOPDIR}/WebP.xcframework"
|
|||||||
readonly DECTARGETDIR="${TOPDIR}/WebPDecoder.xcframework"
|
readonly DECTARGETDIR="${TOPDIR}/WebPDecoder.xcframework"
|
||||||
readonly MUXTARGETDIR="${TOPDIR}/WebPMux.xcframework"
|
readonly MUXTARGETDIR="${TOPDIR}/WebPMux.xcframework"
|
||||||
readonly DEMUXTARGETDIR="${TOPDIR}/WebPDemux.xcframework"
|
readonly DEMUXTARGETDIR="${TOPDIR}/WebPDemux.xcframework"
|
||||||
|
readonly SHARPYUVTARGETDIR="${TOPDIR}/SharpYuv.xcframework"
|
||||||
readonly DEVELOPER=$(xcode-select --print-path)
|
readonly DEVELOPER=$(xcode-select --print-path)
|
||||||
readonly DEVROOT="${DEVELOPER}/Toolchains/XcodeDefault.xctoolchain"
|
readonly DEVROOT="${DEVELOPER}/Toolchains/XcodeDefault.xctoolchain"
|
||||||
readonly PLATFORMSROOT="${DEVELOPER}/Platforms"
|
readonly PLATFORMSROOT="${DEVELOPER}/Platforms"
|
||||||
@ -94,8 +95,15 @@ update_headers_path() {
|
|||||||
local subdir
|
local subdir
|
||||||
for d in $(find "$1" -path "*/Headers"); do
|
for d in $(find "$1" -path "*/Headers"); do
|
||||||
subdir="$d/$framework_name"
|
subdir="$d/$framework_name"
|
||||||
mkdir "$subdir"
|
if [[ -d "$subdir" ]]; then
|
||||||
mv "$d/"*.h "$subdir"
|
# SharpYuv will have a sharpyuv subdirectory. macOS is case insensitive,
|
||||||
|
# but for consistency with the other frameworks, rename the directory to
|
||||||
|
# match the case of the framework name.
|
||||||
|
mv "$(echo ${subdir} | tr 'A-Z' 'a-z')" "$subdir"
|
||||||
|
else
|
||||||
|
mkdir "$subdir"
|
||||||
|
mv "$d/"*.h "$subdir"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,7 +112,8 @@ echo "iOS SDK Version: ${SDK[$IOS]}"
|
|||||||
echo "MacOS SDK Version: ${SDK[$MACOS]}"
|
echo "MacOS SDK Version: ${SDK[$MACOS]}"
|
||||||
|
|
||||||
if [[ -e "${BUILDDIR}" || -e "${TARGETDIR}" || -e "${DECTARGETDIR}" \
|
if [[ -e "${BUILDDIR}" || -e "${TARGETDIR}" || -e "${DECTARGETDIR}" \
|
||||||
|| -e "${MUXTARGETDIR}" || -e "${DEMUXTARGETDIR}" ]]; then
|
|| -e "${MUXTARGETDIR}" || -e "${DEMUXTARGETDIR}" \
|
||||||
|
|| -e "${SHARPYUVTARGETDIR}" ]]; then
|
||||||
cat << EOF
|
cat << EOF
|
||||||
WARNING: The following directories will be deleted:
|
WARNING: The following directories will be deleted:
|
||||||
WARNING: ${BUILDDIR}
|
WARNING: ${BUILDDIR}
|
||||||
@ -112,12 +121,13 @@ WARNING: ${TARGETDIR}
|
|||||||
WARNING: ${DECTARGETDIR}
|
WARNING: ${DECTARGETDIR}
|
||||||
WARNING: ${MUXTARGETDIR}
|
WARNING: ${MUXTARGETDIR}
|
||||||
WARNING: ${DEMUXTARGETDIR}
|
WARNING: ${DEMUXTARGETDIR}
|
||||||
|
WARNING: ${SHARPYUVTARGETDIR}
|
||||||
WARNING: The build will continue in 5 seconds...
|
WARNING: The build will continue in 5 seconds...
|
||||||
EOF
|
EOF
|
||||||
sleep 5
|
sleep 5
|
||||||
fi
|
fi
|
||||||
rm -rf ${BUILDDIR} ${TARGETDIR} ${DECTARGETDIR} \
|
rm -rf ${BUILDDIR} ${TARGETDIR} ${DECTARGETDIR} \
|
||||||
${MUXTARGETDIR} ${DEMUXTARGETDIR}
|
${MUXTARGETDIR} ${DEMUXTARGETDIR} ${SHARPYUVTARGETDIR}
|
||||||
|
|
||||||
if [[ ! -e ${SRCDIR}/configure ]]; then
|
if [[ ! -e ${SRCDIR}/configure ]]; then
|
||||||
if ! (cd ${SRCDIR} && sh autogen.sh); then
|
if ! (cd ${SRCDIR} && sh autogen.sh); then
|
||||||
@ -137,6 +147,7 @@ for (( i = 0; i < $NUM_PLATFORMS; ++i )); do
|
|||||||
DECLIBLIST=()
|
DECLIBLIST=()
|
||||||
MUXLIBLIST=()
|
MUXLIBLIST=()
|
||||||
DEMUXLIBLIST=()
|
DEMUXLIBLIST=()
|
||||||
|
SHARPYUVLIBLIST=()
|
||||||
|
|
||||||
for PLATFORM in ${PLATFORMS[$i]}; do
|
for PLATFORM in ${PLATFORMS[$i]}; do
|
||||||
ROOTDIR="${BUILDDIR}/${PLATFORM}"
|
ROOTDIR="${BUILDDIR}/${PLATFORM}"
|
||||||
@ -187,23 +198,26 @@ for (( i = 0; i < $NUM_PLATFORMS; ++i )); do
|
|||||||
set +x
|
set +x
|
||||||
|
|
||||||
# Build only the libraries, skip the examples.
|
# Build only the libraries, skip the examples.
|
||||||
make V=0 -C sharpyuv
|
make V=0 -C sharpyuv install
|
||||||
make V=0 -C src install
|
make V=0 -C src install
|
||||||
|
|
||||||
LIBLIST+=("${ROOTDIR}/lib/libwebp.a")
|
LIBLIST+=("${ROOTDIR}/lib/libwebp.a")
|
||||||
DECLIBLIST+=("${ROOTDIR}/lib/libwebpdecoder.a")
|
DECLIBLIST+=("${ROOTDIR}/lib/libwebpdecoder.a")
|
||||||
MUXLIBLIST+=("${ROOTDIR}/lib/libwebpmux.a")
|
MUXLIBLIST+=("${ROOTDIR}/lib/libwebpmux.a")
|
||||||
DEMUXLIBLIST+=("${ROOTDIR}/lib/libwebpdemux.a")
|
DEMUXLIBLIST+=("${ROOTDIR}/lib/libwebpdemux.a")
|
||||||
|
SHARPYUVLIBLIST+=("${ROOTDIR}/lib/libsharpyuv.a")
|
||||||
# xcodebuild requires a directory for the -headers option, these will match
|
# xcodebuild requires a directory for the -headers option, these will match
|
||||||
# for all builds.
|
# for all builds.
|
||||||
make -C src install-data DESTDIR="${ROOTDIR}/lib-headers"
|
make -C src install-data DESTDIR="${ROOTDIR}/lib-headers"
|
||||||
make -C src install-commonHEADERS DESTDIR="${ROOTDIR}/dec-headers"
|
make -C src install-commonHEADERS DESTDIR="${ROOTDIR}/dec-headers"
|
||||||
make -C src/demux install-data DESTDIR="${ROOTDIR}/demux-headers"
|
make -C src/demux install-data DESTDIR="${ROOTDIR}/demux-headers"
|
||||||
make -C src/mux install-data DESTDIR="${ROOTDIR}/mux-headers"
|
make -C src/mux install-data DESTDIR="${ROOTDIR}/mux-headers"
|
||||||
|
make -C sharpyuv install-data DESTDIR="${ROOTDIR}/sharpyuv-headers"
|
||||||
LIB_HEADERS="${ROOTDIR}/lib-headers/${ROOTDIR}/include/webp"
|
LIB_HEADERS="${ROOTDIR}/lib-headers/${ROOTDIR}/include/webp"
|
||||||
DEC_HEADERS="${ROOTDIR}/dec-headers/${ROOTDIR}/include/webp"
|
DEC_HEADERS="${ROOTDIR}/dec-headers/${ROOTDIR}/include/webp"
|
||||||
DEMUX_HEADERS="${ROOTDIR}/demux-headers/${ROOTDIR}/include/webp"
|
DEMUX_HEADERS="${ROOTDIR}/demux-headers/${ROOTDIR}/include/webp"
|
||||||
MUX_HEADERS="${ROOTDIR}/mux-headers/${ROOTDIR}/include/webp"
|
MUX_HEADERS="${ROOTDIR}/mux-headers/${ROOTDIR}/include/webp"
|
||||||
|
SHARPYUV_HEADERS="${ROOTDIR}/sharpyuv-headers/${ROOTDIR}/include/webp"
|
||||||
|
|
||||||
make distclean
|
make distclean
|
||||||
|
|
||||||
@ -220,16 +234,20 @@ for (( i = 0; i < $NUM_PLATFORMS; ++i )); do
|
|||||||
target_declib="${target_dir}/$(basename ${DECLIBLIST[0]})"
|
target_declib="${target_dir}/$(basename ${DECLIBLIST[0]})"
|
||||||
target_demuxlib="${target_dir}/$(basename ${DEMUXLIBLIST[0]})"
|
target_demuxlib="${target_dir}/$(basename ${DEMUXLIBLIST[0]})"
|
||||||
target_muxlib="${target_dir}/$(basename ${MUXLIBLIST[0]})"
|
target_muxlib="${target_dir}/$(basename ${MUXLIBLIST[0]})"
|
||||||
|
target_sharpyuvlib="${target_dir}/$(basename ${SHARPYUVLIBLIST[0]})"
|
||||||
|
|
||||||
mkdir -p "${target_dir}"
|
mkdir -p "${target_dir}"
|
||||||
${LIPO} -create ${LIBLIST[@]} -output "${target_lib}"
|
${LIPO} -create ${LIBLIST[@]} -output "${target_lib}"
|
||||||
${LIPO} -create ${DECLIBLIST[@]} -output "${target_declib}"
|
${LIPO} -create ${DECLIBLIST[@]} -output "${target_declib}"
|
||||||
${LIPO} -create ${DEMUXLIBLIST[@]} -output "${target_demuxlib}"
|
${LIPO} -create ${DEMUXLIBLIST[@]} -output "${target_demuxlib}"
|
||||||
${LIPO} -create ${MUXLIBLIST[@]} -output "${target_muxlib}"
|
${LIPO} -create ${MUXLIBLIST[@]} -output "${target_muxlib}"
|
||||||
|
${LIPO} -create ${SHARPYUVLIBLIST[@]} -output "${target_sharpyuvlib}"
|
||||||
FAT_LIBLIST+=(-library "${target_lib}" -headers "${LIB_HEADERS}")
|
FAT_LIBLIST+=(-library "${target_lib}" -headers "${LIB_HEADERS}")
|
||||||
FAT_DECLIBLIST+=(-library "${target_declib}" -headers "${DEC_HEADERS}")
|
FAT_DECLIBLIST+=(-library "${target_declib}" -headers "${DEC_HEADERS}")
|
||||||
FAT_DEMUXLIBLIST+=(-library "${target_demuxlib}" -headers "${DEMUX_HEADERS}")
|
FAT_DEMUXLIBLIST+=(-library "${target_demuxlib}" -headers "${DEMUX_HEADERS}")
|
||||||
FAT_MUXLIBLIST+=(-library "${target_muxlib}" -headers "${MUX_HEADERS}")
|
FAT_MUXLIBLIST+=(-library "${target_muxlib}" -headers "${MUX_HEADERS}")
|
||||||
|
FAT_SHARPYUVLIBLIST+=(-library "${target_sharpyuvlib}")
|
||||||
|
FAT_SHARPYUVLIBLIST+=(-headers "${SHARPYUV_HEADERS}")
|
||||||
done
|
done
|
||||||
|
|
||||||
# lipo will not put archives with the same architecture (e.g., x86_64
|
# lipo will not put archives with the same architecture (e.g., x86_64
|
||||||
@ -246,10 +264,13 @@ xcodebuild -create-xcframework "${FAT_DEMUXLIBLIST[@]}" \
|
|||||||
-output ${DEMUXTARGETDIR}
|
-output ${DEMUXTARGETDIR}
|
||||||
xcodebuild -create-xcframework "${FAT_MUXLIBLIST[@]}" \
|
xcodebuild -create-xcframework "${FAT_MUXLIBLIST[@]}" \
|
||||||
-output ${MUXTARGETDIR}
|
-output ${MUXTARGETDIR}
|
||||||
|
xcodebuild -create-xcframework "${FAT_SHARPYUVLIBLIST[@]}" \
|
||||||
|
-output ${SHARPYUVTARGETDIR}
|
||||||
update_headers_path "${TARGETDIR}"
|
update_headers_path "${TARGETDIR}"
|
||||||
update_headers_path "${DECTARGETDIR}"
|
update_headers_path "${DECTARGETDIR}"
|
||||||
update_headers_path "${DEMUXTARGETDIR}"
|
update_headers_path "${DEMUXTARGETDIR}"
|
||||||
update_headers_path "${MUXTARGETDIR}"
|
update_headers_path "${MUXTARGETDIR}"
|
||||||
|
update_headers_path "${SHARPYUVTARGETDIR}"
|
||||||
set +x
|
set +x
|
||||||
|
|
||||||
echo "SUCCESS"
|
echo "SUCCESS"
|
||||||
|
Reference in New Issue
Block a user