hvengel
25th February 2007, 02:09
I am just starting to port my app from qt3 to qt4. I have set up the project file to use the qt3 compatibility libraries as an initial step to get the port up and running. Then I intend to convert the ui files. I am running into a problem with the qmake generated make file only running uic3 against the main dialog ui file and no ohers. That is I only get the header file for one of my ui files and none of the others are processed.
I think the problem might be related to how I have the directories structured since I have each dialog in it own directory (each of these directories has the ui file along with the .h and .cpp files for the derived classes). All of these are explicitly listed in the project file and the resulting qmake generated make file worked as expected with qt3 (it would uic and moc all of the files that needed this). In addition the the project file has the correct locations for the local include path to pick up all of the header files but the qmake generated make file is missing this information and I had to add this by hand to get far enough to find this issue. What do I need to do to my project file to get qmake to generate a working make file?
Normally I have been using scons as my build system and I use the qt project file as part of my localization process and I periodically test it to make sure it is in sync with the current project image. But migrating the scons build scripts is another porting issue that I want to hold off on until I get the QT port working. Again I tested qmake generated make file before making any modification for the port and before running qt3to4 against the project.
Here is my project file:
TEMPLATE = app
LANGUAGE = C++
CONFIG += qt warn_on debug
LIBS += -llcms -ltiff -L/usr/lib -lqassistantclient -lvigraimpex
INCLUDEPATH += src/liblprof src/argyll/h src/argyll/numlib src/argyll/rspl src/libqtlcmswidgets src/wwfloatspinbox
QT+=qt3support
HEADERS += src/liblprof/lcmsprf.h \
src/lprofqt/lprofmain.h \
src/monqt/monitorvalues.h \
src/checkerqt/profilechecker.h \
src/IDqt/profileid.h \
src/parmsqt/profileparms.h \
src/gammaqt/setgamma.h \
src/reference_inst_qt/installreffile.h \
src/argyll/h/sort.h \
src/argyll/numlib/dhsx.h \
src/argyll/numlib/dnsq.h \
src/argyll/numlib/ludecomp.h \
src/argyll/numlib/numlib.h \
src/argyll/numlib/numsup.h \
src/argyll/numlib/powell.h \
src/argyll/numlib/rand.h \
src/argyll/numlib/sobol.h \
src/argyll/numlib/svd.h \
src/argyll/numlib/zbrent.h \
src/argyll/rspl/rev.h \
src/argyll/rspl/rspl.h \
src/argyll/rspl/rspl_imp.h \
src/libqtlcmswidgets/qtlcmswidgets.h \
src/wwfloatspinbox/wwfloatspinbox.h
SOURCES += src/liblprof/cmshull.c \
src/liblprof/cmslm.c \
src/liblprof/cmslnr.c \
src/liblprof/cmsmatn.c \
src/liblprof/cmsmkmsh.c \
src/liblprof/cmsmntr.c \
src/liblprof/cmsoutl.c \
src/liblprof/cmspcoll.c \
src/liblprof/cmsprf.c \
src/liblprof/cmsreg.c \
src/liblprof/cmsscn.c \
src/liblprof/cmssheet.c \
src/libqtlcmswidgets/qtlcmswidgets.cpp \
src/lprofqt/lprofmain.cpp \
src/lprofqt/main.cpp \
src/monqt/monitorvalues.cpp \
src/checkerqt/profilechecker.cpp \
src/IDqt/profileid.cpp \
src/parmsqt/profileparms.cpp \
src/checkerqt/qtcietonge.cpp \
src/checkerqt/qtdrawcurve.cpp \
src/gammaqt/setgamma.cpp \
src/reference_inst_qt/installreffile.cpp \
src/argyll/numlib/dhsx.c \
src/argyll/numlib/dnsq.c \
src/argyll/numlib/ludecomp.c \
src/argyll/numlib/numsup.c \
src/argyll/numlib/powell.c \
src/argyll/numlib/rand.c \
src/argyll/numlib/sobol.c \
src/argyll/numlib/svd.c \
src/argyll/numlib/zbrent.c \
src/argyll/rspl/opt.c \
src/argyll/rspl/rev.c \
src/argyll/rspl/rspl.c \
src/argyll/rspl/scat.c \
src/argyll/rspl/spline.c \
src/wwfloatspinbox/wwfloatspinbox.cpp
#The following line was changed from FORMS to FORMS3 by qt3to4
FORMS3 = src/lprofqt/lprofmainbase.ui \
src/monqt/monitorvaluesbase.ui \
src/checkerqt/profilecheckerbase.ui \
src/IDqt/profileidbase.ui \
src/parmsqt/profileparmsbase.ui \
src/reference_inst_qt/installreffilebase.ui \
src/gammaqt/setgammabase.ui
IMAGES = src/images/Norman_Koren-small.png \
src/images/lcms.png \
src/images/blue-grad.png \
src/images/green-grad.png \
src/images/orange-grad.png \
src/images/yellow-grad.png \
src/images/Norman_Koren-big.png
unix {
UI_DIR = .ui
MOC_DIR = .moc
OBJECTS_DIR = .obj
}
#The following line was inserted by qt3to4
QT += assistant
#The following line was inserted by qt3to4
CONFIG += uic3
As you can see the FORUMS3 section lists 7 ui files. Only the first one on the list is being processed. I double checked to make sure that I was using the correct qmake (IE. from qt4).
The next post will have the qmake generated make file:
I think the problem might be related to how I have the directories structured since I have each dialog in it own directory (each of these directories has the ui file along with the .h and .cpp files for the derived classes). All of these are explicitly listed in the project file and the resulting qmake generated make file worked as expected with qt3 (it would uic and moc all of the files that needed this). In addition the the project file has the correct locations for the local include path to pick up all of the header files but the qmake generated make file is missing this information and I had to add this by hand to get far enough to find this issue. What do I need to do to my project file to get qmake to generate a working make file?
Normally I have been using scons as my build system and I use the qt project file as part of my localization process and I periodically test it to make sure it is in sync with the current project image. But migrating the scons build scripts is another porting issue that I want to hold off on until I get the QT port working. Again I tested qmake generated make file before making any modification for the port and before running qt3to4 against the project.
Here is my project file:
TEMPLATE = app
LANGUAGE = C++
CONFIG += qt warn_on debug
LIBS += -llcms -ltiff -L/usr/lib -lqassistantclient -lvigraimpex
INCLUDEPATH += src/liblprof src/argyll/h src/argyll/numlib src/argyll/rspl src/libqtlcmswidgets src/wwfloatspinbox
QT+=qt3support
HEADERS += src/liblprof/lcmsprf.h \
src/lprofqt/lprofmain.h \
src/monqt/monitorvalues.h \
src/checkerqt/profilechecker.h \
src/IDqt/profileid.h \
src/parmsqt/profileparms.h \
src/gammaqt/setgamma.h \
src/reference_inst_qt/installreffile.h \
src/argyll/h/sort.h \
src/argyll/numlib/dhsx.h \
src/argyll/numlib/dnsq.h \
src/argyll/numlib/ludecomp.h \
src/argyll/numlib/numlib.h \
src/argyll/numlib/numsup.h \
src/argyll/numlib/powell.h \
src/argyll/numlib/rand.h \
src/argyll/numlib/sobol.h \
src/argyll/numlib/svd.h \
src/argyll/numlib/zbrent.h \
src/argyll/rspl/rev.h \
src/argyll/rspl/rspl.h \
src/argyll/rspl/rspl_imp.h \
src/libqtlcmswidgets/qtlcmswidgets.h \
src/wwfloatspinbox/wwfloatspinbox.h
SOURCES += src/liblprof/cmshull.c \
src/liblprof/cmslm.c \
src/liblprof/cmslnr.c \
src/liblprof/cmsmatn.c \
src/liblprof/cmsmkmsh.c \
src/liblprof/cmsmntr.c \
src/liblprof/cmsoutl.c \
src/liblprof/cmspcoll.c \
src/liblprof/cmsprf.c \
src/liblprof/cmsreg.c \
src/liblprof/cmsscn.c \
src/liblprof/cmssheet.c \
src/libqtlcmswidgets/qtlcmswidgets.cpp \
src/lprofqt/lprofmain.cpp \
src/lprofqt/main.cpp \
src/monqt/monitorvalues.cpp \
src/checkerqt/profilechecker.cpp \
src/IDqt/profileid.cpp \
src/parmsqt/profileparms.cpp \
src/checkerqt/qtcietonge.cpp \
src/checkerqt/qtdrawcurve.cpp \
src/gammaqt/setgamma.cpp \
src/reference_inst_qt/installreffile.cpp \
src/argyll/numlib/dhsx.c \
src/argyll/numlib/dnsq.c \
src/argyll/numlib/ludecomp.c \
src/argyll/numlib/numsup.c \
src/argyll/numlib/powell.c \
src/argyll/numlib/rand.c \
src/argyll/numlib/sobol.c \
src/argyll/numlib/svd.c \
src/argyll/numlib/zbrent.c \
src/argyll/rspl/opt.c \
src/argyll/rspl/rev.c \
src/argyll/rspl/rspl.c \
src/argyll/rspl/scat.c \
src/argyll/rspl/spline.c \
src/wwfloatspinbox/wwfloatspinbox.cpp
#The following line was changed from FORMS to FORMS3 by qt3to4
FORMS3 = src/lprofqt/lprofmainbase.ui \
src/monqt/monitorvaluesbase.ui \
src/checkerqt/profilecheckerbase.ui \
src/IDqt/profileidbase.ui \
src/parmsqt/profileparmsbase.ui \
src/reference_inst_qt/installreffilebase.ui \
src/gammaqt/setgammabase.ui
IMAGES = src/images/Norman_Koren-small.png \
src/images/lcms.png \
src/images/blue-grad.png \
src/images/green-grad.png \
src/images/orange-grad.png \
src/images/yellow-grad.png \
src/images/Norman_Koren-big.png
unix {
UI_DIR = .ui
MOC_DIR = .moc
OBJECTS_DIR = .obj
}
#The following line was inserted by qt3to4
QT += assistant
#The following line was inserted by qt3to4
CONFIG += uic3
As you can see the FORUMS3 section lists 7 ui files. Only the first one on the list is being processed. I double checked to make sure that I was using the correct qmake (IE. from qt4).
The next post will have the qmake generated make file: