| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/bin/bash
- set -eu
- npm run protos
- npm run protos-go
- mkdir -p dist-standalone/extension
- cp package.json dist-standalone/extension
- # Extract version information for ldflags
- CORE_VERSION=$(node -p "require('./package.json').version")
- CLI_VERSION=$(node -p "require('./cli/package.json').version")
- COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
- DATE=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
- BUILT_BY="${USER:-unknown}"
- # Build ldflags to inject version info
- LDFLAGS="-X 'github.com/cline/cli/pkg/cli/global.Version=${CORE_VERSION}' \
- -X 'github.com/cline/cli/pkg/cli/global.CliVersion=${CLI_VERSION}' \
- -X 'github.com/cline/cli/pkg/cli/global.Commit=${COMMIT}' \
- -X 'github.com/cline/cli/pkg/cli/global.Date=${DATE}' \
- -X 'github.com/cline/cli/pkg/cli/global.BuiltBy=${BUILT_BY}'"
- cd cli
- # Define target platforms for cross-compilation
- PLATFORMS=(
- "darwin/arm64"
- "darwin/amd64"
- "linux/amd64"
- "linux/arm64"
- )
- # Build binaries for all platforms
- for platform in "${PLATFORMS[@]}"; do
- GOOS=${platform%/*}
- GOARCH=${platform#*/}
-
- echo "Building for $GOOS/$GOARCH..."
-
- # Build cline binary
- OUTPUT_NAME="bin/cline-${GOOS}-${GOARCH}"
- if [ "$GOOS" = "windows" ]; then
- OUTPUT_NAME="${OUTPUT_NAME}.exe"
- fi
-
- GO111MODULE=on GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "$LDFLAGS" -o "$OUTPUT_NAME" ./cmd/cline
- echo " ✓ $OUTPUT_NAME built"
-
- # Build cline-host binary
- OUTPUT_NAME="bin/cline-host-${GOOS}-${GOARCH}"
- if [ "$GOOS" = "windows" ]; then
- OUTPUT_NAME="${OUTPUT_NAME}.exe"
- fi
-
- GO111MODULE=on GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "$LDFLAGS" -o "$OUTPUT_NAME" ./cmd/cline-host
- echo " ✓ $OUTPUT_NAME built"
- done
- echo ""
- echo "All platform binaries built successfully!"
- # Copy binaries to dist-standalone/bin
- cd ..
- mkdir -p dist-standalone/bin
- cp cli/bin/cline-* dist-standalone/bin/
- echo 'Copied all platform binaries to dist-standalone/bin/'
|