###
target/x86_64-unknown-linux-gnu/release/set: src/* .cargo/config.toml
	cargo build --target x86_64-unknown-linux-gnu --features bevy/dynamic_linking --release

target/x86_64-unknown-linux-gnu/quick/set: src/* .cargo/config.toml
	cargo build --target x86_64-unknown-linux-gnu --features bevy/dynamic_linking --profile quick

.PHONY: target/x86_64-unknown-linux-gnu/quick/examples/animation
target/x86_64-unknown-linux-gnu/quick/examples/animation: examples/animation.rs src/*
	cargo run --example animation --target x86_64-unknown-linux-gnu --features bevy/dynamic_linking --profile quick
###

###
target/wasm32-unknown-unknown/debug/set.wasm: src/* .cargo/config.toml
	cargo build --target wasm32-unknown-unknown

target/wasm32-unknown-unknown/release/set.wasm: src/* .cargo/config.toml
	cargo build --target wasm32-unknown-unknown --release
###

###
out/debug/set.js: target/wasm32-unknown-unknown/debug/set.wasm
	wasm-bindgen --no-typescript --target web --out-dir "./out/debug" ./target/wasm32-unknown-unknown/debug/set.wasm

out/release/set.js: target/wasm32-unknown-unknown/release/set.wasm
	wasm-bindgen --no-typescript --target web --out-dir "./out/release" ./target/wasm32-unknown-unknown/release/set.wasm
	mv out/release/set_bg.wasm out/release/set_bg.original.wasm
	wasm-opt -Oz -o out/release/set_bg.wasm out/release/set_bg.original.wasm
	rm out/release/set_bg.original.wasm
###

###
out/debug/assets: assets/*
	rm -rf ./out/debug/assets
	cp -r ./assets ./out/debug/

out/release/assets: assets/*
	rm -rf ./out/release/assets
	cp -r ./assets ./out/release/
###

###
out/debug/index.html:
	cp index.html ./out/debug/index.html

out/release/index.html:
	cp index.html ./out/release/index.html
###

###
native/debug/build: target/x86_64-unknown-linux-gnu/quick/set

native/release/build: target/x86_64-unknown-linux-gnu/release/set
###

###
examples/animation: target/x86_64-unknown-linux-gnu/quick/examples/animation
###

###
native/debug/run: native/debug/build
	cargo run --target x86_64-unknown-linux-gnu --features bevy/dynamic_linking --profile quick

native/release/run: native/release/build
	cargo run --target x86_64-unknown-linux-gnu --features bevy/dynamic_linking --release
###

###
web/debug/build: out/debug/set.js out/debug/assets out/debug/index.html

web/release/build: out/release/set.js out/release/assets out/release/index.html
###

###
web/debug/serve: web/debug/build
	cd ./out/debug/; simple-http-server

web/release/serve: web/release/build
	cd ./out/release/; simple-http-server
###

zip: web/release/build
	cd out/release && zip -r set.zip ./* && mv set.zip ../

clean:
	rm ./target/*/*/set* ./out/*/set*
