# Template file for 'python3-scipy'
pkgname=python3-scipy
version=1.11.2
revision=1
build_style=python3-pep517
build_helper="meson"
make_build_args="--no-isolation --wheel
 $(vopt_if openblas "" "-Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack")"
hostmakedepends="python3-build python3-installer python3-meson-python
 python3-wheel python3-Cython python3-pybind11 pythran python3-numpy
 gcc-fortran pkg-config"
makedepends="python3-devel python3-pybind11 python3-numpy pythran
 $(vopt_if openblas openblas-devel "lapack-devel cblas-devel")"
depends="python3-numpy"
short_desc="Scientific library for Python3"
maintainer="Andrew J. Hesford <ajh@sideband.org>"
license="BSD-3-Clause"
homepage="https://scipy.org/"
distfiles="${PYPI_SITE}/s/scipy/scipy-${version}.tar.gz"
checksum=b29318a5e39bd200ca4381d80b065cdf3076c7d7281c5e36569e99273867f61d
make_check="no" # Tests need an installed copy to run and meson makes this tough

build_options="openblas"

if [ "$CROSS_BUILD" ]; then
	make_build_args+="
	 -Csetup-args=--cross-file=${XBPS_WRAPPERDIR}/meson/xbps_meson.cross
	 -Csetup-args=--cross-file=${XBPS_WRAPPERDIR}/meson/python.cross
	"

	_pybind11_dir="${py3_sitelib}/pybind11"
	export PKG_CONFIG_PATH="${XBPS_CROSS_BASE}/${_pybind11_dir}/share/pkgconfig"
	# pybind11 uses a path relative to the pkgconfig file to set $prefix,
	# which causes the wrapper to double-include $XBPS_CROSS_BASE; override
	# so that the wrapper properly points to the right location
	export PKG_CONFIG_PYBIND11_PREFIX="/${_pybind11_dir}"
fi

case "$XBPS_TARGET_MACHINE" in
	x86_64*|i686*|aarch64*|armv[67]*|ppc64*)
		# Prefer accelerated routines where available
		build_options_default="openblas"
		;;
	*) ;;
esac

if [ "$build_option_openblas" ]; then
	case "$XBPS_TARGET_MACHINE" in
		ppc64*) ;;
		ppc*) broken="numpy can't be built with openblas";;
	esac
fi

post_patch() {
	if [ "$CROSS_BUILD" ]; then
		local _xpy="${XBPS_CROSS_BASE}/${py3_sitelib}"
		cat > "${XBPS_WRAPPERDIR}/meson/python.cross" <<-EOF
			[properties]
			numpy-include-dir = '${_xpy}/numpy/core/include'
			pythran-include-dir = '${_xpy}/pythran'
			EOF
	fi
}

pre_build() {
	if [ "$CROSS_BUILD" ]; then
		# Meson can't tolerate $CC with arguments as set by the build helper
		CC="${XBPS_CROSS_TRIPLET}-gcc"
		# CXX needs to know where to find Python headers
		CXXFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc}"
	fi
}

post_install() {
	vlicense LICENSE.txt
}
