From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- dev-qt/qt-creator/Manifest | 8 ++ dev-qt/qt-creator/metadata.xml | 41 +++++++ dev-qt/qt-creator/qt-creator-4.3.1.ebuild | 189 ++++++++++++++++++++++++++++++ dev-qt/qt-creator/qt-creator-4.4.1.ebuild | 183 +++++++++++++++++++++++++++++ dev-qt/qt-creator/qt-creator-9999.ebuild | 183 +++++++++++++++++++++++++++++ 5 files changed, 604 insertions(+) create mode 100644 dev-qt/qt-creator/Manifest create mode 100644 dev-qt/qt-creator/metadata.xml create mode 100644 dev-qt/qt-creator/qt-creator-4.3.1.ebuild create mode 100644 dev-qt/qt-creator/qt-creator-4.4.1.ebuild create mode 100644 dev-qt/qt-creator/qt-creator-9999.ebuild (limited to 'dev-qt/qt-creator') diff --git a/dev-qt/qt-creator/Manifest b/dev-qt/qt-creator/Manifest new file mode 100644 index 000000000000..a7b01be05b98 --- /dev/null +++ b/dev-qt/qt-creator/Manifest @@ -0,0 +1,8 @@ +DIST qt-creator-opensource-src-4.3.1.tar.xz 17298892 SHA256 060a8843f988c158ef01bd90221e390f0d4be3ccc8da95abaeb12c7477e7a4ad SHA512 9fd89cee4a3b17662ac83bd63065f66f6b446774eb28ab4e56b85b82dc8c6b9b7be512014e5096dd343d913688700c3297b49bf4abe920429ca72cc665c95226 WHIRLPOOL 86965524785f68836a7a55a2ce9ede109e3314b9778d68eb92588cd1d3844be5ad47ae4e484f285dc74844729e8c254a11fe705ed3600476ed1c8ef4000b4e24 +DIST qt-creator-opensource-src-4.4.1.tar.xz 20822304 SHA256 0664de3dea239f8be797d2745f3d06b2c4207ebc4edc36898d7d24b6bf98c14e SHA512 f0e836fd2106f909cb405f75457e0d4158ecdd134ec5cfa97b373e5818b5f715245ac8454a657801251302ef817c1de66580f2e45b12b3e23d3107ccf3985336 WHIRLPOOL bc202a42d7fb69f9a033448a456eb0d2d09d27f338f5555296c79ab40167ea3c917df40444d318818edcf87ab4fe5b2667b37a84c4e0590f52e15c6780e58ede +EBUILD qt-creator-4.3.1.ebuild 5607 SHA256 a3f0c050645bc42910e8ac327c83b02dc77fa09cc8ecdc047129589de729c90d SHA512 aafadf415b1bb010069147f89d84e210ac67187bc3ef8c2e0c904322ca16530955497c3763cd02155e9dcaae42ae57285367f71d71bc6dd4a5a3c8e3f9d54aff WHIRLPOOL f195ca46c79430045c90ec501cd68f0b630377c5224ea19e2c23093ccd76fe9f1225ac1648c742e08b44aff7632e74ad012c270f6be280e68ba38120b589a26e +EBUILD qt-creator-4.4.1.ebuild 5549 SHA256 87c3d975bb1cda9c2523f4c895bef3b4041fec2cfc4aa240bfabc299f500adee SHA512 ccb9a187bba3021dff34ab3275fdee5d311d38ecb7701549a3799c8bc41ec54c4dc5d5af531ed03913425ee6fdedc7f21b3b1bad113853da37610e7fe44b6f11 WHIRLPOOL f3004ffa1de2dc9b6778725c6704573ec12d0a9f4e34b5e4e84a53112a795fd7ff7a2cf95365e3645841b167f8caf483835553e2a6c2b98011f1d11d1a6eaaa5 +EBUILD qt-creator-9999.ebuild 5549 SHA256 87c3d975bb1cda9c2523f4c895bef3b4041fec2cfc4aa240bfabc299f500adee SHA512 ccb9a187bba3021dff34ab3275fdee5d311d38ecb7701549a3799c8bc41ec54c4dc5d5af531ed03913425ee6fdedc7f21b3b1bad113853da37610e7fe44b6f11 WHIRLPOOL f3004ffa1de2dc9b6778725c6704573ec12d0a9f4e34b5e4e84a53112a795fd7ff7a2cf95365e3645841b167f8caf483835553e2a6c2b98011f1d11d1a6eaaa5 +MISC ChangeLog 7762 SHA256 8e02e0069601b13cea36e3fad3da4f873d20a5d67ec246d2f208bdcc42c50a31 SHA512 6a0097d4ddf1256eab1c12f65cb86d849fc9372bc207ca797b4898fb12aa7b8ae949cfb8e9c1f6b9ac8e3fe70cb30c598697939dd49e77b1be5934b8cab39d93 WHIRLPOOL 875e8c51749d095cff69bc19b2e386bd1732370cf80df926f178935e7de79a1fdd92892d8c1d0cf425edfc3b6ad9d3d384b8b75d020d796ee5a940e3fc7b44e3 +MISC ChangeLog-2015 29790 SHA256 9a6c91651de05ee685c59c3923013c4e991964dd52ac92f824ba4827574b0f83 SHA512 1670e76a6c4d95a559efa78f80877b6f242c15a555097be268dd7834e453ec3c46bc5b6a661d1a28fee8267f68bf63f78f0353b5a2980b8d58384f36e45c2a46 WHIRLPOOL 7780c1217fe0e06c9e68df8ce1160779965741c596cd9d1f22d95bc548c46ab02e36a7ef92e8b192e4c37504c45b88e52d673cc6fbb20268bfd5dd3225d52c5e +MISC metadata.xml 2247 SHA256 c42b04aed40f61a1fcd78804b1a406eb26ce0ea84bd8590423deb2dd2f7ba6ed SHA512 d3e92111e1ec61fc5ea8904066eaf205000de8a4e64ccb4b8d6ba349735466c4f851bec8154f30fc8ff21756d27ec07249892136ca56bdcc12ee4e3200616368 WHIRLPOOL 7382e86581b74a41f326cc87b5ccf27e44ac067f0140ac60b72f37177028aa72fdef65316f5ffccee0a13ae07904f867215fb86da64377dd26b67155c705df35 diff --git a/dev-qt/qt-creator/metadata.xml b/dev-qt/qt-creator/metadata.xml new file mode 100644 index 000000000000..5cdf568ca748 --- /dev/null +++ b/dev-qt/qt-creator/metadata.xml @@ -0,0 +1,41 @@ + + + + + pesa@gentoo.org + Davide Pesavento + + + qt@gentoo.org + Gentoo Qt Project + + + Build plugin for Android devices + Enable autotools project manager plugin + Build plugin for bare metal devices + Add support for dev-vcs/bzr version control system + Build clang-based code model and refactoring plugins + Build clang-based static analyzer plugin + Add support for IBM ClearCase version control system (requires manual installation of ClearCase client) + Enable cmake project manager plugin + Build widget designer plugin + Enable GLSL source code editor + Build plugin for Apple iOS devices + Add support for dev-vcs/mercurial version control system + Enable graphical model editor + Enable Nim source code editor + Add support for Perforce version control system (requires manual installation of Perforce client) + Enable Python source code editor + Enable QBS project manager plugin + Build plugin for QNX devices + Enable graphical SCXML editor + Add support for retrieving application output from journald + Add support for memory debugging using dev-util/valgrind + Use dev-qt/qtwebengine to view documentation + Build plugin for WinRT devices + + + https://bugreports.qt.io/ + https://doc.qt.io/qtcreator/ + + diff --git a/dev-qt/qt-creator/qt-creator-4.3.1.ebuild b/dev-qt/qt-creator/qt-creator-4.3.1.ebuild new file mode 100644 index 000000000000..5be7d95dd51e --- /dev/null +++ b/dev-qt/qt-creator/qt-creator-4.3.1.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +LLVM_MAX_SLOT=4 +PLOCALES="cs de fr ja pl ru sl uk zh_CN zh_TW" + +inherit l10n llvm qmake-utils toolchain-funcs virtualx xdg + +DESCRIPTION="Lightweight IDE for C++/QML development centering around Qt" +HOMEPAGE="https://doc.qt.io/qtcreator/" +LICENSE="GPL-3" +SLOT="0" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://code.qt.io/${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="https://download.qt.io/${MY_REL}_releases/${PN/-}/${PV%.*}/${MY_PV}/${MY_P}.tar.xz" + KEYWORDS="amd64 ~arm x86" + S=${WORKDIR}/${MY_P} +fi + +# TODO: unbundle sqlite + +QTC_PLUGINS=('android:android|qmakeandroidsupport' autotools:autotoolsprojectmanager baremetal bazaar + 'clangcodemodel:clangcodemodel|clangrefactoring|clangpchmanager' clangstaticanalyzer clearcase + cmake:cmakeprojectmanager cvs designer git glsl:glsleditor ios mercurial modeling:modeleditor + nim perforce python:pythoneditor qbs:qbsprojectmanager qnx scxml:scxmleditor subversion valgrind + winrt) +IUSE="doc systemd test +webengine ${QTC_PLUGINS[@]%:*}" + +# minimum Qt version required +QT_PV="5.6.0:5" + +CDEPEND=" + =dev-libs/botan-1.10*[-bindist,threads] + >=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} + clangcodemodel? ( + =sys-devel/clang-3.9:0 ) + ) + designer? ( >=dev-qt/designer-${QT_PV} ) + qbs? ( >=dev-util/qbs-1.8.1-r1 ) + systemd? ( sys-apps/systemd:= ) + webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets] ) +" +DEPEND="${CDEPEND} + >=dev-qt/linguist-tools-${QT_PV} + virtual/pkgconfig + doc? ( >=dev-qt/qdoc-${QT_PV} ) + test? ( + >=dev-qt/qtdeclarative-${QT_PV}[localstorage,xml] + >=dev-qt/qtquickcontrols2-${QT_PV} + >=dev-qt/qttest-${QT_PV} + ) +" +RDEPEND="${CDEPEND} + sys-devel/gdb[client,python] + autotools? ( sys-devel/autoconf ) + bazaar? ( dev-vcs/bzr ) + clangstaticanalyzer? ( + =sys-devel/clang-3.9:0 ) + ) + cmake? ( dev-util/cmake[server(+)] ) + cvs? ( dev-vcs/cvs ) + git? ( dev-vcs/git ) + mercurial? ( dev-vcs/mercurial ) + subversion? ( dev-vcs/subversion ) + valgrind? ( dev-util/valgrind ) +" +# qt translations must also be installed or qt-creator translations won't be loaded +for x in ${PLOCALES}; do + RDEPEND+=" linguas_${x}? ( >=dev-qt/qttranslations-${QT_PV} )" +done +unset x + +pkg_setup() { + use clangcodemodel && llvm_pkg_setup +} + +src_unpack() { + if tc-is-gcc; then + if [[ $(gcc-major-version) -lt 4 ]] || \ + [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 9 ]]; then + eerror "GCC version 4.9 or later is required to build Qt Creator ${PV}" + die "GCC >= 4.9 required" + fi + fi + + if [[ ${PV} == *9999 ]]; then + git-r3_src_unpack + else + default + fi +} + +src_prepare() { + default + + # 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 + + # avoid building unused support libraries + if ! use clangcodemodel; then + sed -i -e '/clangbackendipc/d' src/libs/libs.pro || die + fi + if ! use glsl; then + sed -i -e '/glsl/d' src/libs/libs.pro || die + fi + if ! use modeling; then + sed -i -e '/modelinglib/d' src/libs/libs.pro || die + fi + + # automagic dep on qtwebengine + if ! use webengine; then + sed -i -e 's/isEmpty(QT\.webenginewidgets\.name)/true/' src/plugins/help/help.pro || die + fi + + # disable broken or unreliable tests + sed -i -e '/sdktool/ d' tests/auto/auto.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 '/timeline\(items\|notes\|selection\)renderpass/ d' tests/auto/timeline/timeline.pro || die + sed -i -e 's/\//' tests/auto/valgrind/valgrind.pro || die + + # fix path to some clang headers + sed -i -e "/^CLANG_RESOURCE_DIR\s*=/ s:\$\${LLVM_LIBDIR}:${EPREFIX}/usr/lib:" src/shared/clang/clang_defines.pri || die + + # fix translations + sed -i -e "/^LANGUAGES\s*=/ 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 \ + $(use clangcodemodel && echo LLVM_INSTALL_DIR="$(get_llvm_prefix ${LLVM_MAX_SLOT})") \ + $(use qbs && echo 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 && virtx default +} + +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 +} diff --git a/dev-qt/qt-creator/qt-creator-4.4.1.ebuild b/dev-qt/qt-creator/qt-creator-4.4.1.ebuild new file mode 100644 index 000000000000..322f20850b87 --- /dev/null +++ b/dev-qt/qt-creator/qt-creator-4.4.1.ebuild @@ -0,0 +1,183 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PLOCALES="cs de fr ja pl ru sl uk zh_CN zh_TW" + +inherit l10n llvm qmake-utils toolchain-funcs virtualx xdg + +DESCRIPTION="Lightweight IDE for C++/QML development centering around Qt" +HOMEPAGE="https://doc.qt.io/qtcreator/" +LICENSE="GPL-3" +SLOT="0" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://code.qt.io/${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="https://download.qt.io/${MY_REL}_releases/${PN/-}/${PV%.*}/${MY_PV}/${MY_P}.tar.xz" + KEYWORDS="~amd64 ~arm ~x86" + S=${WORKDIR}/${MY_P} +fi + +# TODO: unbundle sqlite + +QTC_PLUGINS=('android:android|qmakeandroidsupport' autotools:autotoolsprojectmanager baremetal bazaar + 'clangcodemodel:clangcodemodel|clangrefactoring|clangpchmanager' clangstaticanalyzer clearcase + cmake:cmakeprojectmanager cvs designer git glsl:glsleditor ios mercurial modeling:modeleditor + nim perforce python:pythoneditor qbs:qbsprojectmanager qnx scxml:scxmleditor subversion valgrind + winrt) +IUSE="doc systemd test +webengine ${QTC_PLUGINS[@]%:*}" + +# minimum Qt version required +QT_PV="5.6.2:5" + +CDEPEND=" + =dev-libs/botan-1.10*[-bindist,threads] + >=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} + clangcodemodel? ( >=sys-devel/clang-3.9:= ) + designer? ( >=dev-qt/designer-${QT_PV} ) + qbs? ( >=dev-util/qbs-1.9.1 ) + systemd? ( sys-apps/systemd:= ) + webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets] ) +" +DEPEND="${CDEPEND} + >=dev-qt/linguist-tools-${QT_PV} + virtual/pkgconfig + doc? ( >=dev-qt/qdoc-${QT_PV} ) + test? ( + >=dev-qt/qtdeclarative-${QT_PV}[localstorage,xml] + >=dev-qt/qtquickcontrols2-${QT_PV} + >=dev-qt/qttest-${QT_PV} + ) +" +RDEPEND="${CDEPEND} + sys-devel/gdb[client,python] + autotools? ( sys-devel/autoconf ) + bazaar? ( dev-vcs/bzr ) + clangstaticanalyzer? ( >=sys-devel/clang-3.9:* ) + cmake? ( dev-util/cmake[server(+)] ) + cvs? ( dev-vcs/cvs ) + git? ( dev-vcs/git ) + mercurial? ( dev-vcs/mercurial ) + subversion? ( dev-vcs/subversion ) + valgrind? ( dev-util/valgrind ) +" +# qt translations must also be installed or qt-creator translations won't be loaded +for x in ${PLOCALES}; do + RDEPEND+=" linguas_${x}? ( >=dev-qt/qttranslations-${QT_PV} )" +done +unset x + +pkg_setup() { + use clangcodemodel && llvm_pkg_setup +} + +src_unpack() { + if tc-is-gcc; then + if [[ $(gcc-major-version) -lt 4 ]] || \ + [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 9 ]]; then + eerror "GCC version 4.9 or later is required to build Qt Creator ${PV}" + die "GCC >= 4.9 required" + fi + fi + + if [[ ${PV} == *9999 ]]; then + git-r3_src_unpack + else + default + fi +} + +src_prepare() { + default + + # 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 + + # avoid building unused support libraries + if ! use clangcodemodel; then + sed -i -e '/clangbackendipc/d' src/libs/libs.pro || die + fi + if ! use glsl; then + sed -i -e '/glsl/d' src/libs/libs.pro || die + fi + if ! use modeling; then + sed -i -e '/modelinglib/d' src/libs/libs.pro || die + fi + + # automagic dep on qtwebengine + if ! use webengine; then + sed -i -e 's/isEmpty(QT\.webenginewidgets\.name)/true/' src/plugins/help/help.pro || die + fi + + # disable broken or unreliable tests + sed -i -e 's/\(manual\|tools\|unit\)//g' tests/tests.pro || die + sed -i -e '/sdktool/ d' tests/auto/auto.pro || die + sed -i -e '/\(dumpers\|offsets\)\.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 '/timeline\(items\|notes\|selection\)renderpass/ d' tests/auto/timeline/timeline.pro || die + sed -i -e 's/\//' tests/auto/valgrind/valgrind.pro || die + + # fix path to some clang headers + sed -i -e "/^CLANG_RESOURCE_DIR\s*=/ s:\$\${LLVM_LIBDIR}:${EPREFIX}/usr/lib:" src/shared/clang/clang_defines.pri || die + + # fix translations + sed -i -e "/^LANGUAGES\s*=/ 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 \ + $(use clangcodemodel && echo LLVM_INSTALL_DIR="$(get_llvm_prefix)") \ + $(use qbs && echo 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 && virtx default +} + +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 +} diff --git a/dev-qt/qt-creator/qt-creator-9999.ebuild b/dev-qt/qt-creator/qt-creator-9999.ebuild new file mode 100644 index 000000000000..322f20850b87 --- /dev/null +++ b/dev-qt/qt-creator/qt-creator-9999.ebuild @@ -0,0 +1,183 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PLOCALES="cs de fr ja pl ru sl uk zh_CN zh_TW" + +inherit l10n llvm qmake-utils toolchain-funcs virtualx xdg + +DESCRIPTION="Lightweight IDE for C++/QML development centering around Qt" +HOMEPAGE="https://doc.qt.io/qtcreator/" +LICENSE="GPL-3" +SLOT="0" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://code.qt.io/${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="https://download.qt.io/${MY_REL}_releases/${PN/-}/${PV%.*}/${MY_PV}/${MY_P}.tar.xz" + KEYWORDS="~amd64 ~arm ~x86" + S=${WORKDIR}/${MY_P} +fi + +# TODO: unbundle sqlite + +QTC_PLUGINS=('android:android|qmakeandroidsupport' autotools:autotoolsprojectmanager baremetal bazaar + 'clangcodemodel:clangcodemodel|clangrefactoring|clangpchmanager' clangstaticanalyzer clearcase + cmake:cmakeprojectmanager cvs designer git glsl:glsleditor ios mercurial modeling:modeleditor + nim perforce python:pythoneditor qbs:qbsprojectmanager qnx scxml:scxmleditor subversion valgrind + winrt) +IUSE="doc systemd test +webengine ${QTC_PLUGINS[@]%:*}" + +# minimum Qt version required +QT_PV="5.6.2:5" + +CDEPEND=" + =dev-libs/botan-1.10*[-bindist,threads] + >=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} + clangcodemodel? ( >=sys-devel/clang-3.9:= ) + designer? ( >=dev-qt/designer-${QT_PV} ) + qbs? ( >=dev-util/qbs-1.9.1 ) + systemd? ( sys-apps/systemd:= ) + webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets] ) +" +DEPEND="${CDEPEND} + >=dev-qt/linguist-tools-${QT_PV} + virtual/pkgconfig + doc? ( >=dev-qt/qdoc-${QT_PV} ) + test? ( + >=dev-qt/qtdeclarative-${QT_PV}[localstorage,xml] + >=dev-qt/qtquickcontrols2-${QT_PV} + >=dev-qt/qttest-${QT_PV} + ) +" +RDEPEND="${CDEPEND} + sys-devel/gdb[client,python] + autotools? ( sys-devel/autoconf ) + bazaar? ( dev-vcs/bzr ) + clangstaticanalyzer? ( >=sys-devel/clang-3.9:* ) + cmake? ( dev-util/cmake[server(+)] ) + cvs? ( dev-vcs/cvs ) + git? ( dev-vcs/git ) + mercurial? ( dev-vcs/mercurial ) + subversion? ( dev-vcs/subversion ) + valgrind? ( dev-util/valgrind ) +" +# qt translations must also be installed or qt-creator translations won't be loaded +for x in ${PLOCALES}; do + RDEPEND+=" linguas_${x}? ( >=dev-qt/qttranslations-${QT_PV} )" +done +unset x + +pkg_setup() { + use clangcodemodel && llvm_pkg_setup +} + +src_unpack() { + if tc-is-gcc; then + if [[ $(gcc-major-version) -lt 4 ]] || \ + [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 9 ]]; then + eerror "GCC version 4.9 or later is required to build Qt Creator ${PV}" + die "GCC >= 4.9 required" + fi + fi + + if [[ ${PV} == *9999 ]]; then + git-r3_src_unpack + else + default + fi +} + +src_prepare() { + default + + # 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 + + # avoid building unused support libraries + if ! use clangcodemodel; then + sed -i -e '/clangbackendipc/d' src/libs/libs.pro || die + fi + if ! use glsl; then + sed -i -e '/glsl/d' src/libs/libs.pro || die + fi + if ! use modeling; then + sed -i -e '/modelinglib/d' src/libs/libs.pro || die + fi + + # automagic dep on qtwebengine + if ! use webengine; then + sed -i -e 's/isEmpty(QT\.webenginewidgets\.name)/true/' src/plugins/help/help.pro || die + fi + + # disable broken or unreliable tests + sed -i -e 's/\(manual\|tools\|unit\)//g' tests/tests.pro || die + sed -i -e '/sdktool/ d' tests/auto/auto.pro || die + sed -i -e '/\(dumpers\|offsets\)\.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 '/timeline\(items\|notes\|selection\)renderpass/ d' tests/auto/timeline/timeline.pro || die + sed -i -e 's/\//' tests/auto/valgrind/valgrind.pro || die + + # fix path to some clang headers + sed -i -e "/^CLANG_RESOURCE_DIR\s*=/ s:\$\${LLVM_LIBDIR}:${EPREFIX}/usr/lib:" src/shared/clang/clang_defines.pri || die + + # fix translations + sed -i -e "/^LANGUAGES\s*=/ 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 \ + $(use clangcodemodel && echo LLVM_INSTALL_DIR="$(get_llvm_prefix)") \ + $(use qbs && echo 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 && virtx default +} + +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 +} -- cgit v1.2.3