Dear Faré,
- Faré snuerr@tznvy.pbz [2010-12-29 03:59:39 +0100]:
(defun all-steps-for-system (system) (asdf::traverse (make-instance 'asdf:load-op :force t) (asdf:find-system system)))
(defun all-files-for-system (system) (loop :for (operation . component) :in (all-steps-for-system system) :for output-files = (asdf:output-files operation component) :append output-files))
this is a good start: I can take all files in the list up to the file which I actually need. however, this might include files which I don't need. e.g., supposed my system includes file A,B,C and B&C depend on A but not on each other. Your function all-files-for-system will produce A.fas B.fas C.fas or A.fas C.fas B.fas if I want to distribute B and everything it needs (i.e., A+B), I will distribute A+B in the first case and A+C+B in the second one. So, is there a way to get the list of compiled files which are needed to compile just one file? e.g., can I pass a file as the argument to all-files-for-system? (obviously, it will not work for the above code, but maybe there is some other incantation?)
thanks!