Compare commits
7 Commits
v0.3.0
...
5af59863a1
| Author | SHA1 | Date | |
|---|---|---|---|
| 5af59863a1 | |||
| 84d93d496a | |||
| 4a9d252691 | |||
| 3c9a9a7d9d | |||
| 010cbd6d4b | |||
| 918992702f | |||
| c8c64e4d22 |
6008
Cargo.lock
generated
Normal file
6008
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "asteroids"
|
name = "asteroids"
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "AGPL-3.0-only"
|
license = "AGPL-3.0-only"
|
||||||
|
|
||||||
|
|||||||
15
Dockerfile
15
Dockerfile
@@ -1,22 +1,11 @@
|
|||||||
FROM rust:1.89 AS builder
|
FROM rust:1.89 AS builder
|
||||||
|
|
||||||
RUN apt-get update
|
|
||||||
RUN apt-get install -y --no-install-recommends libasound2-dev libudev-dev
|
|
||||||
RUN rustup target add wasm32-unknown-unknown
|
RUN rustup target add wasm32-unknown-unknown
|
||||||
RUN cargo install --locked wasm-bindgen-cli
|
RUN cargo install --locked wasm-bindgen-cli
|
||||||
|
|
||||||
# Copy in only the parts we care about. This is to prevent Docker from re-
|
COPY . .
|
||||||
# running some steps because unimportant files changed (e.g.: the .git/ folder)
|
|
||||||
COPY src/ ./src
|
|
||||||
COPY Cargo.toml ./Cargo.toml
|
|
||||||
# WARN: The lockfile doesn't exist in the repo. You will have to create it
|
|
||||||
# before building the Docker image (i.e.: run `cargo update` first)
|
|
||||||
COPY Cargo.lock ./Cargo.lock
|
|
||||||
COPY www/ ./www
|
|
||||||
COPY Makefile ./Makefile
|
|
||||||
|
|
||||||
# Oops. There's no text output in the Docker build command line (it still works, though)
|
RUN make -j
|
||||||
RUN make
|
|
||||||
|
|
||||||
FROM busybox:musl
|
FROM busybox:musl
|
||||||
RUN mkdir -p /var/www
|
RUN mkdir -p /var/www
|
||||||
|
|||||||
39
Makefile
39
Makefile
@@ -3,22 +3,32 @@
|
|||||||
## Do not use it if that isn't your goal!
|
## Do not use it if that isn't your goal!
|
||||||
##
|
##
|
||||||
|
|
||||||
SRC_DIR = ./src
|
|
||||||
SRCS := $(wildcard $(SRC_DIR)/**)
|
|
||||||
|
|
||||||
# Patch these to select a different build profile or target
|
# Patch these to select a different build profile or target
|
||||||
# The target shouldn't change any time soon. WASM64, I guess. Other targets
|
# The target shouldn't change any time soon. WASM64, I guess. Other targets
|
||||||
# aren't aimed at the web, so you shouldn't be using this makefile.
|
# aren't aimed at the web, so you shouldn't be using this makefile.
|
||||||
CARGO_TARGET := wasm32-unknown-unknown
|
CARGO_TARGET := wasm32-unknown-unknown
|
||||||
CARGO_PROFILE := tiny
|
CARGO_PROFILE := tiny
|
||||||
|
|
||||||
.PHONY: clean full-clean web tarball
|
SRC_DIR = ./src
|
||||||
|
SRCS := $(wildcard $(SRC_DIR)/**)
|
||||||
|
|
||||||
web: out/asteroids.js out/asteroids_bg.wasm out/index.html
|
.PHONY: clean full-clean tarball tarball-standalone web web-standalone
|
||||||
|
|
||||||
|
# "Standalone" version. It includes an index.html to serve as-is
|
||||||
|
web-standalone: out/asteroids.js out/asteroids_bg.wasm out/index.html
|
||||||
|
|
||||||
|
# "Bundle-able" version. It has a page, but no index.html. Consumers are
|
||||||
|
# expected to provide their own index.html and link to this page.
|
||||||
|
web: out/asteroids.js out/asteroids_bg.wasm out/asteroids.html
|
||||||
|
|
||||||
tarball: asteroids_web_root.tar
|
tarball: asteroids_web_root.tar
|
||||||
|
|
||||||
asteroids_web_root.tar: out/asteroids.js out/asteroids_bg.wasm out/index.html
|
tarball_standalone: asteroids_web_root_standalone.tar
|
||||||
|
|
||||||
|
asteroids_web_root.tar: out/asteroids.js out/asteroids_bg.wasm out/asteroids.html
|
||||||
|
tar -caf $@ $^
|
||||||
|
|
||||||
|
asteroids_web_root_standalone.tar: out/asteroids.js out/asteroids_bg.wasm out/index.html
|
||||||
tar -caf $@ $^
|
tar -caf $@ $^
|
||||||
|
|
||||||
target/$(CARGO_TARGET)/$(CARGO_PROFILE)/asteroids.wasm: $(SRCS) Cargo.lock Cargo.toml
|
target/$(CARGO_TARGET)/$(CARGO_PROFILE)/asteroids.wasm: $(SRCS) Cargo.lock Cargo.toml
|
||||||
@@ -32,15 +42,30 @@ out:
|
|||||||
out/asteroids.js out/asteroids_bg.wasm &: target/$(CARGO_TARGET)/$(CARGO_PROFILE)/asteroids.wasm | out
|
out/asteroids.js out/asteroids_bg.wasm &: target/$(CARGO_TARGET)/$(CARGO_PROFILE)/asteroids.wasm | out
|
||||||
wasm-bindgen --no-typescript --target web --out-dir ./out/ --out-name asteroids target/$(CARGO_TARGET)/$(CARGO_PROFILE)/asteroids.wasm
|
wasm-bindgen --no-typescript --target web --out-dir ./out/ --out-name asteroids target/$(CARGO_TARGET)/$(CARGO_PROFILE)/asteroids.wasm
|
||||||
|
|
||||||
|
# Copies the index page to the output dir.
|
||||||
out/index.html: www/index.html
|
out/index.html: www/index.html
|
||||||
cp -a $< $@
|
cp -a $< $@
|
||||||
|
rm -f out/boids.html
|
||||||
|
|
||||||
|
# Like `out/index.html`, but renames the page for use in a larger site.
|
||||||
|
out/asteroids.html: www/index.html
|
||||||
|
cp -a $< $@
|
||||||
|
rm -f out/index.html
|
||||||
|
|
||||||
# Clean the web build, but not the Cargo cache. Cargo handles it's own caching
|
# Clean the web build, but not the Cargo cache. Cargo handles it's own caching
|
||||||
# and I don't want to obliterate it all the time.
|
# and I don't want to obliterate it all the time.
|
||||||
clean:
|
clean:
|
||||||
rm -rf out/ asteroids_web_root.tar
|
rm -rf out/ asteroids_web_root.tar asteroids_web_root_standalone.tar
|
||||||
|
|
||||||
# Delete everything, including the Cargo build cache. In case someone needs
|
# Delete everything, including the Cargo build cache. In case someone needs
|
||||||
# this, I guess.
|
# this, I guess.
|
||||||
full-clean: clean
|
full-clean: clean
|
||||||
cargo clean
|
cargo clean
|
||||||
|
|
||||||
|
# Installation goal. It's meant to be a helper utility for moving the built
|
||||||
|
# output into the web root. Only supports the "bundle-able" mode.
|
||||||
|
install: web
|
||||||
|
install -dm0755 $(DESTDIR)
|
||||||
|
install -m0644 out/asteroids.js $(DESTDIR)/
|
||||||
|
install -m0644 out/asteroids_bg.wasm $(DESTDIR)/
|
||||||
|
install -m0644 out/asteroids.html $(DESTDIR)/
|
||||||
|
|||||||
@@ -2,15 +2,25 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<style>
|
<style>
|
||||||
|
body {
|
||||||
|
background-color: hsl(200, 3%, 65%);
|
||||||
|
}
|
||||||
h1 {
|
h1 {
|
||||||
|
color: hsl(200, 3%, 90%);
|
||||||
|
background-color: hsl(195, 5%, 17%);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
margin: auto;
|
||||||
|
padding: 0.5em;
|
||||||
}
|
}
|
||||||
canvas {
|
canvas {
|
||||||
padding-left: 0;
|
margin-top: 1em;
|
||||||
padding-right: 0;
|
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
display: block;
|
display: block;
|
||||||
|
outline-color: hsl(200, 7%, 50%);
|
||||||
|
outline-style: outset;
|
||||||
|
border-radius: 8px;
|
||||||
|
background-color: rgb(40%, 40%, 40%);
|
||||||
}
|
}
|
||||||
main {
|
main {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
@@ -18,11 +28,12 @@
|
|||||||
width: 70%;
|
width: 70%;
|
||||||
}
|
}
|
||||||
table {
|
table {
|
||||||
|
margin-bottom: 10px;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
th, td {
|
th, td {
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
padding: 2px 4px;
|
padding: 0.1em 0.3em;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
@@ -79,7 +90,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>Program Version</td>
|
<td>Program Version</td>
|
||||||
<!-- This version text is completely unchecked. I'll need to do something about that. -->
|
<!-- This version text is completely unchecked. I'll need to do something about that. -->
|
||||||
<td><code>v0.3.0</code></td>
|
<td><code>v0.4.0</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
Reference in New Issue
Block a user