| # Maintainer: Alexey Pavlov <alexpux@gmail.com> |
| # Contributor: Jürgen Pfeifer <juergen@familiepfeifer.de> |
| # Contributor: Tim S. <stahta01@gmail.com> |
| |
| # Note: Added "ENABLE_itk=OFF" because of random build errors; |
| # It appeared to think it found the itk library; but, it then errored out. |
| # Set "ENABLE_qt=OFF" and "DEFAULT_NO_CAIRO_DEVICES=ON" to reduce warnings. |
| # Had to define PLD_png and etc to ON to get libGD to be searched. |
| |
| _realname=plplot |
| pkgbase=mingw-w64-${_realname} |
| pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" |
| pkgver=5.15.0 |
| pkgrel=6 |
| arch=('any') |
| mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') |
| pkgdesc="Scientific plotting software (mingw-w64)" |
| depends=("${MINGW_PACKAGE_PREFIX}-cairo" |
| "${MINGW_PACKAGE_PREFIX}-gcc-libs" |
| "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran" |
| "${MINGW_PACKAGE_PREFIX}-freetype" |
| "${MINGW_PACKAGE_PREFIX}-libharu" |
| "${MINGW_PACKAGE_PREFIX}-lua" |
| "${MINGW_PACKAGE_PREFIX}-python3" |
| "${MINGW_PACKAGE_PREFIX}-python3-numpy" |
| "${MINGW_PACKAGE_PREFIX}-shapelib" |
| "${MINGW_PACKAGE_PREFIX}-tk" |
| "${MINGW_PACKAGE_PREFIX}-wxWidgets" |
| "${MINGW_PACKAGE_PREFIX}-qhull" |
| ) |
| makedepends=("${MINGW_PACKAGE_PREFIX}-libgd" |
| "${MINGW_PACKAGE_PREFIX}-gcc-fortran" |
| #"${MINGW_PACKAGE_PREFIX}-gcc-ada" |
| "${MINGW_PACKAGE_PREFIX}-swig" |
| "${MINGW_PACKAGE_PREFIX}-pkg-config" |
| "make" |
| "patch" |
| "perl" |
| "bsdtar>=3.3" |
| "${MINGW_PACKAGE_PREFIX}-cmake>=3.6.2") |
| optdepends=("${MINGW_PACKAGE_PREFIX}-swig: connects Plplot C library to Python and Lua" |
| "${MINGW_PACKAGE_PREFIX}-libgd: ability to output png, jpeg and gif files") |
| options=('strip' 'staticlibs') |
| license=('LGPL') |
| url="https://plplot.sourceforge.io/" |
| source=(https://downloads.sourceforge.net/sourceforge/plplot/${_realname}-${pkgver}.tar.gz |
| find-gd.patch |
| Include-wx-msw-wrapwin.h-instead-of-Windows.h.patch |
| pdf-linking-libharu.patch |
| fix-pkgconfig.patch |
| fix-install-dir.patch |
| fix-cmake-windows-libs.patch |
| fix-wingdi.patch) |
| sha256sums=('b92de4d8f626a9b20c84fc94f4f6a9976edd76e33fb1eae44f6804bdcc628c7b' |
| '57ad3a43d5ad467b89889a42d0b033e35cf322b9b83f2f41a62fe5d74a5d01b8' |
| 'fc27681c6ca521308ac0d873b3ed78c335e676ca6d367fd8d000a41580565ed8' |
| 'abf5ee33dad2108220d0973de4279ce04007b9fb429184d194a6cf951005c8be' |
| 'fe7a7c0e888187a00c2df8e42c54ed964845de2aa5e8fc2fdf94868c0cfb148c' |
| 'c11a37adea8134f9497fd45f24cd153cce18855ddff66ea5ba6ef8875da022fc' |
| '4bef0104cc89bc09dbb7e05e06ac86a37621402b512fd4fa7ce81d0c6c8fab72' |
| '675b7bdf421a81ba390b023dc94a0d43604180fa60a88364c6883fb02a950acc') |
| |
| prepare() { |
| cd ${srcdir}/${_realname}-${pkgver} |
| patch -p1 -i ${srcdir}/find-gd.patch |
| patch -p1 -i ${srcdir}/Include-wx-msw-wrapwin.h-instead-of-Windows.h.patch |
| patch -p1 -i ${srcdir}/pdf-linking-libharu.patch |
| patch -p1 -i ${srcdir}/fix-pkgconfig.patch |
| #patch -p1 -i ${srcdir}/fix-qhull-lib.patch |
| patch -p1 -i ${srcdir}/fix-install-dir.patch |
| patch -p1 -i ${srcdir}/fix-cmake-windows-libs.patch |
| patch -p1 -i ${srcdir}/fix-wingdi.patch |
| } |
| |
| build() { |
| # cmake may be confused if there is a Windows installation |
| # of the official Python MSI. Please do the Python-enabled |
| # build only, if no official Python is installed. |
| [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} |
| mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} |
| |
| local pyexe="${MINGW_PREFIX}/bin/python3.exe" |
| local pyver=$(${pyexe} -c "import sys;sys.stdout.write('.'.join(map(str, sys.version_info[:2])))") |
| local pylib="${MINGW_PREFIX}/lib/libpython${pyver}.dll.a" |
| if [[ ${pyver:0:1} != "3" ]] ; then |
| pylib="${MINGW_PREFIX}/lib/libpython${pyver}m.dll.a" |
| fi |
| |
| MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ |
| ${MINGW_PREFIX}/bin/cmake \ |
| -G"MSYS Makefiles" \ |
| -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ |
| -DCMAKE_Fortran_COMPILER=${MINGW_PREFIX}/bin/gfortran.exe \ |
| -DCMAKE_BUILD_TYPE=Release \ |
| -DBUILD_SHARED_LIBS=ON \ |
| -DBUILD_TEST=OFF \ |
| -DPYTHON_VERSION=${pyver} \ |
| -DPYTHON_EXECUTABLE=${pyexe} \ |
| -DPYTHON_LIBRARY=${pylib} \ |
| -DPYTHON_INCLUDE_DIRS=${MINGW_PREFIX}/include/python${pyver} \ |
| -DQHULL_INCLUDE_DIRS=${MINGW_PREFIX}/include \ |
| -DQHULL_LIBRARY_DIRS=${MINGW_PREFIX}/lib \ |
| -DQHULL_LIBRARIES=qhullstatic \ |
| -DGD_INCLUDE_DIR=${MINGW_PREFIX}/include \ |
| -DDEFAULT_NO_BINDINGS=ON \ |
| -DENABLE_ada=OFF \ |
| -DENABLE_cxx=ON \ |
| -DENABLE_fortran=ON \ |
| -DENABLE_lua=ON \ |
| -DENABLE_python=ON \ |
| -DENABLE_tcl=ON \ |
| -DENABLE_tk=ON \ |
| -DENABLE_DYNDRIVERS=OFF \ |
| -DENABLE_wxwidgets=ON \ |
| -DENABLE_itk=OFF \ |
| -DENABLE_qt=OFF \ |
| -DPLD_png=ON \ |
| -DPLD_jpeg=ON \ |
| -DPLD_gif==ON \ |
| -DPLD_wingcc=ON \ |
| -DPLD_wingdi=ON \ |
| ../${_realname}-${pkgver} |
| |
| make V=1 |
| } |
| |
| package() { |
| cd "${srcdir}/build-${MINGW_CHOST}" |
| make DESTDIR="${pkgdir}" install |
| |
| local MINGW_PREFIX_WIN=$(cygpath -am ${MINGW_PREFIX}) |
| local MSYS2_USR_WIN=$(cygpath -am /usr) |
| |
| # Fix paths in pkgconfig files |
| find "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig" -type f -name '*.pc' \ |
| -exec sed -i -e "s|${MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" {} \; |
| |
| # Fix paths in cmake files |
| for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/plplot/*.cmake; do |
| sed -e "s|${MINGW_PREFIX_WIN}|\$\{MINGW_PREFIX\}|g" -i ${_f} |
| done |
| |
| # Fix paths in example files |
| find "${pkgdir}${MINGW_PREFIX}/share/plplot${pkgver}/examples" -type f -name '*.sh' \ |
| -exec sed -i -e "s|${MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" {} \; |
| find "${pkgdir}${MINGW_PREFIX}/share/plplot${pkgver}/examples" -type f -name 'Makefile' \ |
| -exec sed -i -e "s|${MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" {} \; |
| find "${pkgdir}${MINGW_PREFIX}/share/plplot${pkgver}/examples" -type f -name '*.sh' \ |
| -exec sed -i -e "s|${MSYS2_USR_WIN}|/usr|g" {} \; |
| find "${pkgdir}${MINGW_PREFIX}/share/plplot${pkgver}/examples" -type f -name 'Makefile' \ |
| -exec sed -i -e "s|${MSYS2_USR_WIN}|/usr|g" {} \; |
| |
| # Fix paths in the remaing odd files |
| sed -s "s|${MINGW_PREFIX_WIN}|\${MINGW_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tcl/tclsh_standard_examples |
| sed -s "s|${MINGW_PREFIX_WIN}|\${MINGW_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tk/wish_runAllDemos |
| sed -s "s|${MINGW_PREFIX_WIN}|\${MINGW_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tk/wish_standard_examples |
| sed -s "s|${MINGW_PREFIX_WIN}|\${MINGW_PREFIX}|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/cmake/modules/plplot_configure.cmake |
| sed -s "s|${MSYS2_USR_WIN}|/usr|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/cmake/modules/plplot_configure.cmake |
| sed -s "s|${MSYS2_USR_WIN}|/usr|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tcl/pltcl_standard_examples |
| sed -s "s|${MSYS2_USR_WIN}|/usr|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tcl/tclsh_standard_examples |
| sed -s "s|${MSYS2_USR_WIN}|/usr|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tk/plserver_runAllDemos |
| sed -s "s|${MSYS2_USR_WIN}|/usr|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tk/plserver_standard_examples |
| sed -s "s|${MSYS2_USR_WIN}|/usr|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tk/wish_runAllDemos |
| sed -s "s|${MSYS2_USR_WIN}|/usr|g" -i "${pkgdir}"${MINGW_PREFIX}/share/plplot${pkgver}/examples/tk/wish_standard_examples |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname |
| cp -pf ${srcdir}/${_realname}-${pkgver}/Copyright \ |
| ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} |
| cp -pf ${srcdir}/${_realname}-${pkgver}/COPYING* \ |
| ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname} |
| } |