-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
48 lines (36 loc) · 1.97 KB
/
Copy pathMakefile
File metadata and controls
48 lines (36 loc) · 1.97 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
.PHONY: all build test install clean build-extensions build-chrome build-vscode build-jetbrains
PREFIX ?= /usr/local/bin
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo "v1.0.0")
LDFLAGS := -ldflags "-X metastackr/internal/cli.Version=$(VERSION)"
all: build test
build:
go build $(LDFLAGS) -o git-meta ./cmd/git-meta
go build $(LDFLAGS) -o metastackrd ./cmd/metastackrd
build-release: build
GOOS=darwin GOARCH=arm64 go build $(LDFLAGS) -o git-meta-darwin-arm64 ./cmd/git-meta
GOOS=darwin GOARCH=amd64 go build $(LDFLAGS) -o git-meta-darwin-amd64 ./cmd/git-meta
GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o git-meta-linux-amd64 ./cmd/git-meta
GOOS=linux GOARCH=arm64 go build $(LDFLAGS) -o git-meta-linux-arm64 ./cmd/git-meta
GOOS=darwin GOARCH=arm64 go build $(LDFLAGS) -o metastackrd-darwin-arm64 ./cmd/metastackrd
GOOS=darwin GOARCH=amd64 go build $(LDFLAGS) -o metastackrd-darwin-amd64 ./cmd/metastackrd
GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o metastackrd-linux-amd64 ./cmd/metastackrd
GOOS=linux GOARCH=arm64 go build $(LDFLAGS) -o metastackrd-linux-arm64 ./cmd/metastackrd
build-extensions: build-chrome build-vscode build-jetbrains
build-chrome:
@echo "📦 Packaging Chrome Extension..."
cd extensions/chrome && zip -r ../../metastackr-chrome.zip . -x "*.DS_Store"
build-vscode:
@echo "📦 Packaging VS Code Extension..."
cd extensions/vscode && npx -y @vscode/vsce package -o ../../metastackr-vscode.vsix
build-jetbrains:
@echo "📦 Building JetBrains Plugin..."
cd extensions/jetbrains && (./gradlew buildPlugin 2>/dev/null || gradle buildPlugin 2>/dev/null || echo "⚠️ Gradle not installed; skipping JetBrains plugin build")
test:
go test -v ./...
install: build
mkdir -p $(PREFIX)
cp git-meta $(PREFIX)/git-meta
@echo "✅ Installed git-meta to $(PREFIX)/git-meta"
@echo "You can now run 'git meta status', 'git meta checkout', 'git meta push', etc."
clean:
rm -f git-meta metastackrd metastackr-chrome.zip metastackr-vscode.vsix