forked from tursodatabase/turso
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
57 lines (44 loc) · 1.86 KB
/
Copy pathMakefile
File metadata and controls
57 lines (44 loc) · 1.86 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
RELEASE_DIR := libs
TEMP_DIR := temp
CARGO_BUILD := cargo build --profile release-official
MACOS_X86_DIR := $(RELEASE_DIR)/macos_x86
MACOS_ARM64_DIR := $(RELEASE_DIR)/macos_arm64
WINDOWS_DIR := $(RELEASE_DIR)/windows
LINUX_X86_DIR := $(RELEASE_DIR)/linux_x86
.PHONY: libs macos_x86 macos_arm64 windows lint lint_apply test build_test
libs: macos_x86 macos_arm64 windows linux_x86
macos_x86:
@echo "Building release version for macOS x86_64..."
@mkdir -p $(TEMP_DIR) $(MACOS_X86_DIR)
@CARGO_TARGET_DIR=$(TEMP_DIR) $(CARGO_BUILD) --target x86_64-apple-darwin
@cp $(TEMP_DIR)/x86_64-apple-darwin/release-official/lib_turso_java.dylib $(MACOS_X86_DIR)
@rm -rf $(TEMP_DIR)
macos_arm64:
@echo "Building release version for macOS ARM64..."
@mkdir -p $(TEMP_DIR) $(MACOS_ARM64_DIR)
@CARGO_TARGET_DIR=$(TEMP_DIR) $(CARGO_BUILD) --target aarch64-apple-darwin
@cp $(TEMP_DIR)/aarch64-apple-darwin/release-official/lib_turso_java.dylib $(MACOS_ARM64_DIR)
@rm -rf $(TEMP_DIR)
# windows generates file with name `_turso_java.dll` unlike others, so we manually add prefix
windows:
@echo "Building release version for Windows..."
@mkdir -p $(TEMP_DIR) $(WINDOWS_DIR)
@CARGO_TARGET_DIR=$(TEMP_DIR) $(CARGO_BUILD) --target x86_64-pc-windows-gnu
@cp $(TEMP_DIR)/x86_64-pc-windows-gnu/release-official/_turso_java.dll $(WINDOWS_DIR)/lib_turso_java.dll
@rm -rf $(TEMP_DIR)
linux_x86:
@echo "Building release version for linux x86_64..."
@mkdir -p $(TEMP_DIR) $(LINUX_X86_DIR)
@CARGO_TARGET_DIR=$(TEMP_DIR) $(CARGO_BUILD) --target x86_64-unknown-linux-gnu
@cp $(TEMP_DIR)/x86_64-unknown-linux-gnu/release-official/lib_turso_java.so $(LINUX_X86_DIR)
@rm -rf $(TEMP_DIR)
lint:
./gradlew spotlessCheck
lint_apply:
./gradlew spotlessApply
test: lint build_test
./gradlew test
build_test:
CARGO_TARGET_DIR=src/test/resources/turso cargo build
publish_local:
./gradlew clean publishToMavenLocal