On 10/15/10 Oct 15 -11:57 AM, Nikodemus Siivola wrote:
On 15 October 2010 19:49, Robert Goldman rpgoldman@sift.info wrote:
Ok, I'll put this on my TODO: I think :DEPENDS-ON ((:FEATURES ...)) would be a nice way to indicate that something is eg. only meant for SBCL on Linux, or whatever.
I'm going a little by memory, but IIRC the officially approved way of doing this in ASDF is very cumbersome.
You indicate a features-based dependency and then you have to set up an error-handler (well, effectively an error handler), using :if-component-dep-fails to say "and if this dependency fails, ignore it."
I've done this, and it works fine -- from eg. SB-CGA:
(:module "ports" :if-component-dep-fails :try-next :components ((:file "sbcl" :in-order-to ((compile-op (feature :sbcl)))) (:file "ccl" :in-order-to ((compile-op (feature :ccl))))))
The :DEPENDS-ON for the whole system in this case is intended for system introspection for things like Quicklisp -- or that's my idea at least.
Cheers,
-- Nikodemus
Right. But, honestly, I find
(:module "ports" :components ( #+sbcl (:file "sbcl") #+ccl (:file "ccl")) ...)
a lot easier to read...
best r