مهدي شينون (Mehdi Chinoune) a356db6a1f libint2: generate and build a simpler configuration
This configuration takes less time to generate and build.
The previous configuration was meant to be compatible with psi4, but It turns out psi4 is much complicated.
2024-06-20 18:27:20 +01:00

126 lines
4.3 KiB
Bash

# Contributor: Mehdi Chinoune <mehdi.chinoune@hotmail.com>
_realname=libint
pkgbase=mingw-w64-${_realname}2
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}2")
pkgver=2.9.0
pkgrel=2
pkgdesc="high-performance library for computing Gaussian integrals in quantum mechanics (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url='https://github.com/evaleev/libint'
msys2_references=(
'aur: libint2'
)
license=('spdx:LGPL-3.0-or-later')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-autotools"
"${MINGW_PACKAGE_PREFIX}-fc"
"${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-eigen3"
"${MINGW_PACKAGE_PREFIX}-gmp"
"${MINGW_PACKAGE_PREFIX}-mpfr"
"${MINGW_PACKAGE_PREFIX}-python")
optdepends=("${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-eigen3"
"${MINGW_PACKAGE_PREFIX}-gmp"
"${MINGW_PACKAGE_PREFIX}-mpfr")
source=("https://github.com/evaleev/libint/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz"
#https://github.com/evaleev/libint/releases/download/v${pkgver}/${_realname}-${pkgver}.tgz
"001-fix-build-on-mingw.patch"
"002-cmake-fix-build-on-mingw.patch::https://github.com/evaleev/libint/commit/7720248d.patch")
sha256sums=('4929b2f2d3e53479270be052e366e8c70fa154a7f309e5c2c23b7d394159687d'
'd60290391aad41601495b0717c53d8b888327e6c67932d633c3e731016626f80'
'723b3a7520bd4cce149092e5ee104aa19d61ca99ce64b52de18a7215861b3006')
noextract=("${_realname}-${pkgver}.tar.gz")
_generate_source() {
cd "${srcdir}"
mkdir -p generated && cd generated
local LMAX=5
../${_realname}-${pkgver}/configure \
--srcdir=../${_realname}-${pkgver} \
--with-cxxgen-optflags="${CXXFLAGS}" \
--enable-eri=1 \
--enable-eri3=1 \
--enable-eri2=1 \
--with-max-am=${LMAX} \
--with-opt-am=3 \
--with-eri-max-am=${LMAX},$((LMAX-1)) \
--with-eri2-max-am=$((LMAX+2)),$((LMAX+1)) \
--with-eri3-max-am=$((LMAX+2)),$((LMAX+1)) \
--with-multipole-max-order=4 \
--enable-generic-code \
--disable-unrolling
sed -s "s|\.\.\.|..|g" -i Makefile
make export
}
prepare() {
echo "Extracting ${_realname}-${pkgver}.tar.gz..."
tar -xzf ${_realname}-${pkgver}.tar.gz || true
cd "${srcdir}"/${_realname}-${pkgver}
patch -p1 -i "${srcdir}"/001-fix-build-on-mingw.patch
patch -p1 -i "${srcdir}"/002-cmake-fix-build-on-mingw.patch
mv lib/basis/6-31g\*.g94 lib/basis/6-31gs.g94
mv lib/basis/6-31g\*\*.g94 lib/basis/6-31gss.g94
mv lib/basis/6-311g\*\*.g94 lib/basis/6-311gss.g94
./autogen.sh
_generate_source
cd "${srcdir}"/generated
tar -xzf ${_realname}-${pkgver}.tgz
}
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
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
"${MINGW_PREFIX}"/bin/cmake.exe \
-GNinja \
-DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
"${extra_config[@]}" \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_DLL_NAME_WITH_SOVERSION=ON \
-DENABLE_FORTRAN=ON \
-DENABLE_MPFR=ON \
-DPython_EXECUTABLE=${MINGW_PREFIX}/bin/python \
-S generated/${_realname}-${pkgver} \
-B build-${MSYSTEM}
"${MINGW_PREFIX}"/bin/cmake.exe --build "build-${MSYSTEM}"
}
package() {
DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install "build-${MSYSTEM}"
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/libint2/*.cmake; do
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
sed -e "s|${MINGW_PREFIX}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
done
# Remove some unrequired files
find "${pkgdir}"${MINGW_PREFIX}/ -type f -name '\._*' -exec rm {} \;
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}2/LICENSE
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}2/COPYING
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.LESSER \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}2/COPYING.LESSER
}