Added windows build support

This commit is contained in:
2025-10-03 15:45:19 +02:00
parent 3b366cbbae
commit fc3a0d026f
3 changed files with 56 additions and 34 deletions

View File

@@ -1,38 +1,26 @@
[
{
"enginePath": "/home/yann/Apps/UE_5.5/",
"projectPath": "/home/yann/Projects/unreal/NpcChatbot/",
"projectName": "NpcChatbot",
"engineVersion": "5.5"
},
{
"enginePath": "/home/yann/Apps/UE_5.5/",
"projectPath": "/home/yann/Projects/unreal/jsbsim/UnrealEngine/",
"projectName": "UEReferenceApp",
"engineVersion": "5.5"
},
{
"enginePath": "/home/yann/Apps/UE_5.5/",
"projectPath": "/run/media/yann/Devel/Unreal/AeroSyncUFS",
"enginePath": "D:/Devel/UE_5.7",
"projectPath": "E:/unreal/AeroSyncFS/",
"projectName": "MiniFS",
"engineVersion": "5.5"
"engineVersion": "5.7"
},
{
"enginePath": "/home/yann/Apps/UE_5.5/",
"projectPath": "/run/media/yann/Devel/Unreal/CyberneticRequiem",
"enginePath": "D:/Devel/UE_5.7",
"projectPath": "E:/unreal/CyberneticRequiem/",
"projectName": "CyberneticRequiem",
"engineVersion": "5.5"
"engineVersion": "5.7"
},
{
"enginePath": "/home/yann/Apps/UE_5.5/",
"projectPath": "/run/media/yann/Devel/Unreal/DVRSimulator",
"enginePath": "D:/Devel/UE_5.5",
"projectPath": "E:/unreal/DVRSimulator/",
"projectName": "DVRSimulator",
"engineVersion": "5.5"
},
{
"enginePath": "/home/yann/Apps/UE_5.5/",
"projectPath": "/run/media/yann/Devel/Unreal/GunSpinningVR",
"projectName": "GSPVR",
"enginePath": "D:/Devel/UE_5.5",
"projectPath": "E:/novelab/unreal/SNCF_Regiolis",
"projectName": "SNCF_Regiolis",
"engineVersion": "5.5"
}
]

2
ui.go
View File

@@ -28,7 +28,7 @@ func NewProjectRow(project Project) fyne.CanvasObject {
}
icon := canvas.NewImageFromResource(projectIcon)
icon.SetMinSize(fyne.NewSize(48, 48))
icon.SetMinSize(fyne.NewSize(64, 64))
nameLabel := widget.NewLabel(projectName + " / Unreal Engine " + project.Version)
nameLabel.Alignment = fyne.TextAlignLeading

View File

@@ -71,33 +71,67 @@ func CleanUnrealProject(project Project) {
}
func GenerateUnrealSolution(project Project) {
var buildCmd string
var cmd *exec.Cmd
projectFile := project.ProjectPath + "/" + project.ProjectName + ".uproject"
switch runtime.GOOS {
case "linux":
buildCmd = project.EnginePath + "/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh"
buildCmd := project.EnginePath + "/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh"
cmd = exec.Command(buildCmd, projectFile, "-game")
case "darwin":
buildCmd = project.EnginePath + "/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh"
buildCmd := project.EnginePath + "/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh"
cmd = exec.Command(buildCmd, projectFile, "-game")
case "windows":
editor := project.EnginePath + "\\Engine\\Binaries\\Win64\\UnrealEditor.exe"
cmd = exec.Command(
editor,
projectFile,
"-projectfiles",
"-progress",
"-waitmutex",
"-NoHotReloadFromIDE",
)
default:
fmt.Println("Generate Project is not yet supported on Windows")
fmt.Println("Generate Project is not supported on this platform:", runtime.GOOS)
return
}
projectCmd := project.ProjectPath + "/" + project.ProjectName + ".uproject"
cmd := exec.Command(buildCmd, projectCmd, "-game")
logToOutput(cmd)
}
func BuildUnrealSolution(project Project) {
var cmd *exec.Cmd
projectFile := project.ProjectPath + "/" + project.ProjectName + ".uproject"
switch runtime.GOOS {
case "linux":
cmd := exec.Command("make", "-C", project.ProjectPath, project.ProjectName)
logToOutput(cmd)
cmd = exec.Command("make", "-C", project.ProjectPath, project.ProjectName)
case "windows":
buildBatch := project.EnginePath + "\\Engine\\Build\\BatchFiles\\Build.bat"
target := project.ProjectName + "Editor"
platform := "Win64"
config := "Development"
cmd = exec.Command(
buildBatch,
target,
platform,
config,
"-Project="+projectFile,
"-WaitMutex",
)
default:
fmt.Println("Build Project is not yet supported on Windows")
fmt.Println("Build Project is not yet supported on this platform:", runtime.GOOS)
return
}
logToOutput(cmd)
}
func RunUnrealProject(project Project) {