-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
124 lines (86 loc) · 4.27 KB
/
Makefile
File metadata and controls
124 lines (86 loc) · 4.27 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
#!/usr/bin/env bash
pwd = ${shell pwd}
app-name = wayshot
version = `git describe --tags --abbrev=0`
build-env =
android-build-env = SLINT_STYLE=material $(build-env)
desktop-build-env = SLINT_STYLE=fluent CMAKE_POLICY_VERSION_MINIMUM=3.5 $(build-env)
web-build-env = SLINT_STYLE=fluent $(build-env) RUSTFLAGS='--cfg getrandom_backend="wasm_js"'
run-env = RUST_LOG=debug
proj-features = --features=${desktop-features},database,qrcode,center-window
desktop-features ?= desktop-wayland-wlr
all: desktop-build-release
android-build:
$(android-build-env) cargo apk build --lib -p ${app-name} --no-default-features --features=mobile,android
android-build-release:
$(android-build-env) cargo apk build --lib --release -p ${app-name} --no-default-features --features=mobile,android
android-debug:
$(android-build-env) $(run-env) cargo apk run --lib -p ${app-name} --no-default-features --features=mobile,android
desktop-build:
$(desktop-build-env) cargo build --bin ${app-name} --no-default-features --features=${desktop-features}
desktop-build-release:
$(desktop-build-env) cargo build --release --bin ${app-name} --no-default-features --features=${desktop-features}
desktop-debug:
$(desktop-build-env) $(run-env) cargo run --bin ${app-name} --no-default-features --features=${desktop-features}
desktop-debug-winit:
SLINT_BACKEND=winit-femtovg $(desktop-build-env) $(run-env) cargo run --bin ${app-name} --no-default-features --features=${desktop-features}
desktop-run-release:
$(desktop-build-env) RUST_LOG=info cargo run --release --bin ${app-name} --no-default-features --features=${desktop-features}
desktop-run-release-winit:
SLINT_BACKEND=winit-femtovg $(desktop-build-env) RUST_LOG=info cargo run --release --bin ${app-name} --no-default-features --features=${desktop-features}
web-build:
cd $(app-name) && $(web-build-env) wasm-pack build --no-opt --dev --target web --out-dir ./web/pkg --no-default-features --features=web
web-build-release:
- rm -rf ./web/dist/*
cd $(app-name) && $(web-build-env) wasm-pack build --no-opt --release --target web --out-dir ./web/dist/pkg --no-default-features --features=web
cd $(app-name) && cp -f ./web/index.html ./web/dist && cp -f ./ui/images/png/brand.png ./web/dist/pkg/favicon.png
web-debug: web-build
cd $(app-name) && python3 -m http.server -d web 8000
cursor-debug:
$(run-env) cargo run --bin wayshot-cursor
cursor-release:
cargo build --release --bin wayshot-cursor
tr:
cargo run --bin tr-helper
icon:
cargo run --bin icon-helper -- -i ${app-name}/ui/images -o ${app-name}/ui/base
icon-strip:
cargo run --bin icon-helper -- -i ${app-name}/ui/images -o ${app-name}/ui/base --strip
packing-android:
cp -f target/release/apk/${app-name}.apk target/${app-name}-${version}-aarch64-linux-android.apk
echo "${app-name}-${version}-aarch64-linux-android.apk" > target/output-name
packing-linux:
cp -f target/release/${app-name} target/${app-name}-${version}-x86_64-linux
echo "${app-name}-${version}-x86_64-linux" > target/output-name
packing-windows:
cp -f target/release/${app-name}.exe target/${app-name}-${version}-x86_64-windows.exe
echo "${app-name}-${version}-x86_64-windows.exe" > target/output-name
packing-darwin:
cp -f target/release/${app-name} target/${app-name}-${version}-x86_64-darwin
echo "${app-name}-${version}-x86_64-darwin" > target/output-name
packing-web:
tar -zcf target/$(app-name)-$(version)-web.tar.gz ${app-name}/web/dist
echo "$(app-name)-$(version)-web.tar.gz" > target/output-name
slint-viewer-android:
$(android-build-env) slint-viewer --auto-reload -I $(app-name)/ui ${app-name}/ui/android-window.slint
slint-viewer-desktop:
$(desktop-build-env) slint-viewer --auto-reload -I $(app-name)/ui ${app-name}/ui/desktop-window.slint
slint-viewer-web:
$(web-build-env) slint-viewer --auto-reload -I $(app-name)/ui ${app-name}/ui/web-window.slint
test:
$(build-env) $(run-env) cargo test -- --nocapture
timings:
$(build-env) cargo build --timings $(proj-features)
clippy:
cargo clippy $(proj-features)
check:
$(desktop-build-env) cargo check --no-default-features $(proj-features) --bin ${app-name}
clean:
cargo clean
deb:
cd package/deb && bash -e "./pkg-deb.sh"
mv package/deb/$(app-name).deb ./target
app-name:
echo "$(app-name)" > target/app-name
get-font-name:
fc-scan ./${app-name}/ui/fonts/*.{ttf,otf} | grep "fullname:"