ごく事務的に。
PC 上の環境を qt 2.3.4 + opie snapshot 20021122 へ移行する。 Qt/Embedded + Qtopia と混同しないため、ベースディレクトリを /usr/local/opie とする。
また、Transformed サーバを QVFb に対応させるため、
とする。2.3.3 以前と違い、これだけで Transformed に対応した。--- qgfxtransformed_qws.cpp~ Thu Feb 27 11:07:36 2003 +++ qgfxtransformed_qws.cpp Tue Mar 25 21:45:09 2003 @@ -43,7 +43,7 @@ #include <fcntl.h> #include <errno.h> -//#define QT_TRANSFORM_VFB +#define QT_TRANSFORM_VFB #ifndef QT_TRANSFORM_VFB # ifndef _OS_QNX6_
qconfig-fat.h としては、
を使う。PROPERTIES は qt-designer が使っているが、QVFb 上で動かすはずはないから省略。 QT_NO_COMPLEXTEXT, QT_NO_STYLE_AQUA は元々 qt-embedded-free 2.3.4 に実装がないにもかかわらず opie からフラグを参照しているものがあるため、qt-embedded 側で明示する。#define QT_NO_PROPERTIES #define QT_NO_DRAGANDDROP #define QT_NO_COMPLEXTEXT #define QT_NO_STYLE_AQUA
configs/linux-x86-g++-shared-debug の修正:
--- linux-x86-g++-shared-debug.org Tue Mar 25 21:48:55 2003 +++ linux-x86-g++-shared-debug Tue Mar 25 21:50:36 2003 @@ -6,17 +6,21 @@ # Compiling with support libraries SYSCONF_CXXFLAGS_X11 = -SYSCONF_CXXFLAGS_QT = -I$(QTDIR)/include +SYSCONF_CXXFLAGS_QT = -I$(QTDIR)/include -I/usr/include/freetype2 SYSCONF_CXXFLAGS_QTOPIA = -I$(QPEDIR)/include SYSCONF_CXXFLAGS_OPENGL = -I/usr/X11R6/include +RUNTIME_QTDIR = /usr/local/opie +RUNTIME_QPEDIR = /usr/local/opie +RUNTIME_OPIEDIR = /usr/local/opie + # Compiling YACC output SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses # Linking with support libraries SYSCONF_RPATH_X11 = -SYSCONF_RPATH_QT = -Wl,-rpath,$(QTDIR)/lib -SYSCONF_RPATH_QTOPIA = -Wl,-rpath,$(QPEDIR)/lib +SYSCONF_RPATH_QT = -Wl,-rpath,$(RUNTIME_QTDIR)/lib +SYSCONF_RPATH_QTOPIA = -Wl,-rpath,$(RUNTIME_QPEDIR)/lib SYSCONF_RPATH_OPENGL = -Wl,-rpath,/usr/X11R6/lib # Linking with support libraries @@ -26,7 +30,7 @@ # Qt, Qt+OpenGL SYSCONF_LFLAGS_QT = -L$(QTDIR)/lib SYSCONF_LFLAGS_QTOPIA = -L$(QPEDIR)/lib -SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) +SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) -lfreetype SYSCONF_LIBS_QT_OPENGL = SYSCONF_LIBS_QTOPIA = -lqtopia
% export QTDIR=/home/src/Qt/qt-2.3.4
% ./configure -qvfb -vnc -qconfig fat -system-jpeg -system-libpng -system-zlib \
-gif -depths 8,16,24,32 -debug
% make
デフォルトで xft は有効になっているが、-xft しておくほうがいいか?
static library とする場合は、
% ./configure -qvfb -vnc -qconfig fat -system-jpeg -system-libpng -system-zlib \
-gif -depths 8,16,24,32 -static -platform linux-generic-g++
のようにする。linux-generic-g++ と linux-x86-g++ の違いは inline function
の展開の有無にあり、inline でない実体が必要になる linux-x86-g++ は、
static library 化できない。... リンカのバグだと思うけど。
% cd /home/src/Qt/opie-snapshot-20021122 % rm -rf pics % cd /home/src/Qt/cvs/opie/opie % tar -cvp pics | tar -xpC /home/src/Qt/opie-snapshot-20021122 % cd /home/src/Qt/opie-snapshot-20021122 % cd pics % rm -rf **/CVS % cd ../library % /usr/local/qte/bin/qembed --images ../pics/inline/*.* > inlinepics_p.hqembed 自体は qt(e) の tools/ にある。必ず qt2/qte2 のものを使うこと。qt3 にも付属するが、 互換性がない。
--- linux-generic-g++-shared-debug.org Tue Mar 25 21:48:37 2003 +++ linux-generic-g++-shared-debug Tue Mar 25 21:58:08 2003 @@ -3,6 +3,7 @@ SYSCONF_CXX = g++ SYSCONF_CC = gcc DASHCROSS = +RUNTIME_QTDIR = /usr/local/opie # Compiling with support libraries SYSCONF_CXXFLAGS_X11 = @@ -14,7 +15,7 @@ # Linking with support libraries SYSCONF_RPATH_X11 = -SYSCONF_RPATH_QT = -Wl,-rpath,$(QTDIR)/lib +SYSCONF_RPATH_QT = -Wl,-rpath,$(RUNTIME_QTDIR)/lib SYSCONF_RPATH_OPENGL = -Wl,-rpath,/usr/X11R6/lib # Linking with support libraries @@ -22,8 +23,8 @@ SYSCONF_LFLAGS_X11 = SYSCONF_LIBS_X11 = # Qt, Qt+OpenGL -SYSCONF_LFLAGS_QT = -L$(QTDIR)/lib -SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) +SYSCONF_LFLAGS_QT = -L$(QTDIR)/lib +SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) -lfreetype SYSCONF_LIBS_QT_OPENGL = # OpenGL SYSCONF_LFLAGS_OPENGL = -L/usr/X11R6/lib
freetype/freetypefactoryimpl.h を:
--- freetypefactoryimpl.h~ Fri Oct 25 21:42:57 2002
+++ freetypefactoryimpl.h Tue Mar 25 21:40:11 2003
@@ -20,8 +20,8 @@
#include <qpe/fontfactoryinterface.h>
-
-class QFontFactoryFT;
+#include <qfontfactoryttf_qws.h>
+// class QFontFactoryFT;
class FreeTypeFactoryImpl : public FontFactoryInterface
{
noncore/settings/freetype/freetypefactoryimpl.h を:
-- noncore/settings/appearance2/appearance.cpp.org Tue Mar 25 22:13:10 2003
+++ noncore/settings/appearance2/appearance.cpp Tue Mar 25 22:13:26 2003
@@ -117,13 +117,13 @@
list->insertItem( new StyleListItem ( "Windows", new QWindowsStyle ( )));
list->insertItem( new StyleListItem ( "Light", new LightStyle ( )));
#ifndef QT_NO_STYLE_MOTIF
- list->insertItem( new StyleListItem ( "Motif", new QMotifStyle ( )));
+ // list->insertItem( new StyleListItem ( "Motif", new QMotifStyle ( )));
#endif
#ifndef QT_NO_STYLE_MOTIFPLUS
- list->insertItem( new StyleListItem ( "MotifPlus", new QMotifPlusStyle ( )));
+ // list->insertItem( new StyleListItem ( "MotifPlus", new QMotifPlusStyle ( )));
#endif
#ifndef QT_NO_STYLE_PLATINUM
- list->insertItem( new StyleListItem ( "Platinum", new QPlatinumStyle ( )));
+ // list->insertItem( new StyleListItem ( "Platinum", new QPlatinumStyle ( )));
#endif
#endif
list->insertItem( new StyleListItem ( "QPE", new QPEStyle ( )));
... むぅ、けっこうあるな。
--- Makefile~ Tue Mar 25 21:28:45 2003
+++ Makefile Tue Mar 25 21:36:57 2003
@@ -29,7 +29,7 @@
SYSCONF_LIBS_X11 =
# Qt, Qt+OpenGL
SYSCONF_LFLAGS_QT = -L$(QTDIR)/lib
-SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) -lfreetype
+SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) -lfreetype -lstdc++
SYSCONF_LIBS_QT_OPENGL =
# OpenGL
SYSCONF_LFLAGS_OPENGL = -L/usr/X11R6/lib
--- QOutputDev.cpp~ Fri Nov 22 21:37:18 2002
+++ QOutputDev.cpp Tue Mar 25 21:35:47 2003
@@ -672,7 +672,7 @@
if ( dorot ) {
oldmat = m_painter-> worldMatrix ( );
- std::cerr << std::endl << "ROTATED: " << m11 << ", " << m12 << ", " << m
21 << ", " << m22 << " / SIZE: " << fsize << " / TEXT: " << str. local8Bit ( ) << endl << endl;
+ std::cerr << std::endl << "ROTATED: " << double(m11) << ", " << double(m
12) << ", " << double(m21) << ", " << double(m22) << " / SIZE: " << double(fsize) << " / TEXT: "
<< str. local8Bit ( ) << endl << endl;
QWMatrix mat ( lrint ( m11 / fsize ), lrint ( m12 / fsize ), -lrint ( m2
1 / fsize ), -lrint ( m22 / fsize ), lrint ( x1 ), lrint ( y1 ));
もしかすると、さらに fixed.h のコメントアウトを元に戻す必要があるかもしれないが、 たぶん大丈夫だろう:
--- fixed.h~ Tue Mar 25 21:19:55 2003
+++ fixed.h Tue Mar 25 21:33:34 2003
@@ -181,7 +181,7 @@
return fixed ( a1, true );
}
-#if 0 // no std::ostream needed in OPIE
+#if 1 // no std::ostream needed in OPIE
template inline std::ostream &operator << ( std::ostream &o, const fixed
&f )
{
o << double( f );
この fixed.h への修正は必要ないはずだ。
% export QTDIR=/home/src/Qt/qt-2.3.4 % export OPIEDIR=/home/src/Qt/qt-2.3.4 % cp /usr/local/qte/bin/uic /home/src/Qt/qt-2.3.4/bin % ./configure -debug % make
実は opie もちゃんとアイコンの再配列に対応してんのね。 横に 4 つ以上並べるためには横幅 420 pixel 以上が必要で、このため QVGA landscape では 3 つしか並ばないけど (core/launcher/launcherview.cpp の LauncherIconView::calculateGrid(ItemTextPos))。![]()