Hi This is using cmake-2.4.2 on a gentoo machine. Gentoo has qt3 installed at /usr/qt/3. QTDIR is set accordingly. Unfortunately this machine also has qt4 installed and /usr/bin/uic is a symlink to uic from qt4.
With the current cmake version both, moc and uic, are apparently catched correctly, however when compiling a .ui file (in a kde3 environment, i.e. using kde3_add_ui_files()) the following happens: [...] Generating bomodelpixmapsgui.h cd /usr/src/boson/code/build/boson/programs && /usr/qt/3/bin/uic -nounload -o /usr/src/boson/code/build/boson/programs/bomodelpixmapsgui.h /usr/src/boson/code/boson/programs/bomodelpixmapsgui.ui -> At this point you can see that the .h file is generated correctly using qt3 uic. Generating bomodelpixmapsgui.cpp cd /usr/src/boson/code/build/boson/programs && /usr/bin/cmake -DKDE_UIC_FILE:STRING=/usr/src/boson/code/boson/programs/bomodelpixmapsgui.ui -DKDE_UIC_CPP_FILE:STRING=/usr/src/boson/code/build/boson/programs/bomodelpixmapsgui.cpp -DKDE_UIC_H_FILE:STRING=/usr/src/boson/code/build/boson/programs/bomodelpixmapsgui.h -P /usr/share/CMake/Modules/kde3uic.cmake -> Here we have a problem: kde3uic.cmake is used. See below. Generating bomodelpixmapsgui.moc.cpp cd /usr/src/boson/code/build/boson/programs && /usr/qt/3/bin/moc /usr/src/boson/code/build/boson/programs/bomodelpixmapsgui.h -o /usr/src/boson/code/build/boson/programs/bomodelpixmapsgui.moc.cpp -> moc works correctly again. [...] Linking CXX executable bomodelpixmaps [...] CMakeFiles/bomodelpixmaps.dir/bomodelpixmaps.o: In function `BoModelPixmaps': /usr/src/boson/code/boson/programs/bomodelpixmaps.cpp:468: undefined reference to `BoModelPixmapsGUI::BoModelPixmapsGUI(QWidget*, char const*, unsigned int)' [...] Linking does not work here, as the generated .cpp file is not complete. kde3uic.cmake is used to generate the .cpp file, which has the following line: EXECUTE_PROCESS(COMMAND uic and thus it'll use "uic", i.e. /usr/bin/uic (from qt4) to generate the .cpp file, instead of /usr/qt/3/bin/uic. In order to fix this problem, I propose to forward QT_MOC_EXECUTABLE to the kde3uic.cmake script and then use that variable, instead of the hardcoded binary name. Just like it is done with the KDE_UIC_CPP and _H and _FILE strings. CU Andi _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
