diff options
author | Alberto Villa <avilla@FreeBSD.org> | 2011-03-25 10:00:25 +0000 |
---|---|---|
committer | Alberto Villa <avilla@FreeBSD.org> | 2011-03-25 10:00:25 +0000 |
commit | ad849b2e0102d0e06a5b438afc78c484ba7f7cff (patch) | |
tree | ac6f64888d20453dd1e2a57fba6bef8a2f5361f9 /devel/qtscriptgenerator | |
parent | b140da0491b99a6a3107db5653e6b721705376e5 (diff) |
Notes
Diffstat (limited to 'devel/qtscriptgenerator')
-rw-r--r-- | devel/qtscriptgenerator/Makefile | 34 | ||||
-rw-r--r-- | devel/qtscriptgenerator/distinfo | 5 | ||||
-rw-r--r-- | devel/qtscriptgenerator/files/extra-patch-no_phonon | 34 | ||||
-rw-r--r-- | devel/qtscriptgenerator/files/patch-generator_memory_alignment | 137 | ||||
-rw-r--r-- | devel/qtscriptgenerator/files/patch-qtscript_masterinclude.h | 60 | ||||
-rw-r--r-- | devel/qtscriptgenerator/pkg-plist | 8 |
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 |