# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
setvar pkgname = 'cmocka'
setvar pkgver = '1.1.1'
setvar pkgrel = '1'
setvar pkgdesc = ""An elegant unit testing framework for C with support for mock objects""
setvar url = ""https://cmocka.org/""
setvar arch = ""all""
setvar license = ""ASL-2.0""
setvar depends = """"
setvar makedepends = ""cmake""
setvar subpackages = ""$pkgname-dev""
setvar source = ""https://cmocka.org/files/${pkgver%.*}/$pkgname-$pkgver.tar.xz
	wordsize.patch
	musl_uintptr.patch""
setvar builddir = ""$srcdir/$pkgname-$pkgver""

proc prepare {
	default_prepare

	# Just one single test (customer_database_test) is breaking on ppc64le.
	if test $CARCH = "ppc64le" {
		sed -i '/customer_database_test/d' "$builddir"/example/CMakeLists.txt
	}
}

proc build {
	mkdir -p "$builddir"/build
	cd "$builddir"/build

	cmake .. \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_C_FLAGS="$CFLAGS" \
		-DUNIT_TESTING=ON
	make
}

proc check {
	cd "$builddir"/build

	# If some tests fail, run them again in verbose mode.
	make test || ctest --rerun-failed --extra-verbose
}

proc package {
	make -C "$builddir"/build DESTDIR="$pkgdir" install
}

setvar sha512sums = ""801c4a3e1bb9047241b1cb5a90c1cbdee1b0aff5e3d0a84ec8b2dbaee79274618c24fbe5e9fedbf0b3ee18c6c98b55d93e135d037ac33ab872edc7665af41577  cmocka-1.1.1.tar.xz
16dfd8e6e2b21bda549a31cae0e60405039ff3559c879bc35811b55b06d64dcc75402d6a0cb89d029d69faeaa6484329ce03788feb9e69c1a844e63ac8d21f69  wordsize.patch
b20b5c0d172a9df756ec093a3df4bf5bdf2a0c06a3d3ad39ec001248ccb86e6fd3dcedfc9ce42e8309cc01ea34fadffd4ebcc0fb3af9f5e795e7fe40c461ac60  musl_uintptr.patch""