blob: 71467c563d7eba472e42bb08441321c03f639633 (
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
QTMIN=6.8.1
KFMIN=6.18.0
inherit ecm xdg
DESCRIPTION="Linux perf GUI for performance analysis"
HOMEPAGE="https://github.com/KDAB/hotspot"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/KDAB/hotspot"
inherit git-r3
elif [[ ${PV} == *_p* ]] ; then
HOTSPOT_COMMIT="b61451d827dd23e35c5f611e3626226a119dfa48"
PERFPARSER_COMMIT="65472541f74da213583535c8bb4fea831e875109"
PREFIXTICKLABELS_COMMIT="7cd6d5a04cf3747cc9327efdbcbf43620efaa0c1"
SRC_URI="
https://github.com/KDAB/hotspot/archive/${HOTSPOT_COMMIT}.tar.gz -> ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz
https://github.com/KDAB/perfparser/archive/${PERFPARSER_COMMIT}.tar.gz -> perfparser-${PERFPARSER_COMMIT}.gh.tar.gz
https://github.com/koenpoppe/PrefixTickLabels/archive/${PREFIXTICKLABELS_COMMIT}.tar.gz -> PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz
"
S="${WORKDIR}"/${PN}-${HOTSPOT_COMMIT}
else
SRC_URI="
https://github.com/KDAB/hotspot/releases/download/v${PV}/${PN}-v${PV}.tar.gz
https://github.com/KDAB/hotspot/releases/download/v${PV}/${PN}-perfparser-v${PV}.tar.gz -> ${PN}-v${PV}-perfparser.tar.gz
https://github.com/KDAB/hotspot/releases/download/v${PV}/${PN}-PrefixTickLabels-v${PV}.tar.gz -> ${PN}-v${PV}-PrefixTickLabels.tar.gz
"
S="${WORKDIR}"/${PN}
fi
# hotspot itself is GPL-2 or GPL-3
# bundled perfparser is GPL-3
# bundled PrefixTickLabels is GPL-3
LICENSE="|| ( GPL-2 GPL-3 ) GPL-3"
SLOT="0"
IUSE="debuginfod"
if [[ ${PV} != 9999 ]] ; then
KEYWORDS="~amd64"
fi
DEPEND="
app-arch/zstd:=
dev-libs/elfutils[debuginfod?]
dev-libs/qcustomplot
>=dev-qt/qtbase-${QTMIN}:6=[network,widgets]
>=dev-qt/qtsvg-${QTMIN}:6
gui-libs/kddockwidgets:=
>=kde-frameworks/karchive-${KFMIN}:6
>=kde-frameworks/kconfigwidgets-${KFMIN}:6
>=kde-frameworks/kcoreaddons-${KFMIN}:6
>=kde-frameworks/ki18n-${KFMIN}:6
>=kde-frameworks/kiconthemes-${KFMIN}:6
>=kde-frameworks/kio-${KFMIN}:6
>=kde-frameworks/kitemviews-${KFMIN}:6
>=kde-frameworks/kitemmodels-${KFMIN}:6
>=kde-frameworks/knotifications-${KFMIN}:6
>=kde-frameworks/kparts-${KFMIN}:6
>=kde-frameworks/kwindowsystem-${KFMIN}:6
>=kde-frameworks/solid-${KFMIN}:6
>=kde-frameworks/syntax-highlighting-${KFMIN}:6
>=kde-frameworks/threadweaver-${KFMIN}:6
media-gfx/kgraphviewer
sys-devel/gettext
"
RDEPEND="
${DEPEND}
dev-util/perf
sys-devel/binutils:*
"
PATCHES=(
"${FILESDIR}"/${PN}-odr.patch
)
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
elif [[ ${PV} == *_p* ]] ; then
unpack ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz
tar -xf "${DISTDIR}"/perfparser-${PERFPARSER_COMMIT}.gh.tar.gz --strip-components=1 -C "${S}"/3rdparty/perfparser || die
tar -xf "${DISTDIR}"/PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz --strip-components=1 -C "${S}"/3rdparty/PrefixTickLabels || die
else
unpack ${PN}-v${PV}.tar.gz
tar -xf "${DISTDIR}"/${PN}-v${PV}-perfparser.tar.gz --strip-components=1 -C "${S}"/3rdparty/perfparser || die
tar -xf "${DISTDIR}"/${PN}-v${PV}-PrefixTickLabels.tar.gz --strip-components=1 -C "${S}"/3rdparty/PrefixTickLabels || die
fi
}
src_prepare() {
if ! use debuginfod ; then
sed -i \
'/target_link_libraries(libhotspot-perfparser PRIVATE ${LIBDEBUGINFOD_LIBRARIES})/d' \
3rdparty/perfparser.cmake || die "sed failed for perfparser"
sed -i \
'/target_compile_definitions(libhotspot-perfparser PRIVATE HAVE_DWFL_GET_DEBUGINFOD_CLIENT=1)/d' \
3rdparty/perfparser.cmake || die "sed failed for perfparser"
fi
ecm_src_prepare
}
src_configure() {
local mycmakeargs=(
-DQT6_BUILD=true
)
ecm_src_configure
}
src_test() {
CMAKE_SKIP_TESTS=(
# Complains about {d,rustc}_demangle missing, but may fail
# for other reasons too.
tst_perfparser
)
ecm_src_test
}
|