160 lines
5.8 KiB
Bash
160 lines
5.8 KiB
Bash
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
|
# Contributor: Renato Silva <br.renatosilva@gmail.com>
|
|
# Contributor: Brisingr Aerowing <ztgreve@live.com>
|
|
|
|
_realname=sqlite3
|
|
pkgbase=mingw-w64-${_realname}
|
|
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
|
|
$([[ ${CARCH} == i686 ]] || echo "${MINGW_PACKAGE_PREFIX}-sqlite-docs"))
|
|
_sqlite_year=2025
|
|
_amalgamationver=3500400
|
|
_docver=${_amalgamationver}
|
|
pkgver=3.50.4
|
|
pkgrel=1
|
|
pkgdesc="A C library that implements an SQL database engine (mingw-w64)"
|
|
arch=('any')
|
|
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
|
url="https://www.sqlite.org/"
|
|
msys2_repository_url="https://www.sqlite.org/cgi/src/dir?ci=trunk"
|
|
msys2_references=(
|
|
'archlinux: sqlite'
|
|
"cpe: cpe:/a:sqlite:sqlite"
|
|
)
|
|
license=(PublicDomain)
|
|
depends=("${MINGW_PACKAGE_PREFIX}-readline"
|
|
"${MINGW_PACKAGE_PREFIX}-zlib")
|
|
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
|
"${MINGW_PACKAGE_PREFIX}-tcl")
|
|
source=(https://www.sqlite.org/${_sqlite_year}/sqlite-src-${_amalgamationver}.zip
|
|
https://www.sqlite.org/${_sqlite_year}/sqlite-doc-${_docver}.zip
|
|
0001-sqlite-pcachetrace-include-sqlite3.patch
|
|
0002-fix-building-sqldiff.patch
|
|
0003-do-not-install-tclsqlite3-with-make.patch
|
|
0004-dont-misuse-tcl-extern.patch
|
|
0005-dont-require-dlopen-on-windows.patch
|
|
Makefile.ext.in
|
|
README.md.in
|
|
LICENSE)
|
|
sha256sums=('b7b4dc060f36053902fb65b344bbbed592e64b2291a26ac06fe77eec097850e9'
|
|
'f8a03cf461500310c7a785c9d6f86121ac9465601982cdcac6de0c5987dbfc2f'
|
|
'6518119034ceb2820d058afcb099d11f636271f55a41ffae22855af66a369166'
|
|
'cf5c47c30e97f5493d2fad730a9bfcd33d20a0a052571e8e35b88f388d368724'
|
|
'a500428a3434075932de84247b1405f3d73e7ed0a8b664eb20a736bd02d6ed29'
|
|
'8dd2377afaad17fa85049be90bfc2bd757350343b3f64ff9bfbbcf3736593a34'
|
|
'bc0dd65d11e96a9b4399ca69803220199adbb3c03a158f45170817125d827d98'
|
|
'84b64569978dde5b63799099b0fbb3336943ef877170beb84483020c67e25b3c'
|
|
'5ca42f1f92abfb61bacc9ff60f5836cc56e2ce2af52264f918cb06c3d566d562'
|
|
'0b76663a90e034f3d7f2af5bfada4cedec5ebc275361899eccc5c18e6f01ff1f')
|
|
|
|
# From Debian sqlite3-tools
|
|
_sqlite_tools="showdb.exe showjournal.exe showstat4.exe showwal.exe dbhash.exe sqldiff.exe sqlite3_analyzer.exe"
|
|
|
|
prepare() {
|
|
cd "sqlite-src-${_amalgamationver}"
|
|
patch -p1 -i "${srcdir}/0001-sqlite-pcachetrace-include-sqlite3.patch"
|
|
patch -p1 -i "${srcdir}/0002-fix-building-sqldiff.patch"
|
|
patch -p1 -i "${srcdir}/0004-dont-misuse-tcl-extern.patch"
|
|
# https://github.com/sqlite/sqlite/commit/11ba513fe5fb8313748fed3490bcb4b4d34375cc
|
|
patch -p1 -i "${srcdir}/0005-dont-require-dlopen-on-windows.patch"
|
|
}
|
|
|
|
build() {
|
|
mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}
|
|
|
|
declare -a SQLITE_OPTIONS=(
|
|
"-DSQLITE_ENABLE_COLUMN_METADATA=1"
|
|
"-DSQLITE_USE_MALLOC_H=1"
|
|
"-DSQLITE_USE_MSIZE=1"
|
|
"-DSQLITE_DISABLE_DIRSYNC=1"
|
|
"-DSQLITE_ENABLE_DBSTAT_VTAB=1"
|
|
"-DSQLITE_SOUNDEX=1"
|
|
"-DSQLITE_ENABLE_MATH_FUNCTIONS=1"
|
|
)
|
|
|
|
CFLAGS+=" -fexceptions -fno-strict-aliasing ${SQLITE_OPTIONS[@]}"
|
|
|
|
MSYS2_ARG_CONV_EXCL="--prefix=;TCLLIBDIR=" \
|
|
../sqlite-src-${_amalgamationver}/configure \
|
|
--prefix=${MINGW_PREFIX} \
|
|
--enable-threadsafe \
|
|
--disable-editline \
|
|
--enable-readline \
|
|
--enable-load-extension \
|
|
--enable-tcl \
|
|
--all \
|
|
--session \
|
|
--out-implib \
|
|
--with-readline-inc=-I${MINGW_PREFIX}/include \
|
|
--with-tcl=${MINGW_PREFIX}/lib \
|
|
--with-tclsh=${MINGW_PREFIX}/bin/tclsh \
|
|
TCLLIBDIR="${MINGW_PREFIX}/lib/sqlite${pkgver}"
|
|
|
|
make
|
|
|
|
# Build additional tools
|
|
make ${_sqlite_tools}
|
|
|
|
# Building the extensions
|
|
mkdir -p ext/misc
|
|
cp ../Makefile.ext.in ext/misc/Makefile
|
|
sed -e "s|@srcdir@|${srcdir}/sqlite-src-${_amalgamationver}/ext/misc|g" -i ext/misc/Makefile
|
|
sed -e "s|@top_srcdir@|${srcdir}/sqlite-src-${_amalgamationver}|g" -i ext/misc/Makefile
|
|
sed -e "s|@top_builddir@|${PWD}|g" -i ext/misc/Makefile
|
|
sed -e "s|@prefix@|${MINGW_PREFIX}|g" -i ext/misc/Makefile
|
|
sed -e "s|@datadir@|${MINGW_PREFIX}/share|g" -i ext/misc/Makefile
|
|
sed -e "s|@CC@|cc|g" -i ext/misc/Makefile
|
|
make -C ext/misc
|
|
}
|
|
|
|
check() {
|
|
cd "${srcdir}/build-${MSYSTEM}"
|
|
# This test run lasts very loooong ... despite the target name
|
|
make quicktest || warning "Tests failed"
|
|
}
|
|
|
|
package_sqlite3() {
|
|
optdepends=("${MINGW_PACKAGE_PREFIX}-tcl: for sqlite3_analyzer")
|
|
provides=(${MINGW_PACKAGE_PREFIX}-sqlite=${pkgver}
|
|
${MINGW_PACKAGE_PREFIX}-sqlite-analyzer=${pkgver})
|
|
conflicts=(${MINGW_PACKAGE_PREFIX}-sqlite-analyzer)
|
|
replaces=(${MINGW_PACKAGE_PREFIX}-sqlite-analyzer)
|
|
|
|
cd "build-${MSYSTEM}"
|
|
make DESTDIR="${pkgdir}" install
|
|
|
|
for tools in ${_sqlite_tools}; do
|
|
install -Dm755 $tools "${pkgdir}${MINGW_PREFIX}/bin/$tools"
|
|
done
|
|
|
|
# Install extensions
|
|
make -C ext/misc DESTDIR="${pkgdir}" install
|
|
cat "${srcdir}/README.md.in" | sed \
|
|
-e "s|@MINGW_PREFIX@|${MINGW_PREFIX}|g" \
|
|
-e "s|@MSYSTEM@|${MSYSTEM}|g;" \
|
|
-e "s|@VERSION@|${pkgver}|g;" \
|
|
> "${pkgdir}${MINGW_PREFIX}/share/sqlite/extensions/README.md"
|
|
|
|
install -Dm644 "${srcdir}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
|
}
|
|
|
|
package_sqlite-docs() {
|
|
pkgdesc+=" (documentation)"
|
|
depends=()
|
|
|
|
# Install docs
|
|
cd "${srcdir}"/sqlite-doc-${_docver}
|
|
mkdir -p "${pkgdir}"${MINGW_PREFIX}/share/doc/${_realname}
|
|
cp -R * "${pkgdir}"${MINGW_PREFIX}/share/doc/${_realname}/
|
|
}
|
|
|
|
# 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;
|