Nat! bio photo


Senior Mull

Twitter Github Twitch

The upcoming mulle-objc 0.22.1 release (IV): Supermarks

I finally found the time to implement the last feature as specified in the “master-plan”:


As you may or may not know, mulle-sde uses a tagging mechanism called “marks” for dependencies. For example the marks for the two dependencies mulle-c11 and farmhash-c for mulle-data looks like this:

address         marks
-------         -----
mulle-c11       no-all-load,no-cmake-inherit,no-import,no-link,no-recurse,no-singlephase
src/farmhash-c  no-all-load,no-build,no-clobber,no-header,no-import,no-link,no-readwrite,no-share,no-share-shirk

A mark directly steers the code generation or the way a dependency is fetched and linked. Though the meaning of the marks is documented, parsing them mentally is still burdensome. Supermarks are macros, that combine one or more marks. With output as supermarks the picture becomes clearer:

address         supermarks
-------         ----------
mulle-c11       C,TreeLeaf
src/farmhash-c  Amalgamated

Here you just have to know that an amalgamated dependency is source code, that is embedded in your project, but that also resides in a sibling project.

Given the power of the mulle-sourcetree, that is about as easy as it can get :)

The end of mulle-sde development ?

So for what it was originally intended, I see mulle-sde as feature complete. Of course there will be bugs fixes and code refinements. But for the foreseeable future I would prefer to not touch it and concentrate on mulle-objc exclusively now.

Post a comment

All comments are held for moderation; basic HTML formatting accepted.

E-mail: (not published)