On Jan 9, 2008 9:23 PM, Bill Hoffman <[EMAIL PROTECTED]> wrote: > David Thulson wrote: > > Hello, > > This is my first post to the cmake mailing list, so I hope it > > works... I downloaded the 2.4.8 RC 11 for OS X and for what it is worth > > it appears to work just as well as 2.4.7. In both 2.4.7 and 2.4.8 RC 11 > > I have some serious issues with the Xcode generator. I just bought my > > first Mac (MacBook Pro running Leopard) a few months ago, so I am > > unfamiliar with Xcode and even OS X in general. However, my project ( > > http://www.crownandcutlass.com) has a unit test framework that has > > worked well for us on several versions and distributions of Linux as > > well as Windows XP. The project is set up as a static library and the > > unit test framework is a separate CMake project that uses that library. > > Code compiled in OS X using the Makefile generator appears to work > > fine. I still have a few quirks to work out for OS X, but overall it is > > very much as I expected. > > > > However, if I use the Xcode generator, I have several issues. FIrst > > off, we have a "config.cpp.in <http://config.cpp.in>" file that is used > > > to generate "config.cpp" as a part of the build. The Xcode project > > includes a reference to a file " config.cpp.rule" which does not exist. > > That generates this warning: > > warning: no rule to process file '/(my > > path)/Protocce/src/config.cpp.rule' of type file for architecture i386 > > > > I can just remove that from the project and it seems to be fine until > > next time I regenerate the project. No big deal, but it is a little > > annoying. The bigger issue is that the resulting binary has issues > > catching exceptions. Some units can catch exceptions fine, but others > > cannot at all. At first, I thought I was having issues due to the > > visibility flags, but I am using a static lib and I believe the > > visibility issues only apply to dynamic libs. The exceptions that I > > cannot catch pass through a "catch(...)" so I believe even with > > visibility issues that at least should catch the exception. > > > > You can see my CMakeFiles here: > > Static lib - > > http://crownandcutlass.svn.sourceforge.net/viewvc/crownandcutlass/trunk/Protocce/src/CMakeLists.txt?revision=1020&view=markup&pathrev=1027 > > <http://crownandcutlass.svn.sourceforge.net/viewvc/crownandcutlass/trunk/Protocce/src/CMakeLists.txt?revision=1020&view=markup&pathrev=1027> > > Unit test app - > > http://crownandcutlass.svn.sourceforge.net/viewvc/crownandcutlass/trunk/Protocce/test/src/CMakeLists.txt?revision=1020&view=markup&pathrev=1027 > > <http://crownandcutlass.svn.sourceforge.net/viewvc/crownandcutlass/trunk/Protocce/test/src/CMakeLists.txt?revision=1020&view=markup&pathrev=1027> > > > > Like I said, the same code base works fine in XP, LInux, and if I use > > the Makefiles it works in OS X. I may just be doing something stupid. > > This is my first CMake project, and like I said I just got a Mac so I > > have never used Xcode outside of this attempt. I am not sure this is > > worth delaying 2.4.8 since the behavior is the same as 2.4.7. Also, I > > have not had time to try building a new CMake binary from CVS, sorry. > > However, I thought I should report what I'm experiencing before too much > > longer. Let me know what I can do to help. > > > > Sounds like flag differences. You should do a make VERBOSE=1 with the > makefile, then use cmakexbuild to build the project file. Find a common > .cxx file being compiled by both, and compare the compile lines. You > can post the compile lines to the list, and I might be able to help. > Either way it is not a regression in RC 11 but perhaps a new bug. > > -Bill >
Here are some example build lines. Using Xcode: CompileC ProtocceTest.build/Debug/Test.build/Objects-normal/i386/EventTest.o /Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/src/EventTest.cpp normal i386 c++ com.apple.compilers.gcc.4_0 cd /Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/bin/osx /Developer/usr/bin/gcc-4.0 -x c++ -arch i386 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -mdynamic-no-pic -DCMAKE_INTDIR="Debug" -fmessage-length=0 -gdwarf-2 -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -O0 -F/Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/bin/osx/Debug -F/Library/Frameworks -F/Users/davidthulson/OgreSDK/Dependencies -F/Users/davidthulson/OISv1_0_Mac_SDK -F/System/Library/Frameworks -I/Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/bin/osx/Debug/include -I/Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/src/../../include -I/Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/src/../include -I/usr/local/include/boost-1_34_1 -I/System/Library/Frameworks/OpenAL.framework/Headers -I/Users/davidthulson/OgreSDK/Dependencies/Ogre.framework/Headers -I/Users/davidthulson/OISv1_0_Mac_SDK/OIS.framework/Headers -I/Users/davidthulson/OgreSDK/Dependencies/CEGUI.framework/Headers -I/Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/bin/osx/ProtocceTest.build/Debug/Test.build/DerivedSources -c /Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/src/EventTest.cpp -o /Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/bin/osx/ProtocceTest.build/Debug/Test.build/Objects-normal/i386/EventTest.o Using Makefiles: /usr/bin/c++ -g -I/Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/src/../../include -I/Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/src/../include -I/usr/local/include/boost-1_34_1 -I/System/Library/Frameworks/OpenAL.framework/Headers -F/Library/Frameworks -I/Users/davidthulson/OgreSDK/Dependencies/Ogre.framework/Headers -I/Users/davidthulson/OISv1_0_Mac_SDK/OIS.framework/Headers -I/Users/davidthulson/OgreSDK/Dependencies/CEGUI.framework/Headers -F/Users/davidthulson/OgreSDK/Dependencies -F/Users/davidthulson/OISv1_0_Mac_SDK -F/System/Library/Frameworks -o CMakeFiles/Test.dir/EventTest.o -c /Users/davidthulson/Documents/Code/crownandcutlass/trunk/Protocce/test/src/EventTest.cpp I am surprised at how different those are, I guess I naively assumed that the Xcode build itself would match the Makefile build exactly since it is the same compiler on the same system. I see that they are using compilers from different locations, though. The "-v" output is the same, but diff tells me the binary files differ. The "-mdynamic-no-pic" also seem interesting. From what the man page says it sounds like that matters for shared libs but I am unsure if it matters for static libs. When the test framework application is linked using Makefiles, it uses "-fPIC" but I do not see that in the Xcode link line. It seems odd that "-fpascal-strings" would be included, but again from the man page it sounds like that allows for additional functionality but may not change default string behavior. I'm not sure though. I have full build logs from both the static lib and unit test application using Xcode projects and Makefiles. I could send those if anyone is interested. Let me know if you want the full logs or if anything jumps out at you. Thanks for the help. David Thulson _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake