# SPDX-License-Identifier: CC0-1.0
#
# SPDX-FileContributor: Adrian "asie" Siekierka, 2023

pkgname=toolchain-gcc-arm-none-eabi-picolibc-generic
_pkgver=1.8.10
pkgver=1.8.10.r25700.5a699b4ec
pkgrel=1
epoch=
pkgdesc="picolibc-based C library for Wonderful toolchain"
arch=(any)
url="https://github.com/WonderfulToolchain/wf-picolibc"
license=("BSD-3-Clause")
source=(
	"wf-picolibc::git+https://github.com/WonderfulToolchain/wf-picolibc#branch=wonderful"
	"crt0.c"
	"cross-thumb.txt"
)
depends=(toolchain-gcc-arm-none-eabi-binutils toolchain-gcc-arm-none-eabi-gcc)
groups=(toolchain-gcc-arm-none-eabi)
sha256sums=(
	'SKIP'
	'SKIP'
	'SKIP'
)
options=(!strip)

. "/wf/config/runtime-env-vars.sh"

prepare() {
	mkdir -p picolibc-build
}

GIT_REPO_DIR=wf-picolibc
. "../templates/git-pkgver.PKGBUILD"

build() {
	cd picolibc-build
	export PATH=$WF_PATH/toolchain/gcc-arm-none-eabi/bin:$PATH

	meson setup \
		--cross-file=../cross-thumb.txt \
		-Dmultilib=true \
		-Dpicocrt=false \
		-Dpicolib=false \
		-Dsemihost=false \
		-Dspecsdir=none \
		-Dtests=false \
		-Dthread-local-storage=true \
		\
		-Dfast-bufio=true \
		-Dio-long-long=true \
		-Dio-pos-args=true \
		-Dio-percent-b=true \
		\
		-Dposix-console=true \
		-Dformat-default=double \
		\
		-Dnewlib-nano-malloc=false \
		\
		-Dprefix="$WF_PATH"/toolchain/gcc-arm-none-eabi \
		-Dlibdir=arm-none-eabi/lib \
		-Dincludedir=arm-none-eabi/include \
		../wf-picolibc

	ninja

	cd ..
	arm-none-eabi-gcc -c -o crt0.o crt0.c
}

package() {
	cd picolibc-build
	DESTDIR="$pkgdir" ninja install
	cp ../crt0.o "$pkgdir"/"$WF_PATH"/toolchain/gcc-arm-none-eabi/arm-none-eabi/lib

	cd "$pkgdir"
	wf_relocate_path_to_destdir

	rm toolchain/gcc-arm-none-eabi/arm-none-eabi/lib/picolibc*.ld
	cp /wf/patches/picolibc.specs toolchain/gcc-arm-none-eabi/arm-none-eabi/lib/
}
