Search code examples
c++macosboostframeworksboost-build

Link to OS X framework with boost build


How do I link to an OS X framework using boost build? I have tried the following (in Jamroot):

frameworks_directory = "/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/" ;

lib CoreFoundation
:
: <file>$(frameworks_directory)"CoreFoundation.framework/CoreFoundation"
:
: <include>$(frameworks_directory)"CoreFoundation.framework/Headers/" ;

exe Test : main.cpp CoreFoundation ;

However this produces the following error (shortened for space):

error: target { /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation. } has no type

I presume this is because the CoreFoundation file does not have an extension, and so boost-build is unable to deduce its type. Is there any way to explicitly specify the type of a file, or to in some other way link to a framework on OS X ?


Solution

  • The simple way:

    exe Test : main.cpp : <framework>CoreFoundation ;
    

    This is of course assuming you are using the "darwin" toolset. And have set it up correctly such that it knows about all the SDKs you have installed.