git.fiddlerwoaroof.com
asdf-translation.lisp
ff1c84c8
 (in-package :cl-user)
4d63beae
 (defun homedir-translation (input dd)
ff1c84c8
   (declare (ignorable dd))
   (format t "~&input ~s ~s~%" input dd)
4d63beae
   (merge-pathnames
    (make-pathname :directory
                   (list* :relative
                          "build-cache"
                          "homedir"
                          (cdr
                           (pathname-directory
                            (parse-namestring
                             (enough-namestring input
                                                (user-homedir-pathname))))))
                   :defaults input)
    (merge-pathnames "asdf-corral/Contents/Resources/"
                     (user-homedir-pathname))))
ff1c84c8
 (defun in-homedir ()
   (merge-pathnames (make-pathname :directory (list :relative :wild-inferiors)
                                   :name :wild
                                   :type :wild
                                   :version :wild)
                    (user-homedir-pathname)))
4d63beae
 
 (defun do-translation (input dd)
ff1c84c8
   (declare (ignorable dd))
4d63beae
   (merge-pathnames
    (make-pathname :directory
                   (list :relative
                         "build-cache"
                         (format nil "~{~a~^-~}"(cdr (pathname-directory input))))
                   :defaults input)
    (merge-pathnames "asdf-corral/Contents/Resources/"
                     (user-homedir-pathname))))
 
ff1c84c8
 (defun dylib-translation (input dd)
   (declare (ignorable dd))
   (format t "~&NOTICE ME: input ~s dd ~s~%" input dd)
   (merge-pathnames
    (make-pathname :directory
                   (list :relative
                         (format nil "~{~a~^-~}"(cdr (pathname-directory input))))
                   :defaults input)
    (merge-pathnames "asdf-corral/Contents/Library/"
                     (user-homedir-pathname))))
 
 (defun is-dylib ()
4d63beae
   (merge-pathnames (make-pathname :directory (list :relative :wild-inferiors)
                                   :name :wild
ff1c84c8
                                   :type "dylib"
4d63beae
                                   :version :wild)
                    (user-homedir-pathname)))
 
 (asdf:initialize-output-translations
  `(:output-translations
ff1c84c8
    #+(or):ignore-inherited-configuration
    :inherit-configuration
    #+(or):disable-cache
    (,(is-dylib) (:function dylib-translation))
    #+(or)("/" (:function do-translation))))
4d63beae
 
 (load "~/quicklisp/setup.lisp")
 
ff1c84c8
 (eval-when (:execute)
   (trace dylib-translation))
4d63beae
 
ff1c84c8
 #+nil
4d63beae
 (ql:quickload :data-lens)