Hey ho! Mathieu Othacehe <m.othac...@gmail.com> skribis:
> That would look like: > > (if target > (with-target target > (compile-file #$file #:output-file #$output > #:env env)) > (compile-file #$file #:output-file #$output > #:env env)) > > > Now, the tricky part is the value of target, because > #$(%current-target-system) might not be correct in that context. Yes, that brings us back to <https://issues.guix.gnu.org/issue/29296>. Time flies! But now we really need to address it. Jan Nieuwenhuizen <jann...@gnu.org> skribis: > + (let ((target (%current-target-system))) > + (with-extensions (list shepherd) > + (computed-file (string-append (basename (scheme-file-name file) ".scm") > + ".go") > + #~(begin The problem here is that ‘%current-target-system’ is not resolved in the right context. Though in practice, it’s “good enough” when using ‘guix system build --target’ though, because ‘%current-target-system’ is bound once and for all at the beginning. What about applying this patch, but adding a FIXME comment above ‘let’ pointing at <https://bugs.gnu.org/29296>? Also, you can avoid duplicating the ‘compile-file’ call by writing it like this: (with-target #$(or target #~%host-type) (compile-file …)) Thanks! Ludo’.