summaryrefslogtreecommitdiff
blob: 2e0b33bf39ecc92ad8b9166acc816abf03df888d (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
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PV_FULL=${PV/_p/-0-}
PV_NODOTS=$(ver_rs 1-3 '' ${PV%_p*})
BASE_URI="https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt5_${PV_NODOTS}_src_doc_examples/qt.qt5.${PV_NODOTS}.doc"

declare -A QT5_DOCS=(
	[3d]="qt3d"
	[assistant]="qtassistant"
	[bluetooth]="qtbluetooth"
	[concurrent]="qtconcurrent"
	[dbus]="qtdbus"
	[declarative]="qtqml qtqmltest qtquick qtquickdialogs qtquickextras"
	[designer]="qtdesigner qtuitools"
	[gamepad]="qtgamepad"
	[graphicaleffects]="qtgraphicaleffects"
	[gui]="qtgui qtplatformheaders"
	[help]="qthelp"
	[imageformats]="qtimageformats"
	[linguist]="qtlinguist"
	[location]="qtlocation"
	[multimedia]="qtmultimedia"
	[network]="qtnetwork"
	[opengl]="qtopengl"
	[positioning]="qtpositioning"
	[printsupport]="qtprintsupport"
	[qdoc]="qdoc"
	[quickcontrols2]="qtquickcontrols"
	[quickcontrols]="qtquickcontrols1"
	[scxml]="qtscxml"
	[sensors]="qtsensors"
	[serialbus]="qtserialbus"
	[serialport]="qtserialport"
	[speech]="qtspeech"
	[sql]="qtsql"
	[svg]="qtsvg"
	[test]="qttestlib"
	[wayland]="qtwaylandcompositor"
	[webchannel]="qtwebchannel"
	[websockets]="qtwebsockets"
	[webview]="qtwebview"
	[widgets]="qtwidgets"
	[x11extras]="qtx11extras"
	[xml]="qtxml"
	[xmlpatterns]="qtxmlpatterns"
)

DESCRIPTION="Qt5 documentation, for use with Qt Creator and other tools"
HOMEPAGE="https://doc.qt.io/"

LICENSE="FDL-1.3"
SLOT="5"
KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 x86"

IUSE="charts datavis +html networkauth +qch script timeline virtualkeyboard webengine"
REQUIRED_USE="|| ( html qch )"

SRC_URI="
	${BASE_URI}/${PV_FULL}qmake-documentation.7z
	${BASE_URI}/${PV_FULL}qtcore-documentation.7z
	${BASE_URI}/${PV_FULL}qtdoc-documentation.7z
	charts? ( ${BASE_URI}.qtcharts/${PV_FULL}qtcharts-documentation.7z )
	datavis? ( ${BASE_URI}.qtdatavis3d/${PV_FULL}qtdatavisualization-documentation.7z )
	networkauth? ( ${BASE_URI}.qtnetworkauth/${PV_FULL}qtnetworkauth-documentation.7z )
	script? ( ${BASE_URI}.qtscript/${PV_FULL}qtscript-documentation.7z
		${BASE_URI}.qtscript/${PV_FULL}qtscripttools-documentation.7z )
	timeline? ( ${BASE_URI}.qtquicktimeline/${PV_FULL}qtquicktimeline-documentation.7z )
	virtualkeyboard? ( ${BASE_URI}.qtvirtualkeyboard/${PV_FULL}qtvirtualkeyboard-documentation.7z )
	webengine? ( ${BASE_URI}.qtwebengine/${PV_FULL}qtwebengine-documentation.7z )
"

for DOCUSE in ${!QT5_DOCS[@]}; do
	IUSE+=" +${DOCUSE}"
	for DOCTAR in ${QT5_DOCS[${DOCUSE}]}; do
		SRC_URI+=" ${DOCUSE}? ( ${BASE_URI}/${PV_FULL}${DOCTAR}-documentation.7z )"
	done
done
unset DOCTAR DOCUSE

BDEPEND="
	app-arch/p7zip
	media-libs/libpng:0
"

S=${WORKDIR}/Docs/Qt-${PV%_p*}

src_prepare() {
	default

	# Fix broken png file, bug 679146
	local png=qtdoc/images/used-in-examples/demos/tweetsearch/content/resources/anonymous.png
	pngfix -q --out=${png/.png/fixed.png} ${png} # see pngfix help for exit codes
	[[ $? -gt 15 ]] && die "Failed to fix ${png}"
	mv -f ${png/.png/fixed.png} ${png} || die
}

src_install() {
	# must be the same as QT5_DOCDIR
	insinto /usr/share/qt5-doc
	use html && doins -r */
	use qch && doins *.qch
}