Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 2.15 KB

README.md

File metadata and controls

60 lines (45 loc) · 2.15 KB

raylib-guile

raylib-guile is birthdayware written for my good friend Jacob Reckhard's birthday 🥳. it provides direct GNU guile bindings for raylib. if you're not Jacob, don't worry: you can still use it under the terms of the zlib license, the same one used by raylib.

setting the raylib version

raylib-guile will generally only build when the VERSION file is set to the same version of raylib you have installed. VERSION can contain any git ref to the raylib repo, like master or any specific commit id.

building and installing

prerequisites:

  • guile 3.0 or later
  • raylib built with shared library support
make
sudo make install

note: make will download the master-brach version of raylib's api description. if this causes errors you should change the VERSION file to the version of raylib you have installed. right now all tagged versions xml files are out of date, and you might need to generate them yourself.

generated API

all supported functions are exported as is in the (raylib) library and take equivalant arguments. pointer/value arguments are equivalent for structs.

the following accessors are generated for every struct type:

(make-{struct} field1 field2 ...)
({struct}-field obj)
({struct}-set-field! obj value)

examples

you can see some examples in the examples/ directory. they are directly translated from raylib's examples, and as such may not represent very elegant scheme programming.

to Jacob, my best programming buddy

happy birthday! one day at a party you were complaining about how there were raylib bindings for like every language except guile, and you joked that if i was looking for something to do, i should write some. so i did. along with the rights granted to you by zlib license, i hearby grant you a special birthday boy license, with the following terms:

  1. if you want, i will add you as a contributor to this repo, and you may have complete creative control over this project.
  2. you may relicense this program under any license, even weird ones you made up.
  3. one year of platinum-executive-enterprise support.