diff options
Diffstat (limited to 'staging/kdebindings-smokegen')
-rw-r--r-- | staging/kdebindings-smokegen/PKGBUILD | 35 | ||||
-rw-r--r-- | staging/kdebindings-smokegen/fix-crash.patch | 13 |
2 files changed, 48 insertions, 0 deletions
diff --git a/staging/kdebindings-smokegen/PKGBUILD b/staging/kdebindings-smokegen/PKGBUILD new file mode 100644 index 000000000..c853bee64 --- /dev/null +++ b/staging/kdebindings-smokegen/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 144217 2011-12-04 09:37:41Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgname=kdebindings-smokegen +pkgver=4.7.4 +pkgrel=1 +pkgdesc="A general purpose C++ parser with a plugin infrastructure" +url="http://kde.org/" +arch=('i686' 'x86_64') +license=('GPL' 'LGPL' 'FDL') +depends=('kdebase-runtime') +makedepends=('cmake' 'automoc4') +conflicts=('kdebindings-smoke') +source=("http://download.kde.org/stable/${pkgver}/src/smokegen-${pkgver}.tar.bz2" + 'fix-crash.patch') +sha1sums=('068d37e2404311b9caa23d78ee7fa262188a8622' + 'b209b2b7017622fea3406c5a9636e2334566af01') + +build() { + cd "${srcdir}"/smokegen-${pkgver} + patch -p1 -i "${srcdir}"/fix-crash.patch + + cd "${srcdir}" + mkdir build + cd build + cmake ../smokegen-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd "${srcdir}"/build + make DESTDIR="${pkgdir}" install +} diff --git a/staging/kdebindings-smokegen/fix-crash.patch b/staging/kdebindings-smokegen/fix-crash.patch new file mode 100644 index 000000000..5864da3f3 --- /dev/null +++ b/staging/kdebindings-smokegen/fix-crash.patch @@ -0,0 +1,13 @@ +diff -up smokegen-4.7.0/parser/type_compiler.cpp.orig smokegen-4.7.0/parser/type_compiler.cpp +diff -up smokegen-4.7.0/type_compiler.cpp.orig smokegen-4.7.0/type_compiler.cpp +--- smokegen-4.7.0/type_compiler.cpp.orig 2011-08-02 14:34:08.000000000 +0200 ++++ smokegen-4.7.0/type_compiler.cpp 2011-08-02 14:34:34.000000000 +0200 +@@ -191,6 +191,8 @@ void TypeCompiler::visitParameterDeclara + + void TypeCompiler::visitPtrOperator(PtrOperatorAST* node) + { ++ if ( ! m_session->token_stream ) return; ++ if ( ! token_text(m_session->token_stream->kind(node->op)) ) return; + if (token_text(m_session->token_stream->kind(node->op))[0] == '*') { + QPair<bool, bool> cv = m_visitor->parseCv(node->cv); + pointerDepth.append(cv.first); |