61 lines
1.6 KiB
Makefile
61 lines
1.6 KiB
Makefile
.PHONY: all build_ffi build_godot run_server run_server_build test clean
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
DETECTED_OS = Windows
|
|
TARGET = x86_64-unknown-linux-musl
|
|
PATH_SEP = \\
|
|
COPY = copy
|
|
MKDIR = if not exist "$(SERVER_LIB_DIR)" mkdir "$(SERVER_LIB_DIR)"
|
|
RMDIR = if exist "$(SERVER_LIB_DIR)" rmdir /s /q "$(SERVER_LIB_DIR)"
|
|
else
|
|
DETECTED_OS = POSIX
|
|
TARGET = aarch64-unknown-linux-musl
|
|
PATH_SEP = /
|
|
COPY = cp
|
|
MKDIR = mkdir -p "$(SERVER_LIB_DIR)"
|
|
RMDIR = rm -rf "$(SERVER_LIB_DIR)"
|
|
endif
|
|
|
|
SERVER_LIB_DIR = server$(PATH_SEP)ffi$(PATH_SEP)lib
|
|
FFI_LIB = ffi-wrapper$(PATH_SEP)target$(PATH_SEP)$(TARGET)$(PATH_SEP)release$(PATH_SEP)libffi_wrapper.a
|
|
FFI_HEADER = ffi-wrapper$(PATH_SEP)target$(PATH_SEP)ffi-wrapper.h
|
|
GODOT_LIB = godot-extension$(PATH_SEP)target$(PATH_SEP)release$(PATH_SEP)godot_extension.dll
|
|
|
|
# Default: Build everything and deploy server
|
|
all: build_ffi build_godot run_server_build
|
|
|
|
## Build Targets ##
|
|
|
|
network: build_ffi run_server_build
|
|
|
|
build_ffi:
|
|
cd ffi-wrapper && cargo build --release --target $(TARGET)
|
|
|
|
build_godot:
|
|
cd godot-extension && cargo build --release
|
|
|
|
## Deployment Targets ##
|
|
|
|
run_server:
|
|
cd server && docker compose up
|
|
|
|
run_server_build:
|
|
$(MKDIR)
|
|
$(COPY) $(FFI_LIB) $(SERVER_LIB_DIR)
|
|
$(COPY) $(FFI_HEADER) $(SERVER_LIB_DIR)
|
|
cd server && docker compose up --build
|
|
|
|
## Test Target ##
|
|
|
|
test:
|
|
cd shared && cargo test --release
|
|
cd ffi-wrapper && cargo test --release
|
|
cd godot-extension && cargo test --release
|
|
|
|
## Cleanup ##
|
|
|
|
clean:
|
|
cd shared && cargo clean
|
|
cd ffi-wrapper && cargo clean
|
|
cd godot-extension && cargo clean
|
|
$(RMDIR)
|