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
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake