In-tree libraries vs. hard-to-compile dependencies

By farcaller July 1st, 2008

I’ve tried to make an in-tree copy of RegexKit. It mostly compiles well failing on:

Linking CXX shared library libFOW.dylib
Undefined symbols:
  ".objc_class_name_NSShadow", referenced from:
      literal-pointer@__OBJC@__cls_refs@NSShadow in RKRegex.m.o
  "_NSShadowAttributeName", referenced from:
      _NSShadowAttributeName$non_lazy_ptr in RKRegex.m.o
  "_NSUnderlineColorAttributeName", referenced from:
      _NSUnderlineColorAttributeName$non_lazy_ptr in RKRegex.m.o
  ".objc_class_name_NSColor", referenced from:
      literal-pointer@__OBJC@__cls_refs@NSColor in RKRegex.m.o
  "_NSUnderlineStyleAttributeName", referenced from:
      _NSUnderlineStyleAttributeName$non_lazy_ptr in RKRegex.m.o
  "_NSKernAttributeName", referenced from:
      _NSKernAttributeName$non_lazy_ptr in RKRegex.m.o
  "_autoreleasedMalloc", referenced from:
      -[RKRegex rangesForCharacters:length:inRange:options:] in RKRegex.m.o
  "_NSToolTipAttributeName", referenced from:
      _NSToolTipAttributeName$non_lazy_ptr in RKRegex.m.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

As you might know, RegexKit depends on AppKit, and also some weird thing called “_autoreleasedMalloc”. It might be possible to stip all that out from RegexKit, but that would mean maintaining own fork of RegexKit. That reminds me of KDE story about SCons.
Choosing to just depend on RegexKit sounds even more bad. I think there are 0% linux users that would be able to build RegexKit with Cocotron (not to mention the fact that there’s no way to build Cocotron in linux at all yet).
FOW might be a good concept, but it’s nearly impossible to use Objective-C runtime outside of MacOS/Cocoa world. GNUstep is too big and weird to be considered as alternative, and it’s in fact not Cocoa but OpenStep implementation.
I’m still thinking if this project has any future. Do you have any ideas?

This entry was posted on Tuesday, July 1st, 2008 at 20:15 and is filed under Ideas. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply