diff --git a/community/qjson/APKBUILD b/community/qjson/APKBUILD
index 8c30b8eee5d6f3fe6a43186ab4910f00f74a55b2..bc9ab5030eaf1a08c8cb093325a2065a5d5a6b04 100644
--- a/community/qjson/APKBUILD
+++ b/community/qjson/APKBUILD
@@ -9,24 +9,21 @@ arch="all"
 license="LGPL-2.1-or-later"
 makedepends="qt5-qtbase-dev cmake"
 subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/flavio/$pkgname/archive/$pkgver.tar.gz"
-
-prepare() {
-	cd "$builddir"
-	mkdir -p "$builddir"/build
-}
+source="$pkgname-$pkgver.tar.gz::https://github.com/flavio/qjson/archive/$pkgver.tar.gz"
 
 build() {
-	cd "$builddir"/build
-	cmake -DCMAKE_INSTALL_PREFIX=/usr \
-	      -DCMAKE_BUILD_TYPE=None \
-	      "$builddir"
-	make
+	if [ "$CBUILD" != "$CHOST" ]; then
+		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+	fi
+	cmake -B build \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_BUILD_TYPE=None \
+		. $CMAKE_CROSSOPTS
+	make -C build
 }
 
 package() {
-	cd "$builddir"/build
-	make DESTDIR="$pkgdir" install
+	make -C build DESTDIR="$pkgdir" install
 }
 
 sha512sums="ff0674f32abc6c88f9c535a58931f60baafa355655b043009a2574dadb822f10ec25017b78f2911f897a554a34733d7332c94cf4290dec16a631e22070c15e61  qjson-0.9.0.tar.gz"