clog/QLOT.md
2024-07-07 17:27:03 -04:00

71 lines
1.9 KiB
Markdown
Vendored

Using QLOT with CLOG Builder
QLOT creates a local quicklisp for your project. The following instructions
will show you how to take a CLOG project (or any Common Lisp project) and
convert it for use with qlot.
https://github.com/fukamachi/qlot
NOTE - qlot does not appear to work with Windows
After you have created a CLOG project, copy it to its own projects directory,
do not use ~/common-lisp or other project directory already in use by your
global quicklisp install.
for this example I created ~/projects and then move my CLOG project qtest to
~/projects/qtest
cd ~/projects/qtest
Create a file call qlfile with:
```
dist http://dist.ultralisp.org/
```
(I am using the REPL method for maximum compatability, if you alredy know
qlot you can use the command line tool if you have installed it.)
run sbcl and type:
```
(ql:quickload :qlot)
(setf qlot:*project-root* (uiop:getcwd))
(qlot:init (uiop:getcwd))
(qlot:install)
```
To work on your project using your qlot quicklisp, cd to your dir (example
~/projects/qtest ) and run
sbcl with:
```
(ql:quickload :qlot)
(setf qlot:*project-root* (uiop:getcwd))
(qlot:init (uiop:getcwd))
(pushnew (uiop:getcwd) ql:*local-project-directories* :test #'equalp)
```
You are now in your private qlot world for your project, so to run the CLOG
builder do:
```
(ql:quickload :qtest/tools)
(clog-tools:clog-builder :project :qtest)
```
To update your local quicklisp use (ql:update-all-dist) or in CLOG Builder
Options -> Update CLOG Builder
If you used qlot and or added directly to the qlfile use (qlot:update :name-of-system)
To make things easier create a file say - ql and chmod 775
```
sbcl --eval "(ql:quickload :qlot)" \
--eval "(setf qlot:*project-root* (uiop:getcwd))" \
--eval "(qlot:init (uiop:getcwd))" \
--eval "(pushnew (uiop:getcwd) ql:*local-project-directories* :test #'equalp)" \
--eval "(ql:quickload :qtest/tools)" \
--eval "(clog-tools:clog-builder :project :qtest)"
```