# Maintainer: Coelacanthus <uwu@coelacanthus.name>
# Contributor: nemanjan00 <nemanjan00+aur@gmail.com>
# Contributor: Filipe Laíns (FFY00) <filipe.lains@gmail.com>
# Contributor: Michal Krenek (Mikos) <m.krenek@gmail.com>

_pkgname=sdrangel
pkgname=$_pkgname-git
pkgver=7.27.1.r98.7675cb3e4
pkgrel=1
pkgdesc='Qt6/OpenGL SDR and signal analyzer frontend.'
arch=('x86_64' 'i686' 'arm' 'armv6h' 'armv7h' 'aarch64')
url='https://github.com/f4exb/sdrangel'
license=('GPL-3.0-or-later')
depends=(
	'cm256cc'
	'dsdcc'
	'fftw'
	'lz4'
	'nanomsg'
	'opencv'
	'pkg-config'
	'pulse-native-provider'
	'qt6-base'
	'qt6-multimedia'
	'qt6-websockets'
	'qt6-tools'
	'qt6-charts'
	'qt6-serialport'
	'qt6-declarative'
	'qt6-location'
	'qt6-speech'
	'qt6-webengine'
	'qt6-svg'
	'qt6-scxml'
)
# libsigmf requires the vendored version at https://github.com/f4exb/libsigmf/tree/new-namespaces, which isn't packaged yet
makedepends=(
	'cmake'
	'boost'
	'codec2'
	'doxygen'
	'faad2'
	'ffmpeg'
	'git'
	'graphviz'
	'hamlib'
	'libdab'
	'ninja'
	'vulkan-headers'
	'zlib'
	# VkFFT
	'glslang'
	'spirv-headers'
	'spirv-tools'
	'vulkan-headers'
	'vulkan-icd-loader'
	'vkfft-vulkan'
	# Driver
	'airspy'
	'airspyhf'
	'bladerf'
	'hackrf'
	'libiio'
	'libmirisdr4'
	'libperseus-sdr'
	'libuhd'
	'limesuite'
	'rtl-sdr'
	'libsdrplay'
	'sgp4'
)
optdepends=(
	# Demodulator
	'ffmpeg: DATV demodulator'
	'libdab: DAB demodulator'
	'zlib: DAB demodulator'
	'faad2: DAB demodulator'
	'sgp4: satellite tracker'
	#'aptdec: APT (weather satellite) decoder'
	'codec2: FreeDV modulator/demodulator'
	# Driver
	'libmirisdr4: SDRPlay support'
	'rtl-sdr: RTLSDR support'
	'hackrf: HackRF support'
	'libiio: PlutoSDR support'
	'limesuite: LimeSDR support'
	'bladerf: BladeRF support'
	'libperseus-sdr: Perseus SDR support'
	'airspy: Airspy support'
	'airspyhf: Airspy HF+ support'
	#'libxtrx: XTRX SDR support'
	'libuhd: USRP support'
)
provides=("$_pkgname=$pkgver")
conflicts=("$_pkgname")
source=("git+$url")
sha512sums=('SKIP')

pkgver() {
	cd "$_pkgname"
	git describe --long --tags | sed 's/^v//;s/\([^-]*-\)g/r\1/;s/-/./g;s/\.rc./rc/g'
}

prepare() {
	cd "$_pkgname"

}

build() {
	# https://bugs.gentoo.org/704322
	export CXXFLAGS="$CXXFLAGS -fpermissive"
	# Many features require SSE3.
	export CFLAGS="$CFLAGS -march=x86-64-v3"
	export CXXFLAGS="$CXXFLAGS -march=x86-64-v3"
	local cmake_options=(
		-Wno-dev
		-G Ninja
		-DARCH_OPT=""
		-DCMAKE_BUILD_TYPE=None
		-DCMAKE_INSTALL_PREFIX=/usr
		-DLIBDSDCC_INCLUDE_DIR=/usr/include/dsdcc
		-DCM256CC_INCLUDE_DIR=/usr/include/cm256cc
		-DENABLE_QT6=ON
		# FIXME: FTBFS
		-DENABLE_CHANNELRX_DEMODDAB=OFF
		# Use Vulkan backend instead of CUDA to cover more device.
		-DVKFFT_BACKEND=0
	)
	cmake -S "$_pkgname" -B build "${cmake_options[@]}"

	ninja -C build
}

package() {
	DESTDIR="$pkgdir" ninja -C build install
}

# vim: set noet ts=4
