common-lispasdfquicklisp

How to add a local project to asdf configured by quicklisp


I want to add a local project to the known projects by asdf, but due to the fact that asdf was installed and configured by quicklisp and the *central-registry* points to "#P/home/user/quicklisp/quicklisp/", which contains .lisp files. I do not know how to do it as the manual explains that a symbolic link into the directory would do it, but I do not want to mess around inside quicklisp. (It does work as a hotfix, though!)

Therefore:How to add a local project to asdf (NOT QUICKLISP) which was installed and configured by quicklisp?


Solution

  • If you use Quicklisp you can use the dedicated directory ~/quicklisp/local-projects/ which is scanned before the others directories. To use it, just put your project or a symbolic link.

    (quickproject:make-project "~/quicklisp/local-projects/my-new-website/"
      :depends-on '(restas parenscrit cl-who))
    
    (quickproject:make-project "~/src/lisp/my-cool-gui/"
      :depends-on '(qt))
    
    $ ln -s ~/src/lisp/my-cool-gui ~/quicklisp/local-projects/my-cool-gui  
    

    However, if you really want to configure ASDF do as explained in the documentation .

    For example you can put this:

    (:directory "~/src/lisp/my-project-XYZ/")
    

    in your ~/.config/common-lisp/source-registry.conf.d/my-asdf.conf to add a directory, or

    (:tree "~/src/lisp/")
    

    if you want all the subdirectories to be scanned.