On Dec 15, 2009, at 10:03 AM, Clinton Stimpson wrote:
On Dec 15, 2009, at 2:31 AM, Werner Smekal wrote:
Hi Michael,
On 12/15/09 9:58 AM, Michael Wild wrote:
Hi
What is the install-name of SDL.framewor/SDL? What does
otool -L ~/Library/Frameworks/SDL.framework/SDL
tell you? I suspect it is something like
/Users/smekal/Library/Frameworks/SDL.framework/SDL:
@executable_path/../Frameworks/SDL.framework/Versions/A/SDL
(compatibility version 1.0.0, current version 1.0.0)
....
right? The second line is the one the linker uses to embed as a
reference into your executable. The linker doesn't use it's actual
location, but the library's install name.
Yes that's right. It was actually 5 minutes after I wrote my email,
that I remembered somewhere back in my head, that the library
itself has this reference, so this explains, why the executable
also has this reference.
Not sure what's going wrong in the CMake part, though...
I assume BundleUtilties uses this reference to copy the libraries
into the app - if the library itself has a "wrong" reference it's
not able to find the library, or?
BundleUtilities/GetPrerequisites will print a warning message if the
framework's id isn't where its really at.
But a few lines down after printing that warning message, it checks
to see if it can find it in ~/Library/Frameworks.
So I suspect its working, but the messages are misleading.
Perhaps the SDL installation shouldn't be setting framework ids like
that.
Clint
I think the SDL developers are just being a bit "too" slick. They are
setting up SDL for Xcode development where typically you would link to
the SDL and then have a "Copy Files Phase" where you copy the
framework into the Application Bundle that resides in the build
directory. All the tutorials regarding Xcode and embedding frameworks
have you do it this way). So the SDL folks made the reasonable
assumption that one would be using Xcode on OS X and they could do it
this way.
This probably explains why OS X developers coming to CMake keep
wanting to copy the framework into the App bundle at build time and
not wait for "Install" time like CMake basically has us doing now.
Just a different way of accomplishing the same thing but it does come
with caveats.
The OP will probably have to add a custom_command to copy the SDL
framework into the .app bundle after building. Then the OP should
verify that when the .app package gets copied to the install location
that the entire .app package is copied, which will bring with it the
SDL framework and so BundleUtilities will just basically skip past the
SDL fixup/copy because it is already "correct".
Just my thoughts.
_________________________________________________________
Mike Jackson mike.jack...@bluequartz.net
BlueQuartz Software www.bluequartz.net
Principal Software Engineer Dayton, Ohio
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake