blob: 82ad7eaacadca011c48775aa32e411aa94e9cb59 [file] [log] [blame]
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=openexr
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-ilmbase"
"${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-pyilmbase")
pkgver=2.5.7
pkgrel=1
pkgdesc="Openexr library for EXR images (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
url="https://www.openexr.com/"
license=("custom")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-fltk"
"${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-pkg-config"
"${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-python-numpy")
options=('staticlibs' 'strip')
source=(${_realname}-${pkgver}.tar.gz::https://github.com/openexr/openexr/archive/v${pkgver}.tar.gz
0001-mingw-w64-fix.patch
0002-openexr-2.1.0-headers.patch
0005-fix-dirs-in-pkgconfig.patch
0006-cmake-soversion.patch
0009-win-dwalookups.patch
0012-exports.patch
0013-no-py2.patch)
sha256sums=('36ecb2290cba6fc92b2ec9357f8dc0e364b4f9a90d727bf9a57c84760695272d'
'68bedb3a4acc6f62b1486c7c47c9025f5ce4131468e17445f0c716545ddd00c1'
'460dcfd86b407241382ed4ba5a003ae251c9fdce68e7cfdea021b09898ad2705'
'fba4e95d6921bcd253c8c644063b4c1334c84761a2a2232590d442ca81f8d7cd'
'313b0c98abdd792b8213ec9685a5a7b095ec69faa528f6fd0946f23576b6ef07'
'2ca841425ae676f75fa714a16f0124272224147fe40ea507ccc4bf74477f51ab'
'da9e92f066e9b45583f2b12678a9f49fcbb7fa1f06805d9b472d39fa5f18a629'
'47e4e068439a1adaca41d7d7f966f65f1ae68b4dee1d1dd7c5778256edc3b3e8')
prepare(){
cd "${srcdir}/${_realname}-${pkgver}"
sed -i 's/#define ZLIB_WINAPI/\/\/#define ZLIB_WINAPI/g' OpenEXR/IlmImf/ImfZipCompressor.cpp
sed -i 's/#define ZLIB_WINAPI/\/\/#define ZLIB_WINAPI/g' OpenEXR/IlmImf/ImfPxr24Compressor.cpp
patch -p1 -i ${srcdir}/0001-mingw-w64-fix.patch
patch -p1 -i ${srcdir}/0002-openexr-2.1.0-headers.patch
#patch -p1 -i ${srcdir}/0005-fix-dirs-in-pkgconfig.patch
patch -p1 -i ${srcdir}/0006-cmake-soversion.patch
patch -p1 -i ${srcdir}/0009-win-dwalookups.patch
patch -p1 -i ${srcdir}/0012-exports.patch
patch -p1 -i ${srcdir}/0013-no-py2.patch
}
build() {
declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("-DCMAKE_BUILD_TYPE=Release")
else
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi
[[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}"
mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}"
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake \
-G"MSYS Makefiles" \
${extra_config} \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DBUILD_SHARED_LIBS=ON \
-DPython_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \
-DPython_ROOT_DIR=${MINGW_PREFIX} \
-DPython_FIND_REGISTRY=NEVER \
-DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \
-DPython3_ROOT_DIR=${MINGW_PREFIX} \
-DPython3_FIND_REGISTRY=NEVER \
../${_realname}-${pkgver}
make
}
package_ilmbase() {
pkgdesc="Base libraries from ILM for OpenEXR (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
cd "${srcdir}/build-${MINGW_CHOST}/IlmBase"
make DESTDIR=${pkgdir} install
}
package_openexr() {
pkgdesc="An high dynamic-range image file format library (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-ilmbase=${pkgver}"
"${MINGW_PACKAGE_PREFIX}-zlib")
cd "${srcdir}/build-${MINGW_CHOST}/OpenEXR"
make DESTDIR=${pkgdir} install
}
package_pyilmbase() {
pkgdesc="Python bindings for OpenEXR library (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-openexr=${pkgver}"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-python-numpy")
cd "${srcdir}/build-${MINGW_CHOST}/PyIlmBase"
make DESTDIR=${pkgdir} install
# Install python modules
local _py3ver=$(${MINGW_PREFIX}/bin/python -c "import sys;sys.stdout.write('.'.join(map(str, sys.version_info[:2])))")
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/python${_py3ver}/site-packages
cp ${srcdir}/build-${MINGW_CHOST}/python${_py3ver//./_}/*.pyd ${pkgdir}${MINGW_PREFIX}/lib/python${_py3ver}/site-packages/
}
# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :
# generate wrappers
for _name in "${pkgname[@]}"; do
_short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
_func="$(declare -f "${_short}")"
eval "${_func/#${_short}/package_${_name}}"
done
# template end;