blob: e88ec0b024ee986a30c6e3c5e986ef3e5d277904 (
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PLOCALES="cs de fr ja pl ru sl uk zh_CN zh_TW"
inherit eutils l10n multilib qmake-utils virtualx
DESCRIPTION="Lightweight IDE for C++/QML development centering around Qt"
HOMEPAGE="http://doc.qt.io/qtcreator/"
LICENSE="|| ( LGPL-2.1 LGPL-3 )"
SLOT="0"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI=(
"git://code.qt.io/${PN}/${PN}.git"
"https://code.qt.io/git/${PN}/${PN}.git"
)
else
MY_PV=${PV/_/-}
MY_P=${PN}-opensource-src-${MY_PV}
[[ ${MY_PV} == ${PV} ]] && MY_REL=official || MY_REL=development
SRC_URI="http://download.qt.io/${MY_REL}_releases/${PN/-}/${PV%.*}/${MY_PV}/${MY_P}.tar.gz"
KEYWORDS="~amd64 ~arm ~x86"
S=${WORKDIR}/${MY_P}
fi
QTC_PLUGINS=('android:android|qmakeandroidsupport' autotools:autotoolsprojectmanager baremetal
bazaar clang:clangcodemodel clearcase cmake:cmakeprojectmanager cvs git ios mercurial
perforce python:pythoneditor qbs:qbsprojectmanager qnx subversion valgrind winrt)
IUSE="doc systemd test webkit ${QTC_PLUGINS[@]%:*}"
# minimum Qt version required
QT_PV="5.4.0:5"
RDEPEND="
=dev-libs/botan-1.10*[-bindist,threads]
>=dev-qt/designer-${QT_PV}
>=dev-qt/qtconcurrent-${QT_PV}
>=dev-qt/qtcore-${QT_PV}
>=dev-qt/qtdeclarative-${QT_PV}[widgets]
>=dev-qt/qtgui-${QT_PV}
>=dev-qt/qthelp-${QT_PV}
>=dev-qt/qtnetwork-${QT_PV}[ssl]
>=dev-qt/qtprintsupport-${QT_PV}
>=dev-qt/qtquickcontrols-${QT_PV}
>=dev-qt/qtscript-${QT_PV}
>=dev-qt/qtsql-${QT_PV}[sqlite]
>=dev-qt/qtsvg-${QT_PV}
>=dev-qt/qtwidgets-${QT_PV}
>=dev-qt/qtx11extras-${QT_PV}
>=dev-qt/qtxml-${QT_PV}
>=sys-devel/gdb-7.5[client,python]
clang? ( >=sys-devel/clang-3.2:= )
qbs? ( >=dev-util/qbs-1.4.2 )
systemd? ( sys-apps/systemd:= )
webkit? ( >=dev-qt/qtwebkit-${QT_PV} )
"
DEPEND="${RDEPEND}
>=dev-qt/linguist-tools-${QT_PV}
virtual/pkgconfig
doc? ( >=dev-qt/qdoc-${QT_PV} )
test? ( >=dev-qt/qttest-${QT_PV} )
"
for x in ${PLOCALES}; do
# qt translations must be installed for qt-creator translations to work
RDEPEND+=" linguas_${x}? ( >=dev-qt/qttranslations-${QT_PV} )"
done
unset x
PDEPEND="
autotools? ( sys-devel/autoconf )
bazaar? ( dev-vcs/bzr )
cmake? ( dev-util/cmake )
cvs? ( dev-vcs/cvs )
git? ( dev-vcs/git )
mercurial? ( dev-vcs/mercurial )
subversion? ( dev-vcs/subversion )
valgrind? ( dev-util/valgrind )
"
src_unpack() {
if [[ $(gcc-major-version) -lt 4 ]] || [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ]]; then
eerror "GCC version 4.7 or later is required to build Qt Creator"
die "GCC >= 4.7 required"
fi
default
}
src_prepare() {
# disable unwanted plugins
for plugin in "${QTC_PLUGINS[@]#[+-]}"; do
if ! use ${plugin%:*}; then
einfo "Disabling ${plugin%:*} plugin"
sed -i -re "/(^\s+|SUBDIRS\s*\+=\s*)(${plugin#*:})\>/d" \
src/plugins/plugins.pro || die "failed to disable ${plugin%:*} plugin"
fi
done
# automagic dep on qtwebkit (bug 538236)
if ! use webkit; then
sed -i -e 's/isEmpty(QT\.webkitwidgets\.name)/true/' \
src/plugins/help/help.pro || die "failed to disable webkit"
fi
# disable broken or unreliable tests
sed -i -e '/lexer/d' tests/auto/cplusplus/cplusplus.pro || die
sed -i -e '/dumpers\.pro/d' tests/auto/debugger/debugger.pro || die
sed -i -e '/CONFIG -=/ s/$/ testcase/' tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin?/plugin?.pro || die
sed -i -e '/parsertests\.pro/d' tests/auto/valgrind/memcheck/memcheck.pro || die
# fix translations
sed -i -e "/^LANGUAGES =/ s:=.*:= $(l10n_get_locales):" \
share/qtcreator/translations/translations.pro || die
# remove bundled qbs
rm -rf src/shared/qbs || die
}
src_configure() {
eqmake5 IDE_LIBRARY_BASENAME="$(get_libdir)" \
IDE_PACKAGE_MODE=1 \
LLVM_INSTALL_DIR="${EPREFIX}/usr" \
QBS_INSTALL_DIR="${EPREFIX}/usr" \
CONFIG+=qbs_disable_rpath \
CONFIG+=qbs_enable_project_file_updates \
$(use systemd && echo CONFIG+=journald) \
$(use test && echo BUILD_TESTS=1) \
USE_SYSTEM_BOTAN=1
}
src_test() {
cd tests/auto || die
VIRTUALX_COMMAND=default virtualmake
}
src_install() {
emake INSTALL_ROOT="${ED}usr" install
dodoc dist/{changes-*,known-issues}
# install documentation
if use doc; then
emake docs
# don't use ${PF} or the doc will not be found
insinto /usr/share/doc/qtcreator
doins share/doc/qtcreator/qtcreator{,-dev}.qch
docompress -x /usr/share/doc/qtcreator/qtcreator{,-dev}.qch
fi
# install desktop file
make_desktop_entry qtcreator 'Qt Creator' QtProject-qtcreator 'Qt;Development;IDE'
}
|