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

Reply via email to