diff --git a/projects.json b/projects.json index dbd0a60..332ae1d 100644 --- a/projects.json +++ b/projects.json @@ -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" } ] diff --git a/ui.go b/ui.go index 8322352..8dcb617 100644 --- a/ui.go +++ b/ui.go @@ -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 diff --git a/utils.go b/utils.go index d459944..5e86416 100644 --- a/utils.go +++ b/utils.go @@ -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) {