Files
ggj26_heron/setup_clangd.sh

52 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Setup clangd for this UE project
# Usage: ./setup_clangd.sh <path_to_ue_engine>
# Example: ./setup_clangd.sh ~/Unreal/UE_5.7
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_FILE="$SCRIPT_DIR/ggj26_heron.uproject"
if [ -z "$1" ]; then
echo "Usage: $0 <path_to_ue_engine>"
echo "Example: $0 ~/Unreal/UE_5.7"
exit 1
fi
UE_PATH="$1"
# Detect platform
if [[ "$OSTYPE" == "darwin"* ]]; then
BUILD_SCRIPT="$UE_PATH/Engine/Build/BatchFiles/Mac/Build.sh"
PLATFORM="Mac"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
BUILD_SCRIPT="$UE_PATH/Engine/Build/BatchFiles/Linux/Build.sh"
PLATFORM="Linux"
elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" || "$OSTYPE" == "win32" ]]; then
BUILD_SCRIPT="$UE_PATH/Engine/Build/BatchFiles/Build.bat"
PLATFORM="Win64"
else
echo "Unsupported platform: $OSTYPE"
exit 1
fi
if [ ! -f "$BUILD_SCRIPT" ]; then
echo "Error: Build script not found at $BUILD_SCRIPT"
echo "Please check your UE engine path"
exit 1
fi
echo "Generating compile_commands.json for $PLATFORM..."
"$BUILD_SCRIPT" -mode=GenerateClangDatabase -project="$PROJECT_FILE" ggj26_heronEditor "$PLATFORM" Development
# Create symlink
COMPILE_DB="$UE_PATH/compile_commands.json"
if [ -f "$COMPILE_DB" ]; then
ln -sf "$COMPILE_DB" "$SCRIPT_DIR/compile_commands.json"
echo "Done! compile_commands.json linked to project root."
else
echo "Error: compile_commands.json was not generated"
exit 1
fi