qtcreator/qtcreator.spec

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
parent 344
e33c1efbd60f
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

michael@214 1 ##
michael@214 2 ## qtcreator.spec -- OpenPKG RPM Specification
michael@344 3 ## Copyright (c) 2011 Michael Schloh von Bennewitz <michael@schloh.com>
michael@214 4 ##
michael@214 5 ## Permission to use, copy, modify, and distribute this software for
michael@214 6 ## any purpose with or without fee is hereby granted, provided that
michael@214 7 ## the above copyright notice and this permission notice appear in all
michael@214 8 ## copies.
michael@214 9 ##
michael@214 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@214 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@214 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@214 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@214 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@214 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@214 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@214 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@214 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@214 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@214 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@214 21 ## SUCH DAMAGE.
michael@214 22 ##
michael@214 23
michael@214 24 # package information
michael@214 25 Name: qtcreator
michael@214 26 Summary: Cross Platform Application Framework
michael@344 27 URL: http://qt.nokia.com/developer/qt-creator
michael@214 28 Vendor: Nokia Corporation
michael@214 29 Packager: Michael Schloh von Bennewitz
michael@387 30 Distribution: Europalab Networks Production
michael@214 31 Class: EVAL
michael@214 32 Group: Development
michael@214 33 License: GPL
michael@344 34 Version: 2.2.0
michael@344 35 Release: 20110514
michael@214 36
michael@214 37 # list of sources
michael@344 38 Source0: ftp://ftp.qt.nokia.com/qtcreator/qt-creator-%{version}-src.tar.gz
michael@214 39
michael@214 40 # build information
michael@214 41 Prefix: %{l_prefix}
michael@214 42 BuildRoot: %{l_buildroot}
michael@344 43 BuildPreReq: OpenPKG, openpkg >= 20060823
michael@344 44 PreReq: OpenPKG, openpkg >= 20060823
michael@281 45 BuildPreReq: qt, qt::with_shared = yes
michael@281 46 PreReq: qt, qt::with_shared = yes
michael@214 47 AutoReq: no
michael@214 48 AutoReqProv: no
michael@214 49
michael@214 50 %description
michael@214 51 Qt Creator is a cross platform integrated development environment
michael@214 52 (IDE) with an advanced C++ code editor, integrated GUI layout and
michael@214 53 forms designer, project and build management tools, integrated
michael@214 54 context sensitive help system, visual debugger, and rapid code
michael@214 55 navigation tools. Its portable design and leverage of the Qt SDK
michael@214 56 allows for support of multiple platforms.
michael@214 57
michael@214 58 %track
michael@214 59 prog qtcreator = {
michael@214 60 version = %{version}
michael@261 61 url = ftp://ftp.qt.nokia.com/qtcreator/
michael@261 62 regex = qt-creator-(__VER__)-src\.tgz
michael@214 63 }
michael@214 64
michael@214 65 %prep
michael@214 66 %setup -q -n qt-creator-%{version}-src
michael@214 67 %{l_shtool} subst \
michael@261 68 -e 's;\(QMAKE_RPATHDIR +=\);#\1;g' \
michael@261 69 -e 's;\(\$\$join(QMAKE_RPATHDIR, ":"\));\1, "%{l_prefix}/lib/qtcreator:");' \
michael@261 70 src/rpath.pri
michael@344 71 # Trolltech Bug:
michael@344 72 # Hardcoded paths not correct in every case
michael@219 73 %{l_shtool} subst \
michael@261 74 -e 's;\(share\)/\(doc\)/\(qtcreator\);\1/\3/\2;' \
michael@261 75 doc/doc.pri \
michael@261 76 qtcreator.pri \
michael@261 77 src/plugins/help/helpplugin.cpp
michael@344 78 # Trolltech Bug:
michael@344 79 # Redefined (simply copied from) Qt library source code
michael@344 80 %{l_shtool} subst \
michael@344 81 -e 's;\(qt_clean_filter_list\);l_\1;g' \
michael@344 82 -e 's;\(qt_file_dialog_filter_reg_exp\);l_\1;g' \
michael@344 83 src/plugins/qt4projectmanager/addlibrarywizard.cpp
michael@344 84 # Trolltech Bug:
michael@344 85 # Syntax error in qmake project file
michael@344 86 %{l_shtool} subst \
michael@344 87 -e 's;\(memcheckconfigwidget.ui\) \\$;\1;' \
michael@344 88 src/plugins/memcheck/memcheck.pro
michael@261 89 echo '' >>src/libs/3rdparty/botan/botan.pro
michael@261 90 for profil in `find . -name '*.pro' | grep -v '[ ]'`; do
michael@261 91 echo 'CONFIG += shared' >>$profil
michael@261 92 done
michael@214 93
michael@214 94 %build
michael@344 95 # Force linkage to Qt shared libraries due to
michael@344 96 # Qt Creator static build incapable by design.
michael@344 97 l_pkgconfpath=%{l_prefix}/lib/qt/dynamic/pkgconfig
michael@344 98 l_qtdynlflags=`PKG_CONFIG_PATH=$l_pkgconfpath %{l_prefix}/bin/pkg-config --libs-only-L QtCore`
michael@344 99 l_qtdynlibdir=`echo $l_qtdynlflags | %{l_shtool} subst -e 's;\-L[\t ]*\([^\t ]*\);\1;g'`
michael@344 100 %{l_prefix}/bin/qmake qtcreator.pro QMAKE_LIBDIR="$l_qtdynlibdir"
michael@344 101 # Trolltech Bug:
michael@344 102 # (Proc 1) g++ -shared -o libCppEditor.so .obj/release-shared/cppplugin.o ... -lpthread ...
michael@344 103 # (Proc 2) mv -f libCppEditor.so ../../../lib/qtcreator/plugins/Nokia/
michael@344 104 # make[1]: *** [sub-plugins-make_default-ordered] Error 2
michael@344 105 #
michael@344 106 # The implemented workaround is to disable parallel make,
michael@344 107 # causing a nearly 100% deceleration in the build.
michael@344 108 %{l_make} %{l_mflags}
michael@214 109
michael@214 110 %install
michael@214 111 rm -rf $RPM_BUILD_ROOT
michael@214 112
michael@214 113 # carry out installation procedure
michael@261 114 %{l_make} %{l_mflags} install INSTALL_ROOT="$RPM_BUILD_ROOT%{l_prefix}"
michael@214 115
michael@214 116 # determine internal file listing
michael@214 117 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
michael@214 118
michael@214 119 %files -f files
michael@214 120
michael@214 121 %clean
michael@214 122 rm -rf $RPM_BUILD_ROOT
michael@214 123

mercurial