# Contributor: André Klitzing <aklitzing@gmail.com>
# Maintainer: André Klitzing <aklitzing@gmail.com>
pkgname=monero
pkgver=0.18.4.5
pkgrel=0
_ver_randomx=10494476d6236b177733224123747201dec180bb
_ver_supercop=633500ad8c8759995049ccd022107d1fa8a1bbc9
pkgdesc="Secure, private, untraceable cryptocurrency"
url="https://getmonero.org/"
arch="all !riscv64" # build failure
license="BSD-3-Clause"
makedepends="
	boost-dev
	cmake
	cppzmq
	hidapi-dev
	libsodium-dev
	miniupnpc-dev
	openssl-dev>3
	rapidjson-dev
	readline-dev
	samurai
	unbound-dev
	zeromq-dev
	"
options="!check"
source="$pkgname-$pkgver.tar.gz::https://github.com/monero-project/monero/archive/refs/tags/v$pkgver.tar.gz
	$pkgname-randomx-$_ver_randomx.tar.gz::https://github.com/tevador/RandomX/archive/$_ver_randomx.tar.gz
	$pkgname-supercop-$_ver_supercop.tar.gz::https://github.com/monero-project/supercop/archive/$_ver_supercop.tar.gz
	easylogging.patch
	gcc13.patch
	system-miniupnpc.patch
	version-string.patch
	loongarch64.patch
	miniupnpc.patch
	"

prepare() {
	default_prepare

	rm -fr external/randomx external/supercop
	ln -s $srcdir/RandomX-$_ver_randomx external/randomx
	ln -s $srcdir/supercop-$_ver_supercop external/supercop
}

build() {
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DSTACK_TRACE=OFF \
		-DMANUAL_SUBMODULES=1 \
		-DARCH=default
	cmake --build build
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}

sha512sums="
9899c53e79fad57fd66a77b2053fd2d9856b1834a041800826337110b9f8188300b67c78d5c93dbd01510f7bf6b9c682f19f154ceb9ecad6adf818474b517cfa  monero-0.18.4.5.tar.gz
41ab097ec43b79844f4e9f2143ead381bcda228e6eae6fe082f078846ca2e3e50e2800f645355f879dc14ef7980c98a4019da9f9aaa2175b59c80e099d5be3fc  monero-randomx-10494476d6236b177733224123747201dec180bb.tar.gz
06cca8d1def31aa11bf5aa42d861c4a027786f7cc494fa3ab53a2bc4bd9d1f55b2389020ba5fd1816ed277b6e4320ad8edbb3117dcf4981fc7fba655c4bbe648  monero-supercop-633500ad8c8759995049ccd022107d1fa8a1bbc9.tar.gz
c149f1e6a6968115f95213d512116457b36665ff1159c5137dda45fa27712ce6f088b908663fb429b8e5f74e41d6cd57669db79d596564ddaca481dbdc63393e  easylogging.patch
9d1ae2b057d49abb1fcd04744069bc3898f8822db2ecf259bc6f0f8b20c4871ba9947356c548e43d2fc20aa4aa03aaf02e0052d53056028d334638c0a360842a  gcc13.patch
15aacc364c0877bce1113c65c40daf33287bc9f26d94e0d8841940eb9fa7a9abf3c25f6ab37a9f91cdb093668e2a345a59b0a6a0e3f06dbad1078530f216dc72  system-miniupnpc.patch
411d041754bf801a4dcff6eb52d0d7fa29ad07ce673f956764b2d4b8c8252233b5f09f8833f8461be0f9b0c922748db71fecad04ae755c61ebe50113e2648485  version-string.patch
f71bace84a4569cf6c7e094303bb98ba7472d8e8f35b5ece4d5d1e60b3c6a75fb212cbf88a3bc5a5b0ef28a645c7b1c32520f940fa935e42421885cfb0268f74  loongarch64.patch
c7e143b31906e1b08f8c04374a8ec5285d83bb8f5a958e2bbd1c2d4fc78645e3a43f456eb321810998ff4c147a85d9617188eb68b3287e7279b2495805645939  miniupnpc.patch
"
