Skip to content

Why is the runtime library header not in C include.h ?

Nat! edited this page Sep 24, 2018 · 1 revision

When compiling something when including <mulle-objc-runtime/mulle-objc-runtime.h>, you need to define the configuration defines like __MULLE_TPS__ and so forth. Setting these in an incompatible way is bad and a source of really hard to find bugs.

It doesn't really make sense to compile anything which includes <mulle-objc-runtime/mulle-objc-runtime.h> outside of Objective-C (unless you're not doing C or Objective-C but thats a different line of thinking).

Why ?

Because you get the proper settings of __MULLE_TPS__ for free and consistent, when you are #importing the target Foundation (say MulleObjC) with mulle-clang. You can keep your code C as is, but put into an .m file. The resulting .o file is the same as if it was produced by a C compiler, unless you used Objective-C functionality.