SUMMARY="Advanced twin-panel (commander-style) file-manager with many extras"
DESCRIPTION="Krusader is an advanced twin panel (commander style) file \
manager for KDE Plasma and other desktops in the *nix world, similar to \
Midnight or Total Commander. It provides all the file management features \
you could possibly want. Plus:

* Extensive archive handling
* Mounted filesystem support
* File transfers with (S)FTP
* Advanced search module
* An internal viewer and editor
* Directory synchronisation
* File content comparisons
* Powerful batch renaming
* And much much more ...

It supports a wide variety of archive formats and can handle other KIO \
slaves such as smb or fish. It is (almost) completely customizable, very \
user friendly, fast and looks great on your desktop! You should give it a try."
HOMEPAGE="https://krusader.org/"
COPYRIGHT="2000-2020 Krusader Krew"
LICENSE="GNU GPL v2"
REVISION="3"
SOURCE_URI="https://download.kde.org/stable/krusader/$portVersion/krusader-$portVersion.tar.xz"
CHECKSUM_SHA256="41a39a43b3c42dd1d1ecaea86df30caff6a061fecc1d66f60859b2a3ca976109"
ADDITIONAL_FILES="krusader.rdef.in"
PATCHES="krusader-$portVersion.patchset"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

PROVIDES="
	krusader$secondaryArchSuffix = $portVersion
	app:Krusader$secondaryArchSuffix = $portVersion
	"
REQUIRES="
	haiku$secondaryArchSuffix
	cmd:dbus_launch
	lib:libKF5Archive$secondaryArchSuffix
	lib:libKF5Auth$secondaryArchSuffix
	lib:libKF5Bookmarks$secondaryArchSuffix
	lib:libKF5Codecs$secondaryArchSuffix
	lib:libKF5Completion$secondaryArchSuffix
	lib:libKF5ConfigCore$secondaryArchSuffix
	lib:libKF5ConfigWidgets$secondaryArchSuffix
	lib:libKF5CoreAddons$secondaryArchSuffix
	lib:libKF5DocTools$secondaryArchSuffix
	lib:libKF5GuiAddons$secondaryArchSuffix
	lib:libKF5I18n$secondaryArchSuffix
	lib:libKF5IconThemes$secondaryArchSuffix
	lib:libKF5ItemViews$secondaryArchSuffix
	lib:libKF5JobWidgets$secondaryArchSuffix
	lib:libKF5KIOCore$secondaryArchSuffix
	lib:libKF5Notifications$secondaryArchSuffix
	lib:libKF5Parts$secondaryArchSuffix
	lib:libKF5Service$secondaryArchSuffix
	lib:libKF5Solid$secondaryArchSuffix
	lib:libKF5SonnetCore$secondaryArchSuffix
	lib:libKF5TextWidgets$secondaryArchSuffix
	lib:libKF5Wallet$secondaryArchSuffix
	lib:libKF5WidgetsAddons$secondaryArchSuffix
	lib:libKF5WindowSystem$secondaryArchSuffix
	lib:libKF5XmlGui$secondaryArchSuffix
	lib:libQt5Core$secondaryArchSuffix
	lib:libQt5Gui$secondaryArchSuffix
	lib:libQt5PrintSupport$secondaryArchSuffix
	lib:libQt5Widgets$secondaryArchSuffix
	lib:libz$secondaryArchSuffix
	"

SUPPLEMENTS="
	kio_extras$secondaryArchSuffix
	"

BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	extra_cmake_modules$secondaryArchSuffix >= 5.77
	devel:libKF5Archive$secondaryArchSuffix
	devel:libKF5Auth$secondaryArchSuffix
	devel:libKF5Bookmarks$secondaryArchSuffix
	devel:libKF5Codecs$secondaryArchSuffix
	devel:libKF5Completion$secondaryArchSuffix
	devel:libKF5ConfigCore$secondaryArchSuffix
	devel:libKF5ConfigWidgets$secondaryArchSuffix
	devel:libKF5CoreAddons$secondaryArchSuffix
	devel:libKF5DocTools$secondaryArchSuffix
	devel:libKF5GuiAddons$secondaryArchSuffix
	devel:libKF5I18n$secondaryArchSuffix
	devel:libKF5IconThemes$secondaryArchSuffix
	devel:libKF5ItemViews$secondaryArchSuffix
	devel:libKF5JobWidgets$secondaryArchSuffix
	devel:libKF5KIOCore$secondaryArchSuffix
	devel:libKF5Notifications$secondaryArchSuffix
	devel:libKF5Parts$secondaryArchSuffix
	devel:libKF5Service$secondaryArchSuffix
	devel:libKF5Solid$secondaryArchSuffix
	devel:libKF5SonnetCore$secondaryArchSuffix
	devel:libKF5TextWidgets$secondaryArchSuffix
	devel:libKF5Wallet$secondaryArchSuffix
	devel:libKF5WidgetsAddons$secondaryArchSuffix
	devel:libKF5WindowSystem$secondaryArchSuffix
	devel:libKF5XmlGui$secondaryArchSuffix
	devel:libQt5Core$secondaryArchSuffix
	devel:libQt5Gui$secondaryArchSuffix
	devel:libQt5PrintSupport$secondaryArchSuffix
	devel:libQt5Widgets$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	"
BUILD_PREREQUIRES="
	cmd:cmake
	cmd:g++$secondaryArchSuffix
	cmd:make
	cmd:qdbuscpp2xml$secondaryArchSuffix >= 5
	"

defineDebugInfoPackage krusader$secondaryArchSuffix \
	"$appsDir"/Krusader

BUILD()
{
	sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt
	sed -e '/kdoctools_install(po)/ s/^#*/#/' -i CMakeLists.txt

	mkdir -p build
	cd build
	cmake .. \
		-DCMAKE_INSTALL_PREFIX="$appsDir" \
		-DSHARE_INSTALL_PREFIX="$dataDir" \
		-DKDE_INSTALL_PLUGINDIR="$addOnsDir"/Qt5 \
		-DECM_DIR="/system/data/cmake/Modules/ECM/cmake"

	make $jobArgs
}

INSTALL()
{
	cd build
	make install

	local APP_SIGNATURE="application/x-vnd.qt5-krusader"
	local MAJOR="`echo "$portVersion" | cut -d. -f1`"
	local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
	local MINOR="`echo "$portVersion" | cut -d. -f3`"
	local LONG_INFO="$SUMMARY"
	sed \
		-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
		-e "s|@MAJOR@|$MAJOR|" \
		-e "s|@MIDDLE@|$MIDDLE|" \
		-e "s|@MINOR@|$MINOR|" \
		-e "s|@LONG_INFO@|$LONG_INFO|" \
		$portDir/additional-files/krusader.rdef.in > krusader.rdef

	mv "$appsDir"/bin/krusader "$appsDir"/Krusader
	rm -rf "$appsDir"/bin "$appsDir"/etc
	addResourcesToBinaries krusader.rdef "$appsDir"/Krusader
	addAppDeskbarSymlink "$appsDir"/Krusader
}
