Run codegen script outside of make

This commit is contained in:
Joshua DeSeno
2014-08-26 16:51:10 +09:00
parent ea9f2b1802
commit a57a70be3f
3 changed files with 10 additions and 71 deletions
+1 -4
View File
@@ -3,7 +3,7 @@
name = "sdl2"
version = "0.0.1"
authors = [ "Tony Aldridge<zaragopha@hotmail.com>" ]
build = "make src/sdl2/generated/keycode.rs src/sdl2/generated/scancode.rs"
build = "./prebuild.sh"
[lib]
@@ -15,6 +15,3 @@ path = "src/sdl2/lib.rs"
name = "demo"
path = "src/demo/main.rs"
[dev-dependencies.codegen]
path = "src/codegen"
-67
View File
@@ -1,67 +0,0 @@
RUSTC ?= rustc
RUSTFLAGS ?=
OUTDIR ?= ./build
CARGODIR ?= ./target
BINDIR = $(OUTDIR)/bin
LIBDIR = $(OUTDIR)/lib
TMPDIR = $(OUTDIR)/tmp
RUST_SRC = $(shell find src/. -type f -name '*.rs') \
src/sdl2/generated/keycode.rs \
src/sdl2/generated/scancode.rs
.PHONY: all gen-lib
all: $(TMPDIR)/libsdl2.dummy
UNAME=$(shell uname)
ifeq ($(UNAME),Darwin)
# If the user wasn't explicit, see if SDL2 library exists
ifeq ("$(strip $(SDL_MODE))","")
SDL_CHECK=$(shell pkg-config --exists sdl2 && echo $$?)
ifeq ($(SDL_CHECK),0)
SDL_MODE = dylib
else
SDL_MODE = framework
endif
endif
ifeq ($(SDL_MODE),framework)
RUSTFLAGS+=--cfg mac_framework
else
RUSTFLAGS+=--cfg mac_dylib
endif
endif
$(BINDIR) $(LIBDIR) $(TMPDIR):
mkdir -p '$@'
$(TMPDIR)/codegen: $(wildcard src/codegen/*.rs) $(TMPDIR)
$(RUSTC) -o '$(TMPDIR)/codegen' src/codegen/main.rs $(RUSTFLAGS)
src/sdl2/generated/%.rs: $(TMPDIR)/codegen
'$(TMPDIR)/codegen' $(patsubst src/sdl2/generated/%,%,$@) src/sdl2/generated/
gen-lib: src/sdl2/lib.rs $(RUST_SRC) $(LIBDIR) $(TMPDIR)
$(RUSTC) --out-dir '$(LIBDIR)' src/sdl2/lib.rs $(RUSTFLAGS)
$(TMPDIR)/libsdl2.dummy: src/sdl2/lib.rs $(RUST_SRC) $(LIBDIR) $(TMPDIR)
$(RUSTC) --out-dir '$(LIBDIR)' src/sdl2/lib.rs $(RUSTFLAGS)
touch $@
compile_demo: src/demo/main.rs src/demo/video.rs $(TMPDIR)/libsdl2.dummy $(BINDIR)
$(RUSTC) -o '$(BINDIR)/demo' -L '$(LIBDIR)' src/demo/main.rs
demo: compile_demo
'$(BINDIR)/demo'
.PHONY: cargo
cargo:
cargo build
.PHONY: clean
clean:
rm -rf src/sdl2/generated
rm -rf '$(OUTDIR)'
rm -rf '$(CARGODIR)'
Executable
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
codegen=src/codegen/target/codegen
src_dir=src/sdl2/generated
cargo build --manifest-path src/codegen/Cargo.toml
mkdir -p ${src_dir}
${codegen} keycode.rs ${src_dir}
${codegen} scancode.rs ${src_dir}