-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSetupProjectFiles.sh
More file actions
47 lines (39 loc) · 1.55 KB
/
SetupProjectFiles.sh
File metadata and controls
47 lines (39 loc) · 1.55 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
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
GEN_PATH="$SCRIPT_DIR/UECustom/GenerateProjectFiles.sh"
UE_SLN="$SCRIPT_DIR/UnrealWorld.sln"
GT_SLN="$SCRIPT_DIR/GameTools/GameTools.sln"
SF_GUID="{2150E333-8FDC-42A3-9474-1A3956D46DE8}"
echo "=== [1/4] Generating UE project files ==="
"$GEN_PATH" "$SCRIPT_DIR/UnrealWorld.uproject" -Game -Engine
echo "=== [2/4] Registering GameTools projects ==="
if [ -f "$GT_SLN" ]; then
dotnet sln "$GT_SLN" add "$SCRIPT_DIR/GameTools/DataGenerator/DataGenerator.csproj" 2>/dev/null || true
dotnet sln "$GT_SLN" add "$SCRIPT_DIR/GameTools/WorldGenerator/WorldGenerator.csproj" 2>/dev/null || true
fi
echo "=== [3/4] Adding Solution Folders to UnrealWorld.sln ==="
add_solution_folder() {
local sln="$1" name="$2" path="$3" guid="$4"
if ! grep -q "$SF_GUID.*$name" "$sln" 2>/dev/null; then
cat >> "$sln" <<EOF
Project("$SF_GUID") = "$name", "$path", "$guid"
EndProject
EOF
fi
}
add_solution_folder "$UE_SLN" "GameData" "GameData" "$SF_GUID-0001-0001-0001-000000000001"
add_solution_folder "$UE_SLN" "GameTools" "GameTools" "$SF_GUID-0002-0002-0002-000000000002"
if ! grep -q "NestedProjects" "$UE_SLN" 2>/dev/null; then
cat >> "$UE_SLN" <<EOF
Global
GlobalSection(NestedProjects) = preSolution
$SF_GUID-0001-0001-0001-000000000001 = $SF_GUID
$SF_GUID-0002-0002-0002-000000000002 = $SF_GUID
EndGlobalSection
EndGlobal
EOF
fi
echo "=== [4/4] Done ==="
echo "UE Solution: UnrealWorld.sln (GameData/, GameTools/ folders)"
echo "GameTools: GameTools/GameTools.sln"