121 lines
4.6 KiB
Bash
121 lines
4.6 KiB
Bash
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
|
|
|
_realname=FreeImage
|
|
pkgbase=mingw-w64-freeimage
|
|
pkgname="${MINGW_PACKAGE_PREFIX}-freeimage"
|
|
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
|
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
|
replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
|
pkgver=3.18.0
|
|
pkgrel=13
|
|
libver=3
|
|
pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)"
|
|
arch=('any')
|
|
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
|
license=('spdx:FreeImage OR GPL-2.0-or-later')
|
|
url="https://freeimage.sourceforge.io/"
|
|
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
|
"${MINGW_PACKAGE_PREFIX}-jxrlib"
|
|
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
|
|
"${MINGW_PACKAGE_PREFIX}-libpng"
|
|
"${MINGW_PACKAGE_PREFIX}-libtiff"
|
|
"${MINGW_PACKAGE_PREFIX}-libraw"
|
|
"${MINGW_PACKAGE_PREFIX}-libwebp"
|
|
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
|
|
"${MINGW_PACKAGE_PREFIX}-openexr")
|
|
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
|
"${MINGW_PACKAGE_PREFIX}-iconv"
|
|
"${MINGW_PACKAGE_PREFIX}-pkgconf"
|
|
"dos2unix"
|
|
"lndir")
|
|
options=('!buildflags')
|
|
source=("https://downloads.sourceforge.net/sourceforge/freeimage/${_realname}${pkgver//./}.zip"
|
|
'FreeImage-3.18.0_mingw-makefiles.patch'
|
|
'FreeImage-3.18.0_unbundle.patch'
|
|
'freeimage-libraw-0.20.patch' # taken from Arch
|
|
'freeimage-libraw-0.21.patch' # taken from Arch
|
|
'freeimage-libtiff-4.4.0.patch')
|
|
sha256sums=('f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd'
|
|
'ccb04cd703530d73b123f84310287a0318e13786a7320b7e81a33f2dccb445ca'
|
|
'cf1691984936e7cd2883c84cea9155a0fb706d1fd0ded89c765a9d00fd5849ae'
|
|
'71c25974c25dfced11b08206aae6e759675b53bae061be5f34fa1107beec9233'
|
|
'cacb6ae3a2cebf8208d34ea01423a5309ee88ff649afbbb371e49cfeb57d8331'
|
|
'1f743835f4b06bf14a8ce01b7125e5eed886939dca3853814c5ca46d500d275a')
|
|
|
|
apply_patch_with_msg() {
|
|
for _patch in "$@"
|
|
do
|
|
msg2 "Applying $_patch"
|
|
patch -Np1 -i "${srcdir}/$_patch"
|
|
done
|
|
}
|
|
|
|
prepare() {
|
|
cd ${srcdir}/${_realname}
|
|
|
|
apply_patch_with_msg \
|
|
FreeImage-3.18.0_mingw-makefiles.patch \
|
|
FreeImage-3.18.0_unbundle.patch \
|
|
freeimage-libraw-0.20.patch \
|
|
freeimage-libraw-0.21.patch
|
|
|
|
# taken from https://sourceforge.net/p/freeimage/discussion/36109/thread/2018fdc6e7/
|
|
msg2 "Applying freeimage-libtiff-4.4.0.patch"
|
|
patch -Np2 -i "${srcdir}/freeimage-libtiff-4.4.0.patch"
|
|
|
|
# remove all included libs to make sure these don't get used during compile
|
|
rm -r Source/Lib* Source/ZLib Source/OpenEXR
|
|
|
|
# clear files which cannot be built due to dependencies on private headers
|
|
# (see also unbundle patch)
|
|
> Source/FreeImage/PluginG3.cpp
|
|
> Source/FreeImageToolkit/JPEGTransform.cpp
|
|
|
|
# sanitize encodings / line endings
|
|
for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do
|
|
${MINGW_PREFIX}/bin/iconv -f ISO-8859-15 -t UTF-8 ${file} > ${file}.new && \
|
|
sed -i 's|\r||g' ${file}.new && \
|
|
touch -r ${file} ${file}.new && mv ${file}.new ${file}
|
|
done
|
|
|
|
#cp -f ${srcdir}/Makefile.mingw-w64 ${srcdir}/FreeImage/Makefile.mingw-w64
|
|
|
|
# Generate source list
|
|
sh ./gensrclist.sh
|
|
sh ./genfipsrclist.sh
|
|
}
|
|
|
|
build() {
|
|
cd "${srcdir}"
|
|
rm -rf build-${MSYSTEM} | true
|
|
cp -r "${_realname}" "build-${MSYSTEM}"
|
|
|
|
msg "Building freeimage..."
|
|
cd "${srcdir}/build-${MSYSTEM}"
|
|
make \
|
|
CC="${CC} -std=gnu11" \
|
|
CXX="${CXX} -std=gnu++11" \
|
|
MINGW_TARGET=${MINGW_CHOST} -f Makefile.gnu
|
|
|
|
msg "Building freeimageplus..."
|
|
make \
|
|
CC="${CC} -std=gnu11" \
|
|
CXX="${CXX} -std=gnu++11" \
|
|
MINGW_TARGET=${MINGW_CHOST} -f Makefile.fip
|
|
}
|
|
|
|
package() {
|
|
cd "${srcdir}/build-${MSYSTEM}"
|
|
install -Dm755 Dist/libfreeimage-${libver}.dll "${pkgdir}${MINGW_PREFIX}/bin/libfreeimage-${libver}.dll"
|
|
install -Dm644 Dist/libfreeimage.dll.a "${pkgdir}${MINGW_PREFIX}/lib/libfreeimage.dll.a"
|
|
install -Dm755 Dist/libfreeimageplus-${libver}.dll "${pkgdir}${MINGW_PREFIX}/bin/libfreeimageplus-${libver}.dll"
|
|
install -Dm644 Dist/libfreeimageplus.dll.a "${pkgdir}${MINGW_PREFIX}/lib/libfreeimageplus.dll.a"
|
|
install -Dm644 Dist/FreeImage.h "${pkgdir}${MINGW_PREFIX}/include/FreeImage.h"
|
|
install -Dm644 Dist/FreeImagePlus.h "${pkgdir}${MINGW_PREFIX}/include/FreeImagePlus.h"
|
|
|
|
install -Dm644 Dist/libfreeimage.a "${pkgdir}${MINGW_PREFIX}/lib/libfreeimage.a"
|
|
install -Dm644 Dist/libfreeimageplus.a "${pkgdir}${MINGW_PREFIX}/lib/libfreeimageplus.a"
|
|
|
|
install -Dm644 license-fi.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
|
}
|