1ifeq ($(CI), true)
2	ci_color_always := --color=always
3endif
4
5ifeq ($(RELEASE), true)
6	build_flags := --release
7endif
8
9ifeq ($(OS), Windows_NT)
10	NIX := false
11else
12	NIX := true
13endif
14
15.PHONY: build clean install test uninstall
16
17ifeq ($(NIX), true)
18build:
19	nix-shell --pure --run 'cargo build $(build_flags) $(ci_color_always)'
20else
21build:
22	cargo build $(build_flags) $(ci_color_always)
23endif
24
25ifeq ($(NIX), true)
26clean:
27	nix-shell --pure --run 'cargo clean $(ci_color_always)'
28else
29clean:
30	cargo clean $(ci_color_always)
31endif
32
33ifeq ($(NIX), true)
34install:
35	nix-shell --pure --run 'cargo install --path=. $(ci_color_always)'
36else
37install:
38	cargo install --path=. $(ci_color_always)
39endif
40
41ifeq ($(NIX), true)
42test:
43	nix-shell --pure --run 'cargo fmt -- --check --files-with-diff $(ci_color_always)'
44	nix-shell --pure --run 'cargo check --all-features $(build_flags) $(ci_color_always)'
45	nix-shell --pure --run 'cargo clippy --all-features $(build_flags) $(ci_color_always) -- --deny warnings --deny clippy::all'
46	nix-shell --pure --run 'cargo test --all-features --no-fail-fast $(build_flags) $(ci_color_always)'
47	nix-shell --pure --run 'cargo audit --deny warnings $(ci_color_always) --ignore=RUSTSEC-2020-0095'
48else
49test:
50	cargo fmt -- --check --files-with-diff $(ci_color_always)
51	cargo check --all-features $(build_flags) $(ci_color_always)
52	cargo clippy --all-features $(build_flags) $(ci_color_always) -- --deny warnings --deny clippy::all
53	cargo test --no-fail-fast $(build_flags) $(ci_color_always)
54	cargo audit --deny warnings $(ci_color_always) --ignore=RUSTSEC-2020-0095
55endif
56
57ifeq ($(NIX), true)
58uninstall:
59	nix-shell --pure --run 'cargo uninstall $(ci_color_always)'
60else
61uninstall:
62	cargo uninstall $(ci_color_always)
63endif
64