[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:51735] Re: Qtのテスティングフレームワークqtestlibについて
長部です。
返信ありがとうございます。
On Fri, 23 Jan 2009 23:52:47 +0900
Yuya Nishihara <yuya@xxxxxxxx> wrote:
> 西原です。
> qmake -project "QT += testlib" でプロジェクトファイルに QT += testlib
> が追加されるところまではOKですか?
OKです。
> > です。qmakeのバージョンは同じで、Qtライブラリのバージョンがわたしのは低いですね。
> > 西原さんのQtライブラリのバージョンが高いということは、lennyをお使いなのでしょう?
>
> sid + experimental (KDE4.1関係) です。
VMware Server仮想マシンにlennyをインストールして、テストしたところ、qmakeの実行で、
MakefileのLIBSに -lQtTestがちゃんと追加されました。lennyでは問題ないようです。
>
> $ dpkg -l libqt4-dev
> ...
> ii libqt4-dev 4.4.3-2 Qt 4 development files
>
> 次のファイルに QT += testlib だったら QtTest を追加しそうな記述がありました。
> /usr/share/qt4/mkspecs/features/qt.prf
> --
> else:isEqual(QTLIB, testlib):qlib = QtTest
> --
> 長部さんのところではどうでしょうか?
etchでは、/usr/share/qt4/mkspecs/features/qt.prfには、この記述がないですね。
記述を追加して、qmakeを実行しましたが、MakefileのLIBSに -lQtTestは追加されません。
念のため、システムを再起動しても行いましたが、ダメでした。
次に、lennyのQtバージョン 4.2.1に対応するソースアーカイブ qt-x11-opensource-src-4.2.1.tar.gz
をダウンロードして、mkspecs/featuresディレクトリで
$ grep testlib *
を実行したところ、
qt.prf:TMPLIBS = webkit phonon dbus testlib script svg qt3support sql xmlpatterns xml opengl gui network core
qt.prf: else:isEqual(QTLIB, testlib):qlib = QtTest
qt.prf: isEqual(QTLIB, testlib):CONFIG += console
となりました。そこで、etchで、/usr/share/qt4/mkspecs/features/qt.prfファイルで、
上記の内容を反映させたところ、qmakeで、MakefileのLIBSに -lQtTestが追加され、
問題が解決されました。etchではqteslibの実装が不完全なようですね。
以下に、/usr/share/qt4/mkspecs/features/qt.prfへのパッチを載せます。
*** qt.prf.org 2009-01-24 10:47:34.000000000 +0900
--- qt.prf 2009-01-24 11:04:02.000000000 +0900
***************
*** 22,28 ****
win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt
# As order does matter for static libs, we reorder the QT variable here
! TMPLIBS = svg qt3support sql xml opengl gui network core
for(QTLIB, $$list($$TMPLIBS)) {
contains(QT, $$QTLIB): QT_ORDERED += $$QTLIB
}
--- 22,28 ----
win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt
# As order does matter for static libs, we reorder the QT variable here
! TMPLIBS = testlib svg qt3support sql xml opengl gui network core
for(QTLIB, $$list($$TMPLIBS)) {
contains(QT, $$QTLIB): QT_ORDERED += $$QTLIB
}
***************
*** 53,58 ****
--- 53,59 ----
else:isEqual(QTLIB, canvas):qlib = QtCanvas
else:isEqual(QTLIB, qt3support):qlib = Qt3Support
else:isEqual(QTLIB, svg):qlib = QtSvg
+ else:isEqual(QTLIB, testlib):qlib = QtTest
else:message("Unknown QT: $$QTLIB"):qlib =
!isEmpty(qlib) {
target_qt:isEqual(TARGET, qlib) {
***************
*** 65,70 ****
--- 66,72 ----
}
isEqual(QTLIB, opengl):CONFIG += opengl
isEqual(QTLIB, qt3support):DEFINES *= QT3_SUPPORT
+ isEqual(QTLIB, testlib):CONFIG += console
qtAddLibrary($$qlib)
}