CARGO ?= cargo
WASM_TARGET := wasm32-unknown-unknown
OUT_NAME := surrealql_language_server
.DEFAULT_GOAL := help
.PHONY: help
help:
@awk 'BEGIN {FS = ":.*## "; printf "Usage: make <target>\n\nTargets:\n"} /^[a-zA-Z0-9_-]+:.*## / {printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
.PHONY: grammar
grammar:
bash scripts/setup-grammar.sh
.PHONY: build
build:
$(CARGO) build
.PHONY: debug
debug: build
.PHONY: release
release:
$(CARGO) build --release
.PHONY: wasm
wasm:
bash scripts/build-wasm.sh
.PHONY: wasm-setup
wasm-setup:
rustup target add $(WASM_TARGET)
$(CARGO) install -f wasm-bindgen-cli --version 0.2.108
$(CARGO) install wasm-opt
@if [ "$$(uname)" = "Darwin" ] && ! ls /opt/homebrew/opt/llvm/bin/clang /usr/local/opt/llvm/bin/clang /usr/local/llvm/bin/clang >/dev/null 2>&1; then \
echo "Installing Homebrew LLVM (provides a wasm-capable clang)"; \
brew install llvm; \
fi
.PHONY: test
test:
$(CARGO) test
.PHONY: fmt
fmt:
$(CARGO) fmt
.PHONY: fmt-check
fmt-check:
$(CARGO) fmt --check
.PHONY: clean
clean:
$(CARGO) clean
rm -f pkg/$(OUT_NAME).js pkg/$(OUT_NAME).d.ts \
pkg/$(OUT_NAME)_bg.wasm pkg/$(OUT_NAME)_bg.wasm.d.ts pkg/LICENSE