[CMake] Framework

E. Wing ewmailing at gmail.com
Wed Sep 12 10:57:47 EDT 2007


So, life is slightly trickier since you are using a PrivateFramework.
We never requested the CMake folks handle this explicitly, though
there may already be enough built-in flexibility to handle this.

For the library:

FIND_LIBRARY(CHUD_LIBRARY
    NAMES CHUD
    PATHS /System/Library/PrivateFrameworks
)

The one thing that worries me is if you combine this with an SDK (like
the 10.4u SDK). We had a serious bug awhile back where CMake
explicitly listed -F/System/Library/Frameworks which triggered
mysterious gcc problems when also specifying an SDK. Apple wants to
remap the /System stuff to the SDKs in this case and caused some weird
gcc internal conflict. CMake now has a workaround to avoid doing the
-F/System/Library/Frameworks and let the SDK do the driving, but I
don't know if this extends to PrivateFrameworks. So if you are using
an SDK, and assuming things don't just work, you may need to list the
path to the PrivateFrameworks in the SDK you are using instead of
/System. This will cost you some generality if you are trying to make
a stand-alone Find module that works on all Macs.

For the headers, I can't find any CHUD headers in my framework on my
system. Strange...
Anyway, if they are in the usual 'Headers' directory (symlink) in the
CHUD.framework, then this should work:

FIND_PATH(CHUD_INCLUDE_DIR CHUD/CHUD.h
    /System/Library/PrivateFrameworks
)

This assumes there is a header called CHUD.h and you are including in
your code like:
#include <CHUD/CHUD.h>

Also, change the /System path to the one in the SDK as needed like above.


-Eric




On 9/10/07, James Bigler <bigler at cs.utah.edu> wrote:
> I want to use a framework for the includes and library linkage.
> FIND_LIBRARY seems like it will work for the library, but what about
> the include.  Should I use a FIND_FILE followed by a
> INCLUDE_DIRECTORIES.
>
> I want to link against the Apple profiling library found in /System/
> Library/PrivateFrameworks/CHUD.framework .
>
> Thanks,
> James
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>


More information about the CMake mailing list