# Description: A fast and lightweight key/value database library
# URL: https://github.com/google/leveldb
# Maintainer: Danny Rawlins, crux at romster dot me
# Depends on: snappy cmake ninja

name=leveldb
version=1.23
release=1
source=(https://github.com/google/leveldb/archive/$version/$name-$version.tar.gz
	0001-Allow-leveldbjni-build.patch
	0002-Added-a-DB-SuspendCompations-and-DB-ResumeCompaction.patch
	0003-allow-Get-calls-to-avoid-copies-into-std-string.patch
	0004-bloom_test-failure-on-big-endian-archs.patch
	0005-Restore-soname-versioning-with-CMake-build.patch
	0006-revert-no-rtti.patch)

build() {
	patch -d $name-$version -p1 -i $SRC/0001-Allow-leveldbjni-build.patch
	patch -d $name-$version -p1 -i $SRC/0002-Added-a-DB-SuspendCompations-and-DB-ResumeCompaction.patch
	patch -d $name-$version -p1 -i $SRC/0003-allow-Get-calls-to-avoid-copies-into-std-string.patch
	patch -d $name-$version -p1 -i $SRC/0004-bloom_test-failure-on-big-endian-archs.patch
	patch -d $name-$version -p1 -i $SRC/0005-Restore-soname-versioning-with-CMake-build.patch
	patch -d $name-$version -p1 -i $SRC/0006-revert-no-rtti.patch

	cmake -S $name-$version -B build -G Ninja \
		-D CMAKE_INSTALL_PREFIX=/usr \
		-D CMAKE_INSTALL_LIBDIR=lib \
		-D CMAKE_BUILD_TYPE=Release \
		-D CMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
		-D CMAKE_C_FLAGS_RELEASE="$CFLAGS" \
		-D BUILD_SHARED_LIBS=ON \
		-DLEVELDB_BUILD_TESTS=OFF \
		-DLEVELDB_BUILD_BENCHMARKS=OFF \
		-Wno-dev

	cmake --build build
	DESTDIR=$PKG cmake --install build

cat <<- EOF > leveldb.pc
prefix=/usr
exec_prefix=\${prefix}
includedir=\${prefix}/include
libdir=\${exec_prefix}/lib

Name: ${name}
Description: A fast and lightweight key/value database library
Version: ${version}
Libs: -L\${libdir} -lleveldb
EOF

	install -Dm644 leveldb.pc $PKG/usr/lib/pkgconfig/leveldb.pc
}
