#!/bin/sh # Generated by Alien's SlackBuild Toolkit: http://slackware.com/~alien/AST # Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015 Eric Hameleers, Eindhoven, Netherlands # Copyright 2015-2017 Thorn Inurcide USA # Copyright 2015-2017 tde-slackbuilds project on GitHub # All rights reserved. # # Permission to use, copy, modify, and distribute this software for # any purpose with or without fee is hereby granted, provided that # the above copyright notice and this permission notice appear in all # copies. # # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # Much help from the 12.2 SlackBuild script of qt3. And from SBo qt3 script # Man pages are not installed by 'make install' and have not been manually installed PRGNAM=tqt3 VERSION=$TDEVERSION BUILD=${BUILD:-1} TAG=${TAG:-_tde} source ../../get-source.sh getsource_fn untar_fn ## add -march, -mtune and no_warn options to CFLAGS where they've been set in BUILD-TDE.sh sed -i "s|^QMAKE_CFLAGS[^_].*$|& $SET_march ${NO_WARN:-}|" mkspecs/linux-g++/qmake.conf ## RPATH is set to $ORIGIN/../lib to locate libs during the build ## and added during configure with the -R option sed -i "s|QMAKE_RPATH.*$|QMAKE_RPATH =|" mkspecs/linux-g++/qmake.conf ## tqt libs might be installed in $([T]QTDIR)/lib64 sed -i "s|QTDIR)/lib|&$LIBDIRSUFFIX|" mkspecs/linux-g++/qmake.conf ## [open]GL libs might be installed in ../lib64 sed -i "s|X11R6/lib|&$LIBDIRSUFFIX|" mkspecs/linux-g++/qmake.conf ## add -headerdir as set in configure [[ $TDEVERSION == 14.1.0 ]] && QTDIR_PFX=T || QTDIR=$TQTDIR sed -i "s|QMAKE_INCDIR =|& \$(${QTDIR_PFX:-}QTDIR)/include/tqt|" mkspecs/linux-g++/qmake.conf ## allow building with clang [[ ! $(grep COMPILER mkspecs/linux-g++/qmake.conf) ]] && { echo $'--- mkspecs/linux-g++/qmake.conf +++ mkspecs/linux-g++/qmake.conf @@ -11 +11 @@ -QMAKE_CC = gcc +QMAKE_CC = $(COMPILER) @@ -29 +29 @@ -QMAKE_CXX = g++ +QMAKE_CXX = $(COMPILER_CXX) @@ -49,2 +49,2 @@ -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ +QMAKE_LINK = $(COMPILER_CXX) +QMAKE_LINK_SHLIB = $(COMPILER_CXX)' | while read line do patch -p0 done } ## don't install html docs if 'nodocs' has been selected [[ $TQT_OPTS == *nodocs* ]] && sed -i '/htmldocs/d' src/qt_install.pri ## for a minimal build [[ $TQT_OPTS == *minimal* ]] && { sed -i '/translations/d' src/qt_install.pri sed -i '/phrasebooks/d' tools/linguist/linguist/linguist.pro sed -i '/templates/d' tools/designer/designer/designer.pro } ## only need linux-g++ [[ $TQT_OPTS == *mkspecs* ]] && { mv mkspecs/linux-g++ ../ rm -rf mkspecs/* mv ../linux-g++ mkspecs/ } ## install desktop files to applications/tde as for the other TDE desktop files sed -i 's|desktop.path = $$share.path/applications|&/tde|' tools/assistant/assistant.pro sed -i 's|desktop.path = $$share.path/applications|&/tde|' tools/qtconfig/qtconfig.pro sed -i 's|desktop.path = $$share.path/applications|&/tde|' tools/designer/designer/designer.pro sed -i 's|desktop.path = $$share.path/applications|&/tde|' tools/linguist/linguist/linguist.pro listdocs_fn chown_fn #cd_builddir_fn - don't use ## datadir is where mkspecs is installed ## gcc visibility hidden is the default in mkspecs/..qmake.conf echo "yes" | \ ./configure \ -no-exceptions \ -prefix $TQTDIR \ -libdir $TQTDIR/lib$LIBDIRSUFFIX \ -bindir $TQTDIR/bin \ -headerdir $TQTDIR/include/tqt \ -plugindir $TQTDIR/lib$LIBDIRSUFFIX/tqt/plugins \ -datadir $TQTDIR/lib$LIBDIRSUFFIX/tqt \ -translationdir $TQTDIR/share/tqt/translations \ -release \ ${VERBOSE:+-verbose} \ -I/usr/include/freetype2 \ -I/usr/include/mysql \ -I/usr/include/tirpc \ -L/usr/lib$LIBDIRSUFFIX \ -system-zlib \ -qt-imgfmt-png \ -qt-imgfmt-mng \ -qt-gif \ -thread \ -stl \ -nis \ -cups \ -pch \ -xft \ -xrender \ -xrandr \ -xcursor \ -tablet \ -xinerama \ -plugin-style-cde \ -plugin-style-compact \ -plugin-style-motif \ -plugin-style-motifplus \ -plugin-style-platinum \ -plugin-style-sgi \ -plugin-style-windows \ -fast \ -R-Wl,-rpath,\'\\\$\$ORIGIN/../lib:$INST_RPATH\' ## +$INST_RPATH for run-time RPATH ## don't build tutorial and examples which won't be installed because the release version is being built make -i $NUMJOBS symlinks src-qmake src-moc sub-src sub-tools || exit 1 make install INSTALL_ROOT=$PKG || exit 1 ## for a minimal packaging [[ $TQT_OPTS == *minimal* ]] && { (cd $PKG$TQTDIR/ rm lib$LIBDIRSUFFIX/libtqt[de]* [[ $TQT_OPTS != *tdevel* ]] && rm lib$LIBDIRSUFFIX/libtqas* && { [[ $TQT_OPTS != *pim_ksq* ]] && rm lib$LIBDIRSUFFIX/libtqui* } rm bin/???????* rm bin/tqm2ts [[ $TQT_OPTS != *ktorrent* ]] && rm -rf lib$LIBDIRSUFFIX/tqt/plugins/designer )} || true # otherwise will exit 1 if [[ $TQT_OPTS == *ktorrent* ]] installdocs_fn mkdir -p $PKG/etc/profile.d # echo '#!'"/bin/sh # Environment path variable for the tQt package. export ${QTDIR_PFX:-}QTDIR=$TQTDIR " > $PKG/etc/profile.d/tqt3.sh # echo '#!'"/bin/csh # Environment path variable for the tQt package: setenv ${QTDIR_PFX:-}QTDIR $TQTDIR " > $PKG/etc/profile.d/tqt3.csh # chmod 755 $PKG/etc/profile.d/* strip_fn mkdir_install_fn # Add this to the doinst.sh: cat <> $PKG/install/doinst.sh # Add TDE library directory: [[ \$(cat etc/ld.so.conf|head -n1) != $INSTALL_TDE/lib$LIBDIRSUFFIX ]] && \ sed -i "1i $INSTALL_TDE/lib$LIBDIRSUFFIX" etc/ld.so.conf # Add TQt library directory: [[ \$(cat etc/ld.so.conf|head -n1) != $TQTDIR/lib$LIBDIRSUFFIX ]] && \ sed -i "1i $TQTDIR/lib$LIBDIRSUFFIX" etc/ld.so.conf [[ -x /sbin/ldconfig ]] && /sbin/ldconfig EOINS [[ $(cat $TMPVARS/PKG_CONFIG_PATH_MOD) != set ]] && PC_HASH="#" cat <> $PKG/install/doinst.sh ## This could be a rebuild or upgradepkg running installpkg twice, ## so delete any previous routine sed -i '/Update PKG_CONFIG_PATH for TDE/,+11d' etc/profile.d/pkgconfig.sh echo '# Update PKG_CONFIG_PATH for TDE: ## remove duplicated paths: ${PC_HASH:-}PKG_CONFIG_PATH=\$(echo \$PKG_CONFIG_PATH| tr : \\\\n | awk '"'!seen[\\\$0]++'"' | tr \\\\n :|sed '"'s|:\$||'"') # ## add path for INSTALL_TDE .. [[ ! \$PKG_CONFIG_PATH == *$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig* ]] && \\ PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig ## .. and for TQTDIR if different [[ ! \$PKG_CONFIG_PATH == *$TQTDIR/lib$LIBDIRSUFFIX/pkgconfig* ]] && \\ PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:$TQTDIR/lib$LIBDIRSUFFIX/pkgconfig # export PKG_CONFIG_PATH' >> etc/profile.d/pkgconfig.sh ## csh # Update PKG_CONFIG_PATH: [[ ! \$( grep $INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig etc/profile.d/pkgconfig.csh ) ]] && \\ sed -i "s|pkgconfig$|pkgconfig:$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig|" etc/profile.d/pkgconfig.csh [[ ! \$( grep $TQTDIR/lib$LIBDIRSUFFIX/pkgconfig etc/profile.d/pkgconfig.csh ) ]] && \\ sed -i "s|pkgconfig$|pkgconfig:$TQTDIR/lib$LIBDIRSUFFIX/pkgconfig|" etc/profile.d/pkgconfig.csh EOINS doinst_sh_fn echo " # HOW TO EDIT THIS FILE: # The 'handy ruler' below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. |-----handy-ruler------------------------------------------------------| $PRGNAM: tqt3 (C++ GUI application framework) $PRGNAM: $PRGNAM: tQt is a multiplatform C++ GUI application framework $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: " > $PKG/install/slack-desc ## build regextester .. [[ ${build_regextester:-} == [yp] ]] && { cd examples/regexptester rm regexptester.pro ## include the patch .. [[ $build_regextester == p ]] && \ patch -p0 << EOF --- regexptester.cpp +++ regexptester.cpp @@ -22 +22 @@ - regexComboBox->setSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Preferred); + regexComboBox->setSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Minimum); @@ -27 +27 @@ - textComboBox->setSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Preferred); + textComboBox->setSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Minimum); @@ -69 +69 @@ - resize(TQSize(500, 350).expandedTo(minimumSizeHint())); + resize(TQSize(500, 500).expandedTo(minimumSizeHint())); @@ -98 +98,14 @@ - const int OFFSET = 5; +// count number of new line characters, \n, to determine the number of lines in the 'Match' +// based on ntqregexp.html, search(Eric) example + TQString str_in = re.cap(0); + TQRegExp nlf( "\\n" ); // match \n + int pos = 0; // its position in the string + int num_lf = 0; // number of \n counted + while ( pos >= 0 ) { + pos = nlf.search( str_in, pos ); + if ( pos >= 0 ) { + pos += nlf.matchedLength(); // move to new position + num_lf++; // increment count of \n + } + } + const int OFFSET = 5 + num_lf; @@ -120,0 +134,8 @@ + resultTable->setText(row, 0, ""); +// last line in 'Match' may not end with new line character + resultTable->item(row, 0)->setSpan( num_lf + 1 , 1); + resultTable->setText(row, 1, ""); + resultTable->item(row, 1)->setSpan( num_lf + 1 , 1); + resultTable->setText(row, 2, ""); + resultTable->item(row, 2)->setSpan( num_lf + 1 , 1); + row+=num_lf; @@ -169 +189 @@ - regexComboBox->insertItem(tr("[A-Z]+=(\\\\d+):(\\\\d*)")); + regexComboBox->insertItem(tr("(\`{3})[^\`]+\\\\1")); @@ -171 +191 @@ - textComboBox->insertItem(tr("ABC=12:3456")); + textComboBox->insertItem(tr("\`\`\`script\\ncode here\\n\`\`\`\\n\\n\`\`\`\\ncode\\n\`\`\`")); EOF ## This is most likely a first build of tqt3, so build with the packaging directory binaries $PKG$INSTALL_TDE/bin/tqmake -project -o regextester.pro $PKG$INSTALL_TDE/bin/tqmake TARGET=regextester -spec $PKG$INSTALL_TDE/lib64/tqt/mkspecs/linux-g++ sed -i "s|-ltqt-mt|$PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/libtqt-mt.so.3|" Makefile sed -i "s|tqmake|$PKG$INSTALL_TDE/bin/tqmake|" Makefile QTDIR=$PKG$INSTALL_TDE COMPILER_CXX=g++ make strip regextester cp regextester $PKG$INSTALL_TDE/bin grep -A 10 "A Small Application" regexptester.doc | sed 's|\\title ||' > $PKG$INSTALL_TDE/doc/$PRGNAM-$TDEVERSION/regextester.doc sed "s|Perl's lookbehind|&|;\ s|are not supported|&|;\ s|there are no \\\A, \\\Z or \\\z|&|;\ 504s|assertions|&|" ../../doc/html/ntqregexp.html > $PKG$INSTALL_TDE/doc/$PRGNAM-$TDEVERSION/ntqregexp.html } makepkg_fn