26 lines
1.8 KiB
Org Mode
26 lines
1.8 KiB
Org Mode
#+title: Collaboration
|
|
|
|
Imugi can be easily built without any local chicken scheme installation by using the devcontainer spec included in this repository.
|
|
|
|
* Using the Devcontainers CLI
|
|
First, run ~npm install -g @devcontainers/cli~ to install the devcontainers CLI tool.
|
|
|
|
This requires a working Docker installation, the steps to which can be found [[https://docs.docker.com/engine/install/][here]]. Also assign your user to the ~docker~ group to avoid having to use ~sudo~ with docker and devcontainer commands.
|
|
|
|
Once both of the above are installed, the devcontainer can be started with ~devcontainer up --workspace-folder .~ in the repository root. This will build a Debian Trixie container including all Chicken dependencies, and also build Raylib as a static library. We prefer to build with static linking in order to make distribution less annoying.
|
|
|
|
Once the devcontainer is running, enter it with ~devcontainer exec --workspace-folder . bash~. This will put you at the repository root.
|
|
|
|
* Dependencies
|
|
The ~deps.lock~ file contains the versions of eggs used in this repository. They can be installed with ~chicken-install -from-list deps.lock~.
|
|
|
|
* Collaborating with Emacs
|
|
The ~.dir-locals.el~ file automatically sets the Geiser Scheme implementation to Chicken, for any Scheme source file in this directory.
|
|
|
|
* Running Tests & Samples
|
|
From the ~build~ directory, run ~csm -program <module> ..~ to build a particular module, the ~./<module>~ to run it.
|
|
|
|
Any module defined in the ~samples~ or ~test~ directory can be run like this, either to show an example game or to run tests for a particular engine module.
|
|
|
|
If you are running the devcontainer on an X11 Linux host, running the compiled module should forward the window to your hosts X11 display. YMMV for Wayland and non-Linux hosts.
|
|
|