Skip to content

Commit 309af50

Browse files
committed
Add release target
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
1 parent cc3c39f commit 309af50

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

Makefile

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,52 @@
11
pes_parent_dir:=$(shell pwd)/$(lastword $(MAKEFILE_LIST))
22
cur_makefile_path := $(shell dirname $(pes_parent_dir))
33

4-
all: build-lib build-example
4+
all: build build-example target/tikv-example
55

6-
build-lib: pre-build target/debug/tikv_client_glue.o target/debug/tikv_client_cpp.o target/debug/libtikv_client.a
6+
build: pre-build target/debug/libtikv_client.a
77

8-
build-example: target/tikv-test
8+
release: pre-build target/release/libtikv_client.a
99

10-
pre-build: target/debug/libtikv_client_rust.a target/debug/tikv_client_glue.cc include/tikv_client_glue.h
10+
pre-build: target/tikv_client_glue.cc include/tikv_client_glue.h
1111

1212
clean:
1313
cargo clean
1414

15-
run-example: target/tikv-test
16-
RUST_BACKTRACE=1 $(cur_makefile_path)/target/tikv-test
15+
run-example: target/tikv-example
16+
$(cur_makefile_path)/target/tikv-example
17+
18+
target/tikv-example: target/debug/libtikv_client.a example/main.cpp
19+
c++ $(cur_makefile_path)/example/main.cpp -o $(cur_makefile_path)/target/tikv-example -std=c++17 -g -I$(cur_makefile_path)/include -L$(cur_makefile_path)/target/debug -ltikv_client -lpthread -ldl -lssl -lcrypto
20+
21+
22+
target/tikv_client_glue.cc: src/lib.rs
23+
cxxbridge $(cur_makefile_path)/src/lib.rs > $(cur_makefile_path)/target/tikv_client_glue.cc
24+
25+
include/tikv_client_glue.h: src/lib.rs
26+
cxxbridge $(cur_makefile_path)/src/lib.rs --header > $(cur_makefile_path)/include/tikv_client_glue.h
1727

18-
target/tikv-test: target/debug/libtikv_client.a example/main.cpp
19-
c++ $(cur_makefile_path)/example/main.cpp -o $(cur_makefile_path)/target/tikv-test -std=c++17 -g -I$(cur_makefile_path)/include -L$(cur_makefile_path)/target/debug -ltikv_client -lpthread -ldl -lssl -lcrypto
2028

2129
target/debug/libtikv_client.a: target/debug/libtikv_client_rust.a target/debug/tikv_client_glue.o target/debug/tikv_client_cpp.o
2230
cp $(cur_makefile_path)/target/debug/libtikv_client_rust.a $(cur_makefile_path)/target/debug/libtikv_client.a && ar cr $(cur_makefile_path)/target/debug/libtikv_client.a $(cur_makefile_path)/target/debug/tikv_client_cpp.o $(cur_makefile_path)/target/debug/tikv_client_glue.o
2331

2432
target/debug/tikv_client_cpp.o: src/tikv_client.cpp
2533
c++ -c $(cur_makefile_path)/src/tikv_client.cpp -o $(cur_makefile_path)/target/debug/tikv_client_cpp.o -std=c++17 -g -I$(cur_makefile_path)/include
2634

27-
target/debug/tikv_client_glue.o: target/debug/tikv_client_glue.cc
28-
c++ -c $(cur_makefile_path)/target/debug/tikv_client_glue.cc -o $(cur_makefile_path)/target/debug/tikv_client_glue.o -std=c++17
35+
target/debug/tikv_client_glue.o: target/tikv_client_glue.cc
36+
c++ -c $(cur_makefile_path)/target/tikv_client_glue.cc -o $(cur_makefile_path)/target/debug/tikv_client_glue.o -std=c++17
2937

3038
target/debug/libtikv_client_rust.a: src/lib.rs
3139
cargo build
3240

33-
target/debug/tikv_client_glue.cc: src/lib.rs
34-
cxxbridge $(cur_makefile_path)/src/lib.rs > $(cur_makefile_path)/target/debug/tikv_client_glue.cc
3541

36-
include/tikv_client_glue.h: src/lib.rs
37-
cxxbridge $(cur_makefile_path)/src/lib.rs --header > $(cur_makefile_path)/include/tikv_client_glue.h
42+
target/release/libtikv_client.a: target/release/libtikv_client_rust.a target/release/tikv_client_glue.o target/release/tikv_client_cpp.o
43+
cp $(cur_makefile_path)/target/release/libtikv_client_rust.a $(cur_makefile_path)/target/release/libtikv_client.a && ar cr $(cur_makefile_path)/target/release/libtikv_client.a $(cur_makefile_path)/target/release/tikv_client_cpp.o $(cur_makefile_path)/target/release/tikv_client_glue.o
44+
45+
target/release/tikv_client_cpp.o: src/tikv_client.cpp
46+
c++ -O3 -c $(cur_makefile_path)/src/tikv_client.cpp -o $(cur_makefile_path)/target/release/tikv_client_cpp.o -std=c++17 -g -I$(cur_makefile_path)/include
47+
48+
target/release/tikv_client_glue.o: target/tikv_client_glue.cc
49+
c++ -O3 -c $(cur_makefile_path)/target/tikv_client_glue.cc -o $(cur_makefile_path)/target/release/tikv_client_glue.o -std=c++17
50+
51+
target/release/libtikv_client_rust.a: src/lib.rs
52+
cargo build --release

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# TiKV Client for C++
22

3-
This library is the TiKV client for C++; it only supports synchronous API so far.
3+
TiKV client for C++. So far, it only supports synchronous API.
44

55
It's built on top of
66
[TiKV Client in Rust](https://github.com/tikv/client-rust) via [cxx](https://github.com/dtolnay/cxx).

0 commit comments

Comments
 (0)