-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathMakefile
More file actions
145 lines (117 loc) · 3.63 KB
/
Copy pathMakefile
File metadata and controls
145 lines (117 loc) · 3.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
VERSION=1.12.0
.PHONY: help
help: # Display this help.
@awk 'BEGIN {FS = ":.*#"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?#/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^#@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
.PHONY: build-mac-arm
build-mac-arm:
@npx tauri build --target aarch64-apple-darwin
.PHONY: build-mac-intel
build-mac-intel:
@npx tauri build --target x86_64-apple-darwin
.PHONY: wasm-compile
wasm-compile:
@pnpm i
@pnpm wasm-compile-dev
.PHONY: start
start: ensure-dependencies
@pnpm i
@pnpm tauri dev
.PHONY: build-appimage
build-appimage:
@npx tauri build -b appimage
.PHONY: bundle-appimage
bundle-appimage:
@npx tauri bundle -b appimage
.PHONY: preview
preview:
@pnpm run start
.PHONY: lint
lint:
@pnpm run lint
.PHONY: clean
clean:
@rm -rf src-tauri/target
.PHONY: check
check: wasm-compile
@pnpm run typecheck
@pnpm run lint
@pnpm run format
.PHONY: test
test: ensure-dependencies
@pnpm run test
.PHONY: check-rs
check-rs:
@cd src-tauri && cargo clippy -- -Aclippy::needless_return
.PHONY: ensure-pnpm
ensure-pnpm:
ifeq ($(shell which pnpm 2>/dev/null), )
@echo "pnpm not installed! installing..."
@curl -fsSL https://get.pnpm.io/install.sh | sh -
endif
.PHONY: ensure-wasm-pack
ensure-wasm-pack:
ifeq ($(shell which wasm-pack 2>/dev/null), )
@echo "wasm-pack not installed! installing..."
@cargo install wasm-pack
endif
.PHONY: ensure-dependencies
ensure-dependencies: ensure-pnpm ensure-wasm-pack
.PHONY: set-version
set-version:
@jq --arg new_version "$(VERSION)" '.version = "$(VERSION)"' "src-tauri/tauri.conf.json" > version.tmp.json && mv version.tmp.json src-tauri/tauri.conf.json
@npx prettier --write src-tauri/tauri.conf.json
@cargo install cargo-edit
@cd src-tauri && cargo set-version $(VERSION)
@cd pkm_rs && cargo set-version $(VERSION)
@cd pkm_rs_derive && cargo set-version $(VERSION)
@cd pkm_rs_resources && cargo set-version $(VERSION)
@cd pkm_rs_types && cargo set-version $(VERSION)
@cd pkm_rs && cargo build
@cd src-tauri && cargo build
@pnpm version $(VERSION) --no-git-tag-version --allow-same-version
@pnpm i
.PHONY: release-mac
release-mac:
@source .env && npm run release-mac
generate/out/generate.js: generate/generate.ts generate/syncPKHexResources.ts generate/enums.ts generate/parseFunctions/*
@echo "compiling generate/*.ts..."
@cd generate && tsc
.PHONY: generate
generate: generate/out/generate.js
@echo "generating typescript..."
@node ./generate/out/generate.js Items text/items/PostGen4.txt items/PostGen4.ts
@npx prettier --log-level silent --write src/resources/gen*
.PHONY: gen-wasm
gen-wasm:
# @node generate/gen_ribbons.ts
# @cd pkm_rs_resources && node generate/gen_abilities.ts
@cd generate
@pnpm i
# @cd pkm_rs_resources && ts-node generate/gen_abilities.ts
@ts-node generate/gen_items.ts
@ts-node generate/gen_moves.ts
@ts-node generate/gen_species_data.ts
@cd pkm_rs_resources && cargo fmt
.PHONY: pkhex-json
pkhex-json:
@cd pkhex-json && dotnet run GeneratePkhexJson.cs
@npx prettier --write pkhex-json
.PHONY: test-pkhex-json
test-pkhex-json:
@cargo test --package pkm_rs --lib --all-features -- compare_pkhex_json
generate/out/syncPKHexResources.js: generate/syncPKHexResources.ts
@echo "compiling generate/syncPKHexResources.ts..."
@cd generate && tsc
.PHONY: sync-resources
sync-resources: generate/out
@echo "syncing PKHex resources..."
@node ./generate/out/syncPKHexResources.js
@echo "syncing finished"
.PHONY: download-item-sprites
download-item-sprites:
@python3 generate/downloadAllItems.py
%:
@pnpm run $@
.PHONY: schema
schema:
@sqlite3 generate/pkm.db .schema > generate/schema.sql