aboutsummaryrefslogtreecommitdiff
path: root/devel/qtscriptgenerator
diff options
context:
space:
mode:
authorAlberto Villa <avilla@FreeBSD.org>2011-03-25 10:00:25 +0000
committerAlberto Villa <avilla@FreeBSD.org>2011-03-25 10:00:25 +0000
commitad849b2e0102d0e06a5b438afc78c484ba7f7cff (patch)
treeac6f64888d20453dd1e2a57fba6bef8a2f5361f9 /devel/qtscriptgenerator
parentb140da0491b99a6a3107db5653e6b721705376e5 (diff)
Notes
Diffstat (limited to 'devel/qtscriptgenerator')
-rw-r--r--devel/qtscriptgenerator/Makefile34
-rw-r--r--devel/qtscriptgenerator/distinfo5
-rw-r--r--devel/qtscriptgenerator/files/extra-patch-no_phonon34
-rw-r--r--devel/qtscriptgenerator/files/patch-generator_memory_alignment137
-rw-r--r--devel/qtscriptgenerator/files/patch-qtscript_masterinclude.h60
-rw-r--r--devel/qtscriptgenerator/pkg-plist8
6 files changed, 210 insertions, 68 deletions
diff --git a/devel/qtscriptgenerator/Makefile b/devel/qtscriptgenerator/Makefile
index 39fe4aa75a31..77a3a41327a5 100644
--- a/devel/qtscriptgenerator/Makefile
+++ b/devel/qtscriptgenerator/Makefile
@@ -5,20 +5,24 @@
# $FreeBSD$
PORTNAME= qtscriptgenerator
-PORTVERSION= 0.1.0
-PORTREVISION= 2
+PORTVERSION= 0.1.0.20101126
CATEGORIES= devel
-MASTER_SITES= ${MASTER_SITE_GOOGLE_CODE}
+#MASTER_SITES= ${MASTER_SITE_GOOGLE_CODE}
+MASTER_SITES= ${MASTER_SITE_LOCAL} \
+ http://ns.ael.ru/~fluffy.khv/distfiles/
+MASTER_SITE_SUBDIR= fluffy
DISTNAME= ${PORTNAME}-src-${PORTVERSION}
MAINTAINER= syncer@gmail.com
COMMENT= Qt Script Generator is a tool that generates Qt bindings for Qt Script
+OPTIONS= PHONON "Build Phonon support" on
+
USE_GMAKE= yes
USE_QT_VER= 4
-QT_COMPONENTS= corelib designer doc help help-tools gui iconengines \
- imageformats inputmethods linguist network opengl \
- phonon pixeltool porting qdbusviewer \
+QT_COMPONENTS= corelib declarative designer doc help help-tools gui \
+ iconengines imageformats inputmethods linguist network \
+ opengl pixeltool porting qdbusviewer \
qt3support qtestlib qvfb script scripttools \
sql svg webkit xml xmlpatterns xmlpatterns-tool \
qmake_build moc_build rcc_build uic_build
@@ -26,6 +30,16 @@ HAS_CONFIGURE= yes
USE_LDCONFIG= yes
INSTALL_QT_PLUGINS_DIR= ${PREFIX}/lib/qt4/plugins/
+.include <bsd.port.options.mk>
+
+.if defined(WITH_PHONON)
+QT_COMPONENTS+= phonon
+PLIST_SUB+= PHONON=""
+.else
+EXTRA_PATCHES= ${FILESDIR}/extra-patch-no_phonon
+PLIST_SUB+= PHONON="@comment "
+.endif
+
do-configure:
@cd ${WRKSRC}/generator/ && ${SETENV} ${CONFIGURE_ENV} \
${QMAKE} -unix PREFIX=${PREFIX} generator.pro
@@ -34,10 +48,12 @@ do-build:
@echo "---> Building generator"
@cd ${WRKSRC}/generator && ${GMAKE} && ${SETENV} ${CONFIGURE_ENV} \
./generator --include-paths=${PREFIX}/include/:${PREFIX}/include/qt4/
- @echo "---> Building generated files"
+ @echo "---> Configure generated files"
@cd ${WRKSRC}/qtbindings && ${SETENV} ${CONFIGURE_ENV} \
- ${QMAKE} -unix PREFIX=${PREFIX} INCLUDEPATH+=${PREFIX}/include/qt4/phonon \
- LIBS+=-L${PREFIX}/lib qtbindings.pro && ${GMAKE}
+ ${QMAKE} PREFIX=${PREFIX} INCLUDEPATH+=${PREFIX}/include/qt4/phonon \
+ LIBS+=-L${PREFIX}/lib qtbindings.pro
+ @echo "---> Building generated files"
+ @cd ${WRKSRC}/qtbindings && ${SETENV} ${MAKE_ENV} && ${GMAKE}
do-install:
${MKDIR} ${INSTALL_QT_PLUGINS_DIR}/script
diff --git a/devel/qtscriptgenerator/distinfo b/devel/qtscriptgenerator/distinfo
index 81c030b6c89a..5088c09eac77 100644
--- a/devel/qtscriptgenerator/distinfo
+++ b/devel/qtscriptgenerator/distinfo
@@ -1,3 +1,2 @@
-MD5 (qtscriptgenerator-src-0.1.0.tar.gz) = ca4046ad4bda36cd4e21649d4b98886d
-SHA256 (qtscriptgenerator-src-0.1.0.tar.gz) = 462ec57a65cf61228070a442299a5ecd189f80325f8246e5f98e0b8b06941f41
-SIZE (qtscriptgenerator-src-0.1.0.tar.gz) = 374223
+SHA256 (qtscriptgenerator-src-0.1.0.20101126.tar.gz) = e859e59eba4ead81d958792392a5ea16ce3807d933b3b56c0cfe6a00e1850608
+SIZE (qtscriptgenerator-src-0.1.0.20101126.tar.gz) = 371765
diff --git a/devel/qtscriptgenerator/files/extra-patch-no_phonon b/devel/qtscriptgenerator/files/extra-patch-no_phonon
new file mode 100644
index 000000000000..4d1389530377
--- /dev/null
+++ b/devel/qtscriptgenerator/files/extra-patch-no_phonon
@@ -0,0 +1,34 @@
+diff -up ./generator/build_all.txt.no_phonon ./generator/build_all.txt
+--- ./generator/build_all.txt.no_phonon 2010-10-26 02:53:53.000000000 -0500
++++ ./generator/build_all.txt 2010-12-21 12:43:23.717989854 -0600
+@@ -6,7 +6,6 @@
+ <load-typesystem name="typesystem_svg.xml" generate="yes" />
+ <load-typesystem name="typesystem_network.xml" generate="yes" />
+ <load-typesystem name="typesystem_xml.xml" generate="yes" />
+- <load-typesystem name="typesystem_phonon.xml" generate="yes" />
+ <load-typesystem name="typesystem_webkit.xml" generate="yes" />
+ <load-typesystem name="typesystem_xmlpatterns.xml" generate="yes" />
+ <load-typesystem name="typesystem_uitools.xml" generate="yes" />
+diff -up ./generator/generate.sh.no_phonon ./generator/generate.sh
+--- ./generator/generate.sh.no_phonon 2010-10-26 02:53:53.000000000 -0500
++++ ./generator/generate.sh 2010-12-21 12:43:23.717989854 -0600
+@@ -12,8 +12,6 @@ xsltproc --stringparam source $PWD/types
+
+ xsltproc --stringparam source $PWD/typesystem_sql-qtscript.xml merge.xsl typesystem_sql-common.xml > typesystem_sql.xml
+
+-xsltproc --stringparam source $PWD/typesystem_phonon-qtscript.xml merge.xsl typesystem_phonon-common.xml > typesystem_phonon.xml
+-
+ xsltproc --stringparam source $PWD/typesystem_webkit-qtscript.xml merge.xsl typesystem_webkit-common.xml > typesystem_webkit.xml
+
+ xsltproc --stringparam source $PWD/typesystem_xmlpatterns-qtscript.xml merge.xsl typesystem_xmlpatterns-common.xml > typesystem_xmlpatterns.xml
+diff -up ./qtbindings/qtbindings.pro.no_phonon ./qtbindings/qtbindings.pro
+--- ./qtbindings/qtbindings.pro.no_phonon 2010-10-26 02:53:53.000000000 -0500
++++ ./qtbindings/qtbindings.pro 2010-12-21 12:45:01.010979847 -0600
+@@ -6,7 +6,6 @@ SUBDIRS = qtscript_core \
+ qtscript_sql \
+ qtscript_svg \
+ qtscript_xml \
+- qtscript_phonon \
+ qtscript_webkit \
+ qtscript_xmlpatterns \
+ qtscript_uitools \
diff --git a/devel/qtscriptgenerator/files/patch-generator_memory_alignment b/devel/qtscriptgenerator/files/patch-generator_memory_alignment
new file mode 100644
index 000000000000..b486d3956a86
--- /dev/null
+++ b/devel/qtscriptgenerator/files/patch-generator_memory_alignment
@@ -0,0 +1,137 @@
+From: Modestas Vainius <modestas@vainius.eu>
+Subject: [PATCH] Memory alignment fixes
+
+Fixes various memory alignment issues which cause generator to crash on
+alignment-sensitive architectures.
+
+Signed-off-by: Modestas Vainius <modestas@vainius.eu>
+
+---
+ generator/parser/ast.h | 2 +-
+ generator/parser/list.h | 2 +-
+ generator/parser/rpp/pp-symbol.h | 9 +++++++--
+ generator/parser/rxx_allocator.h | 17 +++++++++++++++++
+ generator/parser/smallobject.h | 6 ++++++
+ 5 files changed, 32 insertions(+), 4 deletions(-)
+
+diff --git ./generator/parser/ast.h ./generator/parser/ast.h
+index c213b21..90be00a 100644
+--- ./generator/parser/ast.h
++++ ./generator/parser/ast.h
+@@ -863,7 +863,7 @@ struct QEnumsAST : public DeclarationAST
+ template <class _Tp>
+ _Tp *CreateNode(pool *memory_pool)
+ {
+- _Tp *node = reinterpret_cast<_Tp*>(memory_pool->allocate(sizeof(_Tp)));
++ _Tp *node = reinterpret_cast<_Tp*>(memory_pool->allocate(sizeof(_Tp), strideof(_Tp)));
+ node->kind = _Tp::__node_kind;
+ return node;
+ }
+diff --git ./generator/parser/list.h ./generator/parser/list.h
+index e25a6d9..bfc5cb8 100644
+--- ./generator/parser/list.h
++++ ./generator/parser/list.h
+@@ -37,7 +37,7 @@ struct ListNode
+
+ static ListNode *create(const Tp &element, pool *p)
+ {
+- ListNode<Tp> *node = new (p->allocate(sizeof(ListNode))) ListNode();
++ ListNode<Tp> *node = new (p->allocate(sizeof(ListNode), strideof(ListNode))) ListNode();
+ node->element = element;
+ node->index = 0;
+ node->next = node;
+diff --git ./generator/parser/rpp/pp-symbol.h ./generator/parser/rpp/pp-symbol.h
+index de646df..f82bd42 100644
+--- ./generator/parser/rpp/pp-symbol.h
++++ ./generator/parser/rpp/pp-symbol.h
+@@ -24,6 +24,11 @@ class pp_symbol
+ static rxx_allocator<char>__allocator;
+ return __allocator;
+ }
++ static rxx_allocator<pp_fast_string> &ppfs_allocator_instance ()
++ {
++ static rxx_allocator<pp_fast_string>__ppfs_allocator;
++ return __ppfs_allocator;
++ }
+
+ public:
+ static int &N()
+@@ -39,7 +44,7 @@ public:
+ memcpy(data, __data, __size);
+ data[__size] = '\0';
+
+- char *where = allocator_instance ().allocate (sizeof (pp_fast_string));
++ pp_fast_string *where = ppfs_allocator_instance ().allocate (sizeof (pp_fast_string));
+ return new (where) pp_fast_string (data, __size);
+ }
+
+@@ -59,7 +64,7 @@ public:
+ std::copy (__first, __last, data);
+ data[__size] = '\0';
+
+- char *where = allocator_instance ().allocate (sizeof (pp_fast_string));
++ pp_fast_string *where = ppfs_allocator_instance ().allocate (sizeof (pp_fast_string));
+ return new (where) pp_fast_string (data, __size);
+ }
+
+diff --git ./generator/parser/rxx_allocator.h ./generator/parser/rxx_allocator.h
+index ee6bddb..1e6ccd2 100644
+--- ./generator/parser/rxx_allocator.h
++++ ./generator/parser/rxx_allocator.h
+@@ -31,6 +31,17 @@
+ #include <cstring>
+ #include <memory>
+
++// Stride calculation
++template <typename T>
++struct Tchar {
++ T t;
++ char c;
++};
++
++#define strideof(T) \
++ ((sizeof(Tchar<T>) > sizeof(T)) ? \
++ sizeof(Tchar<T>)-sizeof(T) : sizeof(T))
++
+ template <class _Tp> class rxx_allocator {
+ public:
+ typedef _Tp value_type;
+@@ -89,6 +100,12 @@ public:
+ return p;
+ }
+
++ pointer allocate(size_type __n, size_type stride, const void* = 0) {
++ if (reinterpret_cast<size_type>(_M_current_block + _M_current_index) % stride > 0)
++ _M_current_index += stride - reinterpret_cast<size_type>(_M_current_block + _M_current_index) % stride;
++ return allocate(__n);
++ }
++
+ void deallocate(pointer __p, size_type __n) {}
+
+ size_type max_size() const { return size_type(-1) / sizeof(_Tp); }
+diff --git ./generator/parser/smallobject.h ./generator/parser/smallobject.h
+index 0debcc8..2c4f541 100644
+--- ./generator/parser/smallobject.h
++++ ./generator/parser/smallobject.h
+@@ -35,6 +35,7 @@ class pool
+
+ public:
+ inline void *allocate(std::size_t __size);
++ inline void *allocate(std::size_t __size, std::size_t __stride);
+ };
+
+ inline void *pool::allocate(std::size_t __size)
+@@ -42,6 +43,11 @@ inline void *pool::allocate(std::size_t __size)
+ return __alloc.allocate(__size);
+ }
+
++inline void *pool::allocate(std::size_t __size, std::size_t __stride)
++{
++ return __alloc.allocate(__size, __stride);
++}
++
+ #endif
+
+ // kate: space-indent on; indent-width 2; replace-tabs on;
+--
+tg: (95a3b52..) general/memory_alignment_fix (depends on: upstream)
diff --git a/devel/qtscriptgenerator/files/patch-qtscript_masterinclude.h b/devel/qtscriptgenerator/files/patch-qtscript_masterinclude.h
index ddbdbbcd6b42..d7b46bc5b144 100644
--- a/devel/qtscriptgenerator/files/patch-qtscript_masterinclude.h
+++ b/devel/qtscriptgenerator/files/patch-qtscript_masterinclude.h
@@ -1,56 +1,12 @@
---- generator/qtscript_masterinclude.h.orig 2009-02-20 11:42:24.000000000 +0000
-+++ generator/qtscript_masterinclude.h 2009-04-13 08:32:00.000000000 +0000
-@@ -31,18 +31,42 @@
+diff -up ./generator/qtscript_masterinclude.h.kde_phonon ./generator/qtscript_masterinclude.h
+--- ./generator/qtscript_masterinclude.h.kde_phonon 2010-10-26 02:53:53.000000000 -0500
++++ ./generator/qtscript_masterinclude.h 2010-12-11 17:00:08.456338081 -0600
+@@ -58,7 +58,7 @@
+ #endif
- #include <QtUiTools/QtUiTools>
-
--#ifndef QT_NO_XMLPATTERNS
--# include <QtXmlPatterns/QtXmlPatterns>
--#endif
--
--#ifndef QT_NO_WEBKIT
--# include <QtWebKit/QtWebKit>
--#endif
--
--#ifndef QT_NO_PHONON
+ #ifndef QT_NO_PHONON
-# include <phonon/phonon>
--#endif
-+#include <QtXmlPatterns/QtXmlPatterns>
++# include <phonon/phononnamespace.h>
+ #endif
-+#include <QtWebKit/QtWebKit>
-+
-+#include "phonon/abstractaudiooutput.h"
-+#include "phonon/abstractmediastream.h"
-+#include "phonon/abstractvideooutput.h"
-+#include "phonon/addoninterface.h"
-+#include "phonon/audiooutput.h"
-+#include "phonon/audiooutputinterface.h"
-+#include "phonon/backendcapabilities.h"
-+#include "phonon/backendinterface.h"
-+#include "phonon/effect.h"
-+#include "phonon/effectinterface.h"
-+#include "phonon/effectparameter.h"
-+#include "phonon/effectwidget.h"
-+#include "phonon/mediacontroller.h"
-+#include "phonon/medianode.h"
-+#include "phonon/mediaobject.h"
-+#include "phonon/mediaobjectinterface.h"
-+#include "phonon/mediasource.h"
-+#include "phonon/objectdescription.h"
-+#include "phonon/objectdescriptionmodel.h"
-+#include "phonon/path.h"
-+#include "phonon/phonondefs.h"
-+#include "phonon/phononnamespace.h"
-+#include "phonon/platformplugin.h"
-+#include "phonon/seekslider.h"
-+#include "phonon/streaminterface.h"
-+#include "phonon/videoplayer.h"
-+#include "phonon/videowidget.h"
-+#include "phonon/videowidgetinterface.h"
-+#include "phonon/volumefadereffect.h"
-+#include "phonon/volumefaderinterface.h"
-+#include "phonon/volumeslider.h"
-+
#include "../qtbindings/qtscript_core/qtscriptconcurrent.h"
-
- #ifndef QT_NO_OPENGL
diff --git a/devel/qtscriptgenerator/pkg-plist b/devel/qtscriptgenerator/pkg-plist
index bf64fd19d3d1..a09e8c600230 100644
--- a/devel/qtscriptgenerator/pkg-plist
+++ b/devel/qtscriptgenerator/pkg-plist
@@ -14,10 +14,10 @@ lib/qt4/plugins/script/libqtscript_opengl.so
lib/qt4/plugins/script/libqtscript_opengl.so.1
lib/qt4/plugins/script/libqtscript_opengl.so.1.0
lib/qt4/plugins/script/libqtscript_opengl.so.1.0.0
-lib/qt4/plugins/script/libqtscript_phonon.so
-lib/qt4/plugins/script/libqtscript_phonon.so.1
-lib/qt4/plugins/script/libqtscript_phonon.so.1.0
-lib/qt4/plugins/script/libqtscript_phonon.so.1.0.0
+%%PHONON%%lib/qt4/plugins/script/libqtscript_phonon.so
+%%PHONON%%lib/qt4/plugins/script/libqtscript_phonon.so.1
+%%PHONON%%lib/qt4/plugins/script/libqtscript_phonon.so.1.0
+%%PHONON%%lib/qt4/plugins/script/libqtscript_phonon.so.1.0.0
lib/qt4/plugins/script/libqtscript_sql.so
lib/qt4/plugins/script/libqtscript_sql.so.1
lib/qt4/plugins/script/libqtscript_sql.so.1.0