From 6fedc93da12d9b5d5d473dc912ff0e945acba520 Mon Sep 17 00:00:00 2001 From: Davide Pesavento Date: Sun, 4 Aug 2019 03:23:43 +0200 Subject: [PATCH] dev-qt/qt-creator: add 4.10.0_rc1 Closes: https://bugs.gentoo.org/683390 Package-Manager: Portage-2.3.69, Repoman-2.3.16 Signed-off-by: Davide Pesavento --- dev-qt/qt-creator/Manifest | 1 + dev-qt/qt-creator/metadata.xml | 10 +- .../qt-creator/qt-creator-4.10.0_rc1.ebuild | 200 ++++++++++++++++++ dev-qt/qt-creator/qt-creator-9999.ebuild | 51 +++-- 4 files changed, 241 insertions(+), 21 deletions(-) create mode 100644 dev-qt/qt-creator/qt-creator-4.10.0_rc1.ebuild diff --git a/dev-qt/qt-creator/Manifest b/dev-qt/qt-creator/Manifest index 553c4d0c3ade..fb6e343869ea 100644 --- a/dev-qt/qt-creator/Manifest +++ b/dev-qt/qt-creator/Manifest @@ -1 +1,2 @@ +DIST qt-creator-opensource-src-4.10.0-rc1.tar.xz 26226544 BLAKE2B 5fc66e73d93b2d358c4f3c23e80029b805b1aa841b71fc35077b089bf51d705b6f7f352bd36f2dd573aef0a95efea3573e08af8eea31aeb0f43d33172935cdc1 SHA512 e5f7fb5b67fd803fbcb2a96b26d96e53e5d43fd3733c4867ce9e2f4764220d1772fa788424d917acdc0c78c580ce8ee774e561c6bf5fd54feac320073d5fb263 DIST qt-creator-opensource-src-4.8.2.tar.xz 24600872 BLAKE2B c686ea4f0ab981cba98319d8d7dd8eee9fd967d17e80f2602e8416145bddcbd7cae928d06a950914d677c9b2e82ed855812e66d64ce7cc998742357284f41865 SHA512 9900a82b1298a1cc74b33eab6a1063ed77e11f3150b8f82a72b7703b88f979e5a332efee9a622554df5238b44470e99a061b6c70f0d8cdfc352a07ce51a4c450 diff --git a/dev-qt/qt-creator/metadata.xml b/dev-qt/qt-creator/metadata.xml index da6920d3f84d..75d3a6852989 100644 --- a/dev-qt/qt-creator/metadata.xml +++ b/dev-qt/qt-creator/metadata.xml @@ -11,14 +11,16 @@ Build plugin for Android devices + Enable integration with popular unit testing frameworks (QtTest, Google Test, Boost.Test) Enable autotools project manager plugin Build plugin for bare metal devices Add support for dev-vcs/bzr version control system - Build clang-based plugins (code model, format, static analysis) + Build the beautifier plugin (supports astyle, clang-format, and uncrustify) + Build clang-based plugins (code model, formatting, refactoring, static analysis) Add support for IBM ClearCase version control system (requires manual installation of ClearCase client) Enable cmake project manager plugin Enable integration with dev-util/cppcheck - Build widget designer plugin + Enable designer for QtWidgets-based UIs Enable GLSL source code editor Build the help plugin Build plugin for Apple iOS devices @@ -27,9 +29,13 @@ Enable graphical model editor Enable Nim source code editor Add support for Perforce version control system (requires manual installation of Perforce client) + Build the Linux Perf-based profiler plugin Enable Python source code editor Enable QBS project manager plugin + Enable designer for QML/QtQuick-based UIs + Build the QML profiler plugin Build plugin for QNX devices + Build remotelinux plugin Enable graphical SCXML editor Build serial terminal plugin Enable integration with sys-apps/the_silver_searcher diff --git a/dev-qt/qt-creator/qt-creator-4.10.0_rc1.ebuild b/dev-qt/qt-creator/qt-creator-4.10.0_rc1.ebuild new file mode 100644 index 000000000000..87ff878b2085 --- /dev/null +++ b/dev-qt/qt-creator/qt-creator-4.10.0_rc1.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PLOCALES="cs da de fr ja pl ru sl uk zh-CN zh-TW" + +inherit llvm qmake-utils 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/-}/$(ver_cut 1-2)/${MY_PV}/${MY_P}.tar.xz" + KEYWORDS="~amd64 ~arm ~x86" + S=${WORKDIR}/${MY_P} +fi + +# TODO: unbundle sqlite and KSyntaxHighlighting + +QTC_PLUGINS=(android +autotest baremetal bazaar beautifier + '+clang:clangcodemodel|clangformat|clangpchmanager|clangrefactoring|clangtools' clearcase + cmake:cmakeprojectmanager cppcheck cvs +designer git glsl:glsleditor +help ios lsp:languageclient + mercurial modeling:modeleditor nim perforce perfprofiler python:pythoneditor qbs:qbsprojectmanager + +qmldesigner qmlprofiler qnx remotelinux scxml:scxmleditor serialterminal silversearcher subversion + valgrind winrt) +IUSE="doc systemd test +webengine ${QTC_PLUGINS[@]%:*}" +REQUIRED_USE=" + clang? ( test? ( qbs ) ) + qnx? ( remotelinux ) +" + +# minimum Qt version required +QT_PV="5.12.3:5" + +CDEPEND=" + >=dev-qt/qtconcurrent-${QT_PV} + >=dev-qt/qtcore-${QT_PV} + >=dev-qt/qtdeclarative-${QT_PV}[widgets] + >=dev-qt/qtgui-${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} + clang? ( >=sys-devel/clang-8:= ) + designer? ( >=dev-qt/designer-${QT_PV} ) + help? ( + >=dev-qt/qthelp-${QT_PV} + webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets] ) + ) + perfprofiler? ( dev-libs/elfutils ) + qbs? ( >=dev-util/qbs-1.13.1 ) + serialterminal? ( >=dev-qt/qtserialport-${QT_PV} ) + systemd? ( sys-apps/systemd:= ) +" +DEPEND="${CDEPEND} + >=dev-qt/linguist-tools-${QT_PV} + virtual/pkgconfig + doc? ( >=dev-qt/qdoc-${QT_PV} ) + test? ( + >=dev-qt/qtdeclarative-${QT_PV}[localstorage] + >=dev-qt/qtquickcontrols2-${QT_PV} + >=dev-qt/qttest-${QT_PV} + >=dev-qt/qtxmlpatterns-${QT_PV}[qml] + ) +" +RDEPEND="${CDEPEND} + sys-devel/gdb[client,python] + bazaar? ( dev-vcs/bzr ) + cmake? ( dev-util/cmake[server(+)] ) + cppcheck? ( dev-util/cppcheck ) + cvs? ( dev-vcs/cvs ) + git? ( dev-vcs/git ) + mercurial? ( dev-vcs/mercurial ) + silversearcher? ( sys-apps/the_silver_searcher ) + 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 + IUSE+=" l10n_${x}" + RDEPEND+=" l10n_${x}? ( >=dev-qt/qttranslations-${QT_PV} )" +done +unset x + +pkg_setup() { + use clang && llvm_pkg_setup +} + +src_prepare() { + default + + # disable unwanted plugins + for plugin in "${QTC_PLUGINS[@]#[+-]}"; do + if ! use ${plugin%:*}; then + einfo "Disabling ${plugin%:*} plugin" + sed -i -re "s/(^\s+|\s*SUBDIRS\s*\+=.*)\<(${plugin#*:})\>(.*)/\1\3/" \ + src/plugins/plugins.pro || die "failed to disable ${plugin%:*} plugin" + fi + done + sed -i -e '/updateinfo/d' src/plugins/plugins.pro || die + + # avoid building unused support libraries and tools + if ! use clang; then + sed -i -e '/clangsupport/d' src/libs/libs.pro || die + sed -i -e '/clang\(\|pchmanager\|refactoring\)backend/d' src/tools/tools.pro || die + fi + if ! use glsl; then + sed -i -e '/glsl/d' src/libs/libs.pro || die + fi + if ! use lsp; then + sed -i -e '/languageserverprotocol/d' src/libs/libs.pro tests/auto/auto.pro || die + fi + if ! use modeling; then + sed -i -e '/modelinglib/d' src/libs/libs.pro || die + fi + if ! use perfprofiler; then + rm -rf src/tools/perfparser || die + if ! use qmlprofiler; then + sed -i -e '/tracing/d' src/libs/libs.pro tests/auto/auto.pro || die + fi + fi + if ! use qmldesigner; then + sed -i -e '/qml2puppet/d' src/tools/tools.pro || die + sed -i -e '/qmldesigner/d' tests/auto/qml/qml.pro || die + fi + if ! use valgrind; then + sed -i -e '/valgrindfake/d' src/tools/tools.pro || die + sed -i -e '/valgrind/d' tests/auto/auto.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 '/\(dumpers\|namedemangler\)\.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 's/\//' tests/auto/qml/codemodel/codemodel.pro || die + + # do not install test binaries + sed -i -e '/CONFIG +=/s/$/ no_testcase_installs/' tests/auto/{qttest.pri,json/json.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 + local lang languages= + for lang in ${PLOCALES}; do + use l10n_${lang} && languages+=" ${lang/-/_}" + done + sed -i -e "/^LANGUAGES\s*=/s:=.*:=${languages}:" 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 clang && 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) +} + +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 index 3a1250a63894..87ff878b2085 100644 --- a/dev-qt/qt-creator/qt-creator-9999.ebuild +++ b/dev-qt/qt-creator/qt-creator-9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 PLOCALES="cs da de fr ja pl ru sl uk zh-CN zh-TW" inherit llvm qmake-utils virtualx xdg @@ -18,22 +18,27 @@ 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" + SRC_URI="https://download.qt.io/${MY_REL}_releases/${PN/-}/$(ver_cut 1-2)/${MY_PV}/${MY_P}.tar.xz" KEYWORDS="~amd64 ~arm ~x86" S=${WORKDIR}/${MY_P} fi -# TODO: unbundle sqlite +# TODO: unbundle sqlite and KSyntaxHighlighting -QTC_PLUGINS=('android:android|qmakeandroidsupport' autotools:autotoolsprojectmanager baremetal bazaar - '+clang:clangcodemodel|clangformat|clangtools' clearcase cmake:cmakeprojectmanager cppcheck - cvs +designer git glsl:glsleditor +help ios lsp:languageclient mercurial modeling:modeleditor - nim perforce python:pythoneditor qbs:qbsprojectmanager qnx scxml:scxmleditor serialterminal - silversearcher subversion valgrind winrt) +QTC_PLUGINS=(android +autotest baremetal bazaar beautifier + '+clang:clangcodemodel|clangformat|clangpchmanager|clangrefactoring|clangtools' clearcase + cmake:cmakeprojectmanager cppcheck cvs +designer git glsl:glsleditor +help ios lsp:languageclient + mercurial modeling:modeleditor nim perforce perfprofiler python:pythoneditor qbs:qbsprojectmanager + +qmldesigner qmlprofiler qnx remotelinux scxml:scxmleditor serialterminal silversearcher subversion + valgrind winrt) IUSE="doc systemd test +webengine ${QTC_PLUGINS[@]%:*}" +REQUIRED_USE=" + clang? ( test? ( qbs ) ) + qnx? ( remotelinux ) +" # minimum Qt version required -QT_PV="5.9.0:5" +QT_PV="5.12.3:5" CDEPEND=" >=dev-qt/qtconcurrent-${QT_PV} @@ -49,13 +54,14 @@ CDEPEND=" >=dev-qt/qtwidgets-${QT_PV} >=dev-qt/qtx11extras-${QT_PV} >=dev-qt/qtxml-${QT_PV} - clang? ( >=sys-devel/clang-6:= ) + clang? ( >=sys-devel/clang-8:= ) designer? ( >=dev-qt/designer-${QT_PV} ) help? ( >=dev-qt/qthelp-${QT_PV} webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets] ) ) - qbs? ( >=dev-util/qbs-1.13.0 ) + perfprofiler? ( dev-libs/elfutils ) + qbs? ( >=dev-util/qbs-1.13.1 ) serialterminal? ( >=dev-qt/qtserialport-${QT_PV} ) systemd? ( sys-apps/systemd:= ) " @@ -65,17 +71,13 @@ DEPEND="${CDEPEND} doc? ( >=dev-qt/qdoc-${QT_PV} ) test? ( >=dev-qt/qtdeclarative-${QT_PV}[localstorage] - || ( - >=dev-qt/qtxmlpatterns-5.12.1-r1:5[qml(+)] - =dev-qt/qtquickcontrols2-${QT_PV} >=dev-qt/qttest-${QT_PV} + >=dev-qt/qtxmlpatterns-${QT_PV}[qml] ) " RDEPEND="${CDEPEND} sys-devel/gdb[client,python] - autotools? ( sys-devel/autoconf ) bazaar? ( dev-vcs/bzr ) cmake? ( dev-util/cmake[server(+)] ) cppcheck? ( dev-util/cppcheck ) @@ -104,7 +106,7 @@ src_prepare() { for plugin in "${QTC_PLUGINS[@]#[+-]}"; do if ! use ${plugin%:*}; then einfo "Disabling ${plugin%:*} plugin" - sed -i -re "/(^\s+|SUBDIRS\s*\+=\s*)(${plugin#*:})\>/d" \ + sed -i -re "s/(^\s+|\s*SUBDIRS\s*\+=.*)\<(${plugin#*:})\>(.*)/\1\3/" \ src/plugins/plugins.pro || die "failed to disable ${plugin%:*} plugin" fi done @@ -113,7 +115,7 @@ src_prepare() { # avoid building unused support libraries and tools if ! use clang; then sed -i -e '/clangsupport/d' src/libs/libs.pro || die - sed -i -e '/SUBDIRS += clangbackend/d' src/tools/tools.pro || die + sed -i -e '/clang\(\|pchmanager\|refactoring\)backend/d' src/tools/tools.pro || die fi if ! use glsl; then sed -i -e '/glsl/d' src/libs/libs.pro || die @@ -124,6 +126,16 @@ src_prepare() { if ! use modeling; then sed -i -e '/modelinglib/d' src/libs/libs.pro || die fi + if ! use perfprofiler; then + rm -rf src/tools/perfparser || die + if ! use qmlprofiler; then + sed -i -e '/tracing/d' src/libs/libs.pro tests/auto/auto.pro || die + fi + fi + if ! use qmldesigner; then + sed -i -e '/qml2puppet/d' src/tools/tools.pro || die + sed -i -e '/qmldesigner/d' tests/auto/qml/qml.pro || die + fi if ! use valgrind; then sed -i -e '/valgrindfake/d' src/tools/tools.pro || die sed -i -e '/valgrind/d' tests/auto/auto.pro || die @@ -138,6 +150,7 @@ src_prepare() { sed -i -e 's/\(manual\|tools\|unit\)//g' tests/tests.pro || die sed -i -e '/\(dumpers\|namedemangler\)\.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 's/\//' tests/auto/qml/codemodel/codemodel.pro || die # do not install test binaries sed -i -e '/CONFIG +=/s/$/ no_testcase_installs/' tests/auto/{qttest.pri,json/json.pro} || die @@ -172,7 +185,7 @@ src_test() { } src_install() { - emake INSTALL_ROOT="${ED}usr" install + emake INSTALL_ROOT="${ED}/usr" install dodoc dist/{changes-*,known-issues} -- 2.26.2