-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
67 lines (52 loc) · 1.67 KB
/
justfile
File metadata and controls
67 lines (52 loc) · 1.67 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
set shell := ["bash", "-euo", "pipefail", "-c"]
obj_dir := "objs"
dep_dir := "dep"
bin_dir := obj_dir + "/bin"
rust_ffi_debug := "target/debug/libmtproxy_ffi.a"
rust_ffi_release := "target/release/libmtproxy_ffi.a"
rust_runtime_debug := "target/debug/mtproxy-rust"
rust_runtime_release := "target/release/mtproxy-rust"
legacy_link_libs := "-ggdb -rdynamic -lm -lrt -lpthread -ldl"
default:
@just --list
dirs:
mkdir -p {{dep_dir}} {{obj_dir}}
mkdir -p {{bin_dir}}
ffi-debug:
cargo build -p mtproxy-ffi
if [ ! -f "{{rust_ffi_debug}}" ]; then \
latest="$$(ls -1t target/debug/deps/libmtproxy_ffi-*.a 2>/dev/null | head -n1)"; \
test -n "$$latest"; \
cp "$$latest" "{{rust_ffi_debug}}"; \
fi
ffi-release:
cargo build --release -p mtproxy-ffi
if [ ! -f "{{rust_ffi_release}}" ]; then \
latest="$$(ls -1t target/release/deps/libmtproxy_ffi-*.a 2>/dev/null | head -n1)"; \
test -n "$$latest"; \
cp "$$latest" "{{rust_ffi_release}}"; \
fi
build: dirs
cargo build -p mtproxy-bin --bin mtproxy-rust
cp {{rust_runtime_debug}} {{bin_dir}}/mtproxy-rust
build-legacy: dirs ffi-debug
just _link-legacy {{rust_ffi_debug}}
release: dirs
cargo build --release -p mtproxy-bin --bin mtproxy-rust
cp {{rust_runtime_release}} {{bin_dir}}/mtproxy-rust
release-legacy: dirs ffi-release
just _link-legacy {{rust_ffi_release}}
_link-legacy rust_ffi_lib:
clang -o {{bin_dir}}/mtproto-proxy \
{{rust_ffi_lib}} \
{{legacy_link_libs}}
clean:
rm -rf {{obj_dir}} {{dep_dir}} {{bin_dir}} target || true
format:
cargo fmt --all
check:
cargo check --workspace
clippy:
cargo clippy --workspace --all-targets -- -D warnings
test:
cargo test --workspace