On Fri, Aug 6, 2010 at 1:24 AM, Stelian Ionescu <sione...@cddr.org> wrote:
>
> Try something like this:
>
> (defmethod asdf:perform ((op asdf:compile-op) (c protobuf-source-file))
>  (let* ((output-defaults (pathname (car (asdf:output-files op c))))
>         (generated-source-file (make-pathname :name (pathname-name
> (asdf:component-pathname c))
>                                               :type "lisp"
>                                               :defaults output-defaults)))
>    ))
>
> You need to call OUTPUT-FILES which will apply the output translations
> you've configured


Your suggestion does work, but it's a bit mysterious.  Note that you didn't
redefine INPUT-FILES for components of type PROTOBUF-SOURCE-FILE
and the suggestion involves copying PERFORM code from asdf.lisp into my
protobuf.asd file.

Also, your change appears to just affect compilation, but due to ASDF's
handling of so called "self dependencies" (at least I think this is the
cause)
your change also magically makes LOAD-OP function correctly.

I agree with Robert Goldman that it would be nice to pin down the semantics
of INPUT-FILES and OUTPUT-FILES.  Maybe the self-dependency code
can be eliminated or made more general.  Right now I think it's a special
case just used to make LOAD-OP capable of doing two things,
compiling and then loading the compiled products.

In any case, thanks for the suggestion.  It does indeed solve my problem.

bob
_______________________________________________
asdf-devel mailing list
asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel

Reply via email to