[Mono-osx] How to add mono/dumbarton as a bundled framework

Eoin Norris e.norris at mac.com
Wed Oct 25 05:04:52 EDT 2006

This query is more for people who have used ObjectiveC# or Dumbarton.

I have created an application that runs on my Intel box, talking via  
dumbarton to the mono layer , and back. Mono does the business code  
and all UI is in Cocoa.

I need to get to beta test sometime next week - with external testers  
- and I need to either bite the bullet and bundle the frameworks  
within the bundle ( preferably a universal version) or just do it via  
an installer, installing the frameworks in /Library/Frameworks -  
which is ugly for the Mac.

I thought I had a fair idea how to do this, however I ran into  
dumbarton problems.

The developer documentation from apple suggests that you should build  
the frameworks within the project. This not what I want to do with  
the mono framework, specially as I am unsure how to build it.

So for now I link against the mono  version ( which is intel  
only on my machine) without building it.

So the final build phase is:

1) copy dumbarton.framework and mono.framework to the application  
bundle/contents/frameworks/ directory via a script
2) add -weak-link dumbarton and -weak-link mono to the linker flags
3) Change the mono specific  linker flags ( which i dont really  
understand) to point to the bundled frameworks

i.e. -L"$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Frameworks/ 
Mono.framework/Versions/Current/lib/pkgconfig/../../lib" and
Mono.framework/Versions/Current/lib" -lmono -lm -lgmodule-2.0 - 
lgthread-2.0 -lglib-2.0 -lintl -liconv

So that is the main target sorted I think, but I am not exactly sure.  
However I add Dumbarton as a bundled framework too, but do not build  
it either.

On launching the result is :

dyld: Library not loaded: /Library/Frameworks/Mono.framework/Versions/
   Referenced from: /Library/Frameworks/Dumbarton.framework/Versions/ 
   Reason: image not found

clearly a reference to the mono.framework from dumbarton. This gives  
rise to a circular problem, how do I build the dumbarton framework to  
point to a mono.framework ( weak-linked?) within a bundle which would  
not have been built yet, until after it the dumbarton framework is  
linked ( I think it is clear tha I have probably have to build  
dumbarton as part of my project.)

Thanks in advance

More information about the Mono-osx mailing list