Compare commits
5 commits
62c821e87b
...
c0f8635b0b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0f8635b0b | ||
|
|
a6fa07ff26 | ||
|
|
d82d387f27 | ||
|
|
0a21a14033 | ||
|
|
9be1526cb1 |
6 changed files with 75 additions and 14 deletions
22
.devcontainer/Dockerfile
Normal file
22
.devcontainer/Dockerfile
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
FROM debian:trixie
|
||||
RUN apt update
|
||||
RUN apt upgrade
|
||||
|
||||
ENV DISPLAY=:0
|
||||
|
||||
# Install chicken
|
||||
RUN apt install -y build-essential git
|
||||
RUN apt install -y chicken-bin
|
||||
|
||||
# Install chicken tools
|
||||
RUN chicken-install beaker csm
|
||||
|
||||
# Install raylib
|
||||
RUN apt install -y libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev
|
||||
RUN git clone --depth 1 https://github.com/raysan5/raylib.git raylib && \
|
||||
cd raylib/src/ && \
|
||||
make PLATFORM=PLATFORM_DESKTOP && \
|
||||
make install
|
||||
|
||||
# Install egg dependencies
|
||||
RUN chicken-install -from-list deps.lock
|
||||
12
.devcontainer/devcontainer.json
Normal file
12
.devcontainer/devcontainer.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "Imugi Dev Container",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile"
|
||||
},
|
||||
"runArgs": [
|
||||
"--net", "host",
|
||||
"-e", "DISPLAY=:0",
|
||||
"-e", "XAUTHORITY=/tmp/.Xauthority",
|
||||
"-v", "${localEnv:HOME}/.Xauthority:/tmp/.Xauthority"
|
||||
]
|
||||
}
|
||||
26
COLLABORATION.org
Normal file
26
COLLABORATION.org
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#+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.
|
||||
|
||||
13
README.org
13
README.org
|
|
@ -184,16 +184,3 @@ Functions for evaluating the render queues. ~evaluate-render-queue~ evaluates a
|
|||
(create-window process: (next-frame) close-predicate: (window-should-close?))
|
||||
#+end_src
|
||||
~create-window~ creates a window using the window parameters described above, sets the target frames per second, then enters a loop which runs the ~process:~ function (~next-frame~ by default) on each frame, unless ~close-predicate:~ (Raylib's ~window-should-close~ function by default) returns true, in which case the window is closed.
|
||||
|
||||
* Dependencies
|
||||
The following Chicken dependencies are required:
|
||||
- raylib
|
||||
- SRFI-99
|
||||
- SRFI-113
|
||||
- SRFI-69
|
||||
- csm
|
||||
- SRFI-78
|
||||
|
||||
* Running
|
||||
From the ~build~ directory, run ~csm -program test.engine .. && ./test.engine~ to run engine tests.
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
-static -L /usr/local/lib64/libraylib.a
|
||||
-static -L /usr/local/lib/libraylib.a -L -lX11 -L -lXrandr -L -lXi -L -lXcursor -L -lXinerama -L -lXext -L -lGL -L -lm -L -lpthread -L -ldl -L -lrt
|
||||
14
deps.lock
Normal file
14
deps.lock
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
("raylib" "1.2.0")
|
||||
("srfi-1" "0.5.1")
|
||||
("r7rs" "1.0.12")
|
||||
("srfi-69" "0.4.3")
|
||||
("matchable" "1.2")
|
||||
("srfi-113" "2.0.0")
|
||||
("foreigners" "1.5")
|
||||
("srfi-99" "1.4.5")
|
||||
("srfi-14" "0.2.1")
|
||||
("miscmacros" "1.0")
|
||||
("srfi-78" "0.5")
|
||||
("srfi-42" "1.76")
|
||||
("srfi-128" "0.11")
|
||||
("srfi-13" "0.3.4")
|
||||
Loading…
Add table
Add a link
Reference in a new issue