mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-08-04 18:18:03 +00:00
bind/java: Add support for building on Linux
This commit is contained in:
parent
ea301de726
commit
4589cd6916
3 changed files with 19 additions and 1 deletions
|
@ -6,6 +6,7 @@ CARGO_BUILD := cargo build --release
|
|||
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
|
||||
|
||||
|
@ -33,6 +34,13 @@ windows:
|
|||
@cp $(TEMP_DIR)/x86_64-pc-windows-gnu/release/_limbo_java.dll $(WINDOWS_DIR)/lib_limbo_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/lib_limbo_java.d $(LINUX_X86_DIR)
|
||||
@rm -rf $(TEMP_DIR)
|
||||
|
||||
lint:
|
||||
./gradlew spotlessCheck
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ maven local to use it.
|
|||
```shell
|
||||
$ cd bindings/java
|
||||
|
||||
# Please select the appropriate target platform, currently supports `macos_x86`, `macos_arm64`, `windows`
|
||||
# Please select the appropriate target platform, currently supports `macos_x86`, `macos_arm64`, `windows` and `linux_x86`
|
||||
$ make macos_x86
|
||||
|
||||
# deploy to maven local
|
||||
|
|
|
@ -41,6 +41,7 @@ public final class LimboDB implements AutoCloseable {
|
|||
enum Architecture {
|
||||
MACOS_ARM64("libs/macos_arm64/lib_limbo_java.dylib", ".dylib"),
|
||||
MACOS_X86("libs/macos_x86/lib_limbo_java.dylib", ".dylib"),
|
||||
LINUX_X86("libs/linux_x86/lib_limbo_java.so", ".so"),
|
||||
WINDOWS("libs/windows/lib_limbo_java.dll", ".dll"),
|
||||
UNSUPPORTED("", "");
|
||||
|
||||
|
@ -64,6 +65,15 @@ public final class LimboDB implements AutoCloseable {
|
|||
String osName = System.getProperty("os.name").toLowerCase();
|
||||
String osArch = System.getProperty("os.arch").toLowerCase();
|
||||
|
||||
// TODO: Fix this
|
||||
if (osName.contains("linux")) {
|
||||
if (osArch.contains("aarch64") || osArch.contains("arm64")) {
|
||||
return LINUX_X86;
|
||||
} else if (osArch.contains("x86_64") || osArch.contains("amd64")) {
|
||||
return LINUX_X86;
|
||||
}
|
||||
}
|
||||
|
||||
if (osName.contains("mac")) {
|
||||
if (osArch.contains("aarch64") || osArch.contains("arm64")) {
|
||||
return MACOS_ARM64;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue