SUMMARY="A portable, pure C implementation of the Git core methods"
DESCRIPTION="The library provides:
* SHA conversions, formatting and shortening
* abstracted ODB backend system
* commit, tag, tree and blob parsing, editing, and write-back
* tree traversal
* revision walking
* index file (staging area) manipulation
* reference management (including packed references)
* config file management
* high level repository management
* thread safety and reentrancy
* descriptive and detailed error messages
* ...and more (over 175 different API calls)"
HOMEPAGE="https://libgit2.github.com/"
COPYRIGHT="2005-2018 libgit2 project"
LICENSE="GNU LGPL v2"
REVISION="4"
SOURCE_URI="https://github.com/libgit2/libgit2/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="0da4e211dfb63c22e5f43f2a4a5373e86a140afa88a25ca6ba3cc2cae58263d2"
SOURCE_FILENAME="libgit2-$portVersion.tar.gz"
PATCHES="libgit2-$portVersion.patchset"

ARCHITECTURES="all ?x86"
SECONDARY_ARCHITECTURES="x86"

libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%.*}"

PROVIDES="
	libgit2$secondaryArchSuffix = $portVersion
	lib:libgit2$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES="
	haiku$secondaryArchSuffix
	lib:libcrypto$secondaryArchSuffix
	lib:libcurl$secondaryArchSuffix
	lib:libssh2$secondaryArchSuffix
	lib:libz$secondaryArchSuffix
	"

PROVIDES_devel="
	libgit2${secondaryArchSuffix}_devel = $portVersion
	devel:libgit2$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES_devel="
	libgit2$secondaryArchSuffix == $portVersion base
	"

BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	devel:libcrypto$secondaryArchSuffix
	devel:libcurl$secondaryArchSuffix
	devel:libssh2$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	"
BUILD_PREREQUIRES="
	cmd:cmake
	cmd:curl_config$secondaryArchSuffix
	cmd:gcc$secondaryArchSuffix
	cmd:ld$secondaryArchSuffix
	cmd:make
	cmd:pkg_config$secondaryArchSuffix
	"

defineDebugInfoPackage libgit2$secondaryArchSuffix \
	"$libDir"/libgit2.so.$libVersion

BUILD()
{
	mkdir -p build && cd build

	OPTIONS=
	if [ $effectiveTargetArchitecture == x86_gcc2 ] ; then
		OPTIONS=-DTHREADSAFE=OFF
	fi

	cmake .. \
		-DCMAKE_INSTALL_PREFIX:PATH=$prefix \
		-DBIN_INSTALL_DIR:PATH=$binDir \
		-DINCLUDE_INSTALL_DIR:PATH=$includeDir \
		-DLIB_INSTALL_DIR:PATH=$libDir \
		-DBUILD_CLAR=OFF \
		-DBUILD_EXAMPLES=OFF $OPTIONS

	make $jobArgs
}

INSTALL()
{
	cd build
	make install

	prepareInstalledDevelLib libgit2
	fixPkgconfig

	packageEntries devel $developDir
}

TEST()
{
	# See tests/README.md
	true
}
