summaryrefslogtreecommitdiff
blob: c872768c9bd81d81713521d5967849876e916d70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit qt6-build

DESCRIPTION="Physical position determination library for the Qt6 framework"

if [[ ${QT6_BUILD_TYPE} == release ]]; then
	KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi

IUSE="geoclue nmea +qml"

DEPEND="
	~dev-qt/qtbase-${PV}:6
	geoclue? ( ~dev-qt/qtbase-${PV}:6[dbus] )
	nmea? (
		~dev-qt/qtbase-${PV}:6[network]
		~dev-qt/qtserialport-${PV}:6
	)
	qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
"
RDEPEND="
	${DEPEND}
	geoclue? ( app-misc/geoclue:2.0 )
"

CMAKE_SKIP_TESTS=(
	# threads test (rarely) fails randomly
	tst_qgeoareamonitor
)

src_prepare() {
	qt6-build_src_prepare

	# unfortunately cmake_use_find_package would break things with qtbase
	use geoclue ||
		sed -e 's/TARGET Qt::DBus/FALSE/' \
			-i src/plugins/position/CMakeLists.txt || die
	use nmea ||
		sed -e 's/TARGET Qt::Network/FALSE/' \
			-i src/plugins/position/CMakeLists.txt || die
}

src_configure() {
	local mycmakeargs=(
		$(cmake_use_find_package qml Qt6Qml)
	)

	qt6-build_src_configure
}

src_install() {
	qt6-build_src_install

	if use test; then
		local delete=( # sigh
			"${D}${QT6_LIBDIR}"/cmake/Qt6Positioning/*DummyPlugin*.cmake
			"${D}${QT6_LIBDIR}"/cmake/Qt6Positioning/*TestPlugin*.cmake
			"${D}${QT6_PLUGINDIR}"/position/libqtposition_satellitesourcetest.so
			"${D}${QT6_PLUGINDIR}"/position/libqtposition_testplugin{,2}.so
		)
		# using -f given not tracking which tests may be skipped or not
		rm -f -- "${delete[@]}" || die
	fi
}