summaryrefslogtreecommitdiff
path: root/development/qt-creator/qt-creator.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'development/qt-creator/qt-creator.SlackBuild')
-rw-r--r--development/qt-creator/qt-creator.SlackBuild71
1 files changed, 63 insertions, 8 deletions
diff --git a/development/qt-creator/qt-creator.SlackBuild b/development/qt-creator/qt-creator.SlackBuild
index bf8f043275..d6290a62f3 100644
--- a/development/qt-creator/qt-creator.SlackBuild
+++ b/development/qt-creator/qt-creator.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for qt-creator
-# Copyright 2016 Andre Barboza
+# Copyright 2016 Andre Barboza, Belo Horizonte - Brazil
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,11 +22,22 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Updated by Andre Barboza <bmg.andre@gmail.com>
+# Code Model updates by Andrzej Telszewski <atelszewski@gmail.com>
+
+# For building -rc or -beta releases, set VERSION to something like:
+# VERSION=4.2.0_rc1 or VERSION=4.2.0_beta1 (note the underscore).
+
PRGNAM=qt-creator
-VERSION=${VERSION:-4.1.0}
+VERSION=${VERSION:-4.2.0}
+SRCVER=$(echo $VERSION | tr _ -)
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
+CODE_MODEL=${CODE_MODEL:-no}
+LLVM_VERSION=${LLVM_VERSION:-3.9.1}
+CLANG_VERSION=${CLANG_VERSION:-3.9.1}
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -59,9 +70,18 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-opensource-src-$VERSION
-tar xvf $CWD/$PRGNAM-opensource-src-$VERSION.tar.xz
-cd $PRGNAM-opensource-src-$VERSION
+rm -rf $PRGNAM-opensource-src-$SRCVER
+tar xvf $CWD/$PRGNAM-opensource-src-$SRCVER.tar.xz
+cd $PRGNAM-opensource-src-$SRCVER
+
+# Unpack LLVM if code model is required
+if [ "${CODE_MODEL}" == "yes" ]; then
+ tar xvf $CWD/llvm-$LLVM_VERSION.src.tar.xz
+ mv llvm-$LLVM_VERSION.src llvm-src
+ tar xvf $CWD/cfe-$CLANG_VERSION.src.tar.xz -C llvm-src/tools
+ mv llvm-src/tools/cfe-$CLANG_VERSION.src llvm-src/tools/clang
+fi
+
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -69,7 +89,29 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Adjust docs location.
+# LLVM/Clang is used by QTC's Clang Code Model and Clang Static Analyzer.
+if [ "${CODE_MODEL}" == "yes" ]; then
+ # LLVM/Clang temporary (QTC build-time) install directory.
+ LLVM_INSTALL_ROOT=$(pwd)/llvm-install-root
+
+ # Build and temporarily install LLVM/Clang.
+ mkdir llvm-src/build
+ cd llvm-src/build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=$LLVM_INSTALL_ROOT \
+ -DCMAKE_BUILD_TYPE=Release \
+ -G "Unix Makefiles" \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_TARGETS_TO_BUILD="X86" \
+ ..
+ make
+ make install
+ cd -
+fi
+
+# Adjust QTC docs location.
sed -i "s|share/doc/qtcreator|doc/$PRGNAM-$VERSION|g" qtcreator.pri
sed -i "s|share/doc/qtcreator|doc/$PRGNAM-$VERSION|g" doc/api/qtcreator-documentation.qdoc
sed -i "s|share/doc/qtcreator|doc/$PRGNAM-$VERSION|g" src/plugins/coreplugin/icore.cpp
@@ -78,7 +120,7 @@ qmake-qt5 qtcreator.pro \
QMAKE_CXXFLAGS="$SLKCFLAGS" \
QTC_PREFIX=/usr \
IDE_LIBRARY_BASENAME=lib$LIBDIRSUFFIX \
- LLVM_INSTALL_DIR=/usr \
+ LLVM_INSTALL_DIR=$LLVM_INSTALL_ROOT \
QBS_INSTALL_DIR=/usr
make
@@ -86,6 +128,19 @@ make install INSTALL_ROOT=$PKG
make docs
make install_docs INSTALL_ROOT=$PKG
+if [ "${CODE_MODEL}" == "yes" ]; then
+ # Install (bundle) LLVM/Clang components needed for running QTC.
+ cd $LLVM_INSTALL_ROOT
+ mkdir -p $PKG/usr/libexec/qtcreator/clang/bin
+ cp -a bin/clang $PKG/usr/libexec/qtcreator/clang/bin
+ cp -a bin/$(readlink bin/clang) $PKG/usr/libexec/qtcreator/clang/bin
+ mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/qtcreator
+ cp -a lib/libclang.so* $PKG/usr/lib$LIBDIRSUFFIX/qtcreator
+ mkdir -p $PKG/usr/libexec/qtcreator/clang/lib/clang
+ cp -a lib/clang/* $PKG/usr/libexec/qtcreator/clang/lib/clang
+ cd -
+fi
+
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
@@ -93,7 +148,7 @@ mkdir -p $PKG/usr/share/applications
cat $CWD/qt-creator.desktop > $PKG/usr/share/applications/qt-creator.desktop
mkdir -p $PKG/usr/share/mime/packages
-cat $CWD/x-qt-creator.xml > $PKG/usr/share/mime/packages/x-qt-creator.xml
+cat $CWD/qt-creator.xml > $PKG/usr/share/mime/packages/qt-creator.xml
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a HACKING LICENSE.GPL3-EXCEPT README.md $PKG/usr/doc/$PRGNAM-$VERSION