Am 05.10.2010 um 10:51 schrieb Kornel Benko: > Am Dienstag, 5. Oktober 2010 schrieb Stephan Witt: >> Am 05.10.2010 um 09:18 schrieb Kornel Benko: >> >>> Am Dienstag, 5. Oktober 2010 schrieb Stephan Witt: >>>> Dear CMake gurus, >>>> >>>> I'm having serious problems with my cmake generated Xcode-project for LyX. >>>> >>>> 1. If I change some .ui file I have to compile the project twice to get >>>> the changes to work. The first build run seems to compile the .ui file >>>> too late. The 2nd run finally compiles the generated sources. >>>> >>>> 2. Today I regenerated the project from scratch. Before doing anything >>>> else I made a change in file src/frontends/qt4/GuiView.cpp. The first >>>> build failed with the error message "moc_GuiView.cpp" not found. Again >>>> a problem with a dependency of the output of the Qt4 helper tool. >>>> >>>> That makes me nervous. Unfortunately I have no time to learn cmake >>>> programming. Please, can someone verify my observations on another platform >>>> and - if possible - fix it? Thanks. >>>> >>>> >>>> Stephan >>>> >>> >>> Ok, its seems to depend on the method selecting them moc_-files. We look at >>> _existing_ files >>> while calling cmake. But they exist only after the _make_ call. >>> >>> This way we are independent of specifying explicitly everything. The >>> disadvantage is now obvious. >> >> That's an explanation for point 2, isn't it? >> >> To verify point 1 you has to touch an .ui file to mimic the normal >> workflow... >> Could you try that please? >> >> >> Stephan > > ... > #cd {source} > #touch ./src/frontends/qt4/ui/PrefPrinterUi.ui > #cd {build} > #make > ... > [ 15%] Generating ui_PrefPrinterUi.h > > > cd /Creatable/BUILD/BuildLyx/src/frontends/qt4 && /usr/bin/uic -tr lyx::qt_ > /usr/src/lyx/lyx-devel/src/frontends/qt4/ui/PrefPrinterUi.ui -o > /Creatable/BUILD/BuildLyx/src/frontends/qt4/ui_PrefPrinterUi.h > cd /Creatable/BUILD/BuildLyx && /usr/bin/cmake -E cmake_depends "Unix > Makefiles" /usr/src/lyx/lyx-devel/development/cmake > /usr/src/lyx/lyx-devel/development/cmake/src/frontends/qt4 > /Creatable/BUILD/BuildLyx /Creatable/BUILD/BuildLyx/src/frontends/qt4 > /Creatable/BUILD/BuildLyx/src/frontends/qt4/CMakeFiles/frontend_qt4.dir/DependInfo.cmake > --color= > > Scanning dependencies of target frontend_qt4 > > > make[2]: Leaving directory `/Creatable/BUILD/BuildLyx' > > > make -f src/frontends/qt4/CMakeFiles/frontend_qt4.dir/build.make > src/frontends/qt4/CMakeFiles/frontend_qt4.dir/build > > make[2]: Entering directory `/Creatable/BUILD/BuildLyx' > > > /usr/bin/cmake -E cmake_progress_report /Creatable/BUILD/BuildLyx/CMakeFiles > 36 > > [ 16%] Building CXX object > src/frontends/qt4/CMakeFiles/frontend_qt4.dir/usr/src/lyx/lyx-devel/src/frontends/qt4/GuiPrefs.cpp.o > > > cd /Creatable/BUILD/BuildLyx/src/frontends/qt4 && /usr/bin/c++ > -DUSE_ENCHANT=1 -DHAVE_GETTEXT -DQT_GENUINE_STR -DLYX_BUILD_QT4_FRONTEND > -Wall -Wunused-parameter -fno-strict-aliasing -Wall -Wunused-parameter -O3 > -DNDEBUG -I/Creatable/BUILD/BuildLyx -I/usr/src/lyx/lyx-devel/src > -I/usr/include/enchant -I/usr/src/lyx/lyx-devel/po > -I/usr/src/lyx/lyx-devel/boost -I/usr/src/lyx/lyx-devel/src/frontends > -I/usr/src/lyx/lyx-devel/src/frontends/qt4 -I/usr/include/Qt > -I/usr/share/qt4/mkspecs/default -I/usr/include/QtCore -I/usr/include/QtGui > -I/usr/include/Qt3Support -I/usr/include/QtAssistant > -I/usr/include/QtDesigner -I/usr/include/QtNetwork -I/usr/include/QtOpenGL > -I/usr/include/QtSql -I/usr/include/QtXml -I/usr/include/QtSvg > -I/usr/include/QtUiTools -I/usr/include/QtTest > -I/Creatable/BUILD/BuildLyx/src/frontends/qt4 > -DBOOST_USER_CONFIG="<config.h>" -o > CMakeFiles/frontend_qt4.dir/usr/src/lyx/lyx-devel/src/frontends/qt4/GuiPrefs.cpp.o > -c /usr/src/lyx/lyx-devel/src/frontends/qt4/GuiPrefs.cpp > > Linking CXX static library ../../../lib/libfrontend_qt4.a > > > ... > > Seems ok.
Here it's like that (after clean build): 1. Change some name in PrefPrinterUi.ui "buddy" => "buddyX" 2. Start Build generates the following (trimmed) output: ========================================================== Build frontend_qt4 of project lyx with configuration Debug PhaseScriptExecution "CMake ReRun" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-101681B90101681B90101681.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-101681B90101681B90101681.sh make: `CMakeFiles/cmake.check_cache' is up to date. PhaseScriptExecution "CMake Rules" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016825E01016825E0101682.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016825E01016825E0101682.sh /Developer/Tools/Qt/uic -tr lyx::qt_ /Users/stephan/cvs/lyx/lyx-devel/src/frontends/qt4/ui/PrefPrinterUi.ui -o /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4/ui_PrefPrinterUi.h PhaseScriptExecution "CMake PostBuild Rules" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016855E01016855E0101685.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016855E01016855E0101685.sh echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4 && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4 -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. ... Build LyX of project lyx with configuration Debug PhaseScriptExecution "CMake ReRun" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/bin/lyx.build/Debug/LyX.build/Script-10173B8A010173B8A010173B.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/bin/lyx.build/Debug/LyX.build/Script-10173B8A010173B8A010173B.sh make: `CMakeFiles/cmake.check_cache' is up to date. PhaseScriptExecution "CMake Rules" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/bin/lyx.build/Debug/LyX.build/Script-10173C27010173C27010173C.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/bin/lyx.build/Debug/LyX.build/Script-10173C27010173C27010173C.sh make: Nothing to be done for `all'. PhaseScriptExecution "CMake PostBuild Rules" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/bin/lyx.build/Debug/LyX.build/Script-10173CD5010173CD5010173C.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/bin/lyx.build/Debug/LyX.build/Script-10173CD5010173CD5010173C.sh echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. ========================================================== 3. Make a change in GuiPrefs.cpp 4. Build again ========================================================== Build frontend_qt4 of project lyx with configuration Debug PhaseScriptExecution "CMake ReRun" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-101681B90101681B90101681.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-101681B90101681B90101681.sh make: `CMakeFiles/cmake.check_cache' is up to date. PhaseScriptExecution "CMake Rules" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016825E01016825E0101682.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016825E01016825E0101682.sh make: Nothing to be done for `all'. CompileC /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Objects-normal/i386/GuiPrefs.o ../../src/frontends/qt4/GuiPrefs.cpp normal i386 c++ com.apple.compilers.gcc.4_2 cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake setenv LANG en_US.US-ASCII /Developer/usr/bin/gcc-4.2 -x c++ -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -DCMAKE_INTDIR="Debug" -DHAVE_GETTEXT -DQT_GENUINE_STR -DLYX_BUILD_QT4_FRONTEND -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -gdwarf-2 -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -F/Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/Debug -F/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks -I/Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/Debug/include -I/Users/stephan/cvs/lyx/lyx-build/lyx-cmake -I/Users/stephan/cvs/lyx/lyx-devel/src -I/usr/local/include -I/Users/stephan/cvs/lyx/lyx-build/SpellChecker.lib/include -I/Users/stephan/cvs/lyx/lyx-devel/boost -I/Users/stephan/cvs/lyx/lyx-devel/src/frontends -I/Users/stephan/cvs/lyx/lyx-devel/src/frontends/qt4 -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtCore.framework/Headers -I/usr/local/Qt4.6/mkspecs/default -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtGui.framework/Headers -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/Qt3Support.framework/Headers -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtNetwork.framework/Headers -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtOpenGL.framework/Headers -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtSql.framework/Headers -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtXml.framework/Headers -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtSvg.framework/Headers -I/usr/include/QtUiTools -I/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks/QtTest.framework/Headers -I/Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4 -I/Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/DerivedSources/i386 -I/Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/DerivedSources -Wall -Wunused-parameter -fno-strict-aliasing -Wall -Wunused-parameter -fno-strict-aliasing -D_DEBUG -DBOOST_USER_CONFIG=<config.h> -c /Users/stephan/cvs/lyx/lyx-devel/development/cmake/../../src/frontends/qt4/GuiPrefs.cpp -o /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Objects-normal/i386/GuiPrefs.o In file included from /Users/stephan/cvs/lyx/lyx-devel/development/cmake/../../src/frontends/qt4/GuiPrefs.h:43, from /Users/stephan/cvs/lyx/lyx-devel/development/cmake/../../src/frontends/qt4/GuiPrefs.cpp:14: /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4/ui_PrefPrinterUi.h: In member function 'void Ui_PrefPrinterUi::setupUi(QWidget*)': /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4/ui_PrefPrinterUi.h:240: error: 'class QLabel' has no member named 'setBuddyX' PhaseScriptExecution "CMake PostBuild Rules" /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016855E01016855E0101685.sh cd /Users/stephan/cvs/lyx/lyx-devel/development/cmake /bin/sh -c /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/lib/lyx.build/Debug/frontend_qt4.build/Script-1016855E01016855E0101685.sh echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4 && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4 -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/qt4/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/src/frontends/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. echo "Depend check for xcode" Depend check for xcode cd /Users/stephan/cvs/lyx/lyx-build/lyx-cmake && make -C /Users/stephan/cvs/lyx/lyx-build/lyx-cmake -f /Users/stephan/cvs/lyx/lyx-build/lyx-cmake/CMakeScripts/XCODE_DEPEND_HELPER.make all.Debug make[1]: Nothing to be done for `all.Debug'. ========================================================== The 2nd build fails. But it should have failed on the 1st run too. Stephan