SUMMARY="A native code to C/C++ decompiler"
DESCRIPTION="Snowman is a native code to C/C++ decompiler, \
supporting x86, AMD64, and ARM architectures. You can use it \
as a standalone GUI application, command-line tool, IDA plug-in \
or a library. Snowman is free software.\
* Supports ARM, x86, and x86-64 architectures.
* Reads ELF, Mach-O, and PE file formats
* Reconstructs functions, their names and arguments, local and global variables,
expressions, integer, pointer and structural types, all types of control-flow
structures, including switch.
* Has a nice graphical user interface with one-click navigation between the
assembler code and the reconstructed program.
* Has a command-line interface for batch processing."
HOMEPAGE="https://derevenets.com"
COPYRIGHT="2010 Yegor Derevenets"
LICENSE="GNU GPL v3"
REVISION="2"
SOURCE_URI="https://github.com/yegord/snowman/archive/v$portVersion.zip"
CHECKSUM_SHA256="45a9bf4dd0805c1c42155b6c5ff1c86bb28273dbf1453e958cfeee3cec086bc0"

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

PROVIDES="
	snowman$secondaryArchSuffix
	app:Snowman$secondaryArchSuffix
	cmd:nocode$secondaryArchSuffix
	"
REQUIRES="
	haiku$secondaryArchSuffix
	qt5$secondaryArchSuffix
	lib:libboost_filesystem$secondaryArchSuffix
	lib:libboost_iostreams$secondaryArchSuffix
	lib:libboost_program_options$secondaryArchSuffix
	lib:libboost_system$secondaryArchSuffix
	lib:libcapstone$secondaryArchSuffix
	"

BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	qt5${secondaryArchSuffix}_devel
	devel:libboost_filesystem$secondaryArchSuffix
	devel:libboost_iostreams$secondaryArchSuffix
	devel:libboost_program_options$secondaryArchSuffix
	devel:libboost_system$secondaryArchSuffix
	devel:libcapstone$secondaryArchSuffix
	"
BUILD_PREREQUIRES="
	cmd:cmake
	cmd:gcc$secondaryArchSuffix
	cmd:ld$secondaryArchSuffix
	cmd:make
	cmd:pkg_config$secondaryArchSuffix
	cmd:qmake$secondaryArchSuffix >= 5
	"

BUILD()
{
	cmake src -DBOOST_ROOT=$portPackageLinksDir/devel~libboost_program_options/develop \
				-DCMAKE_BUILD_TYPE=Release \
				-DIDA_PLUGIN_ENABLED=NO \
				-DNC_QT5=YES
	make $jobArgs
}

INSTALL()
{
	mkdir -p $binDir
	mkdir -p $appsDir
	cp nocode/nocode $binDir
	cp snowman/snowman $appsDir/Snowman
	addAppDeskbarSymlink $appsDir/Snowman
}

TEST()
{
	make test
}
