initial push with clean and rebuild commands
This commit is contained in:
50
engine/compile.go
Normal file
50
engine/compile.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package engine
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
||||
"golang.org/x/sys/windows/registry"
|
||||
)
|
||||
|
||||
func findUnrealVersionPath(version string) (string, error) {
|
||||
//Attempting to build project files programattically
|
||||
k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\EpicGames\Unreal Engine\`+version, registry.QUERY_VALUE)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer k.Close()
|
||||
s, _, err := k.GetStringValue("InstalledDirectory") //Pulling the (Default) value which has the path
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func buildProject(version string, projectABSPath string) error {
|
||||
unrealVersionPath, err := findUnrealVersionPath(version)
|
||||
if err != nil {
|
||||
fmt.Printf("Unable to find the path to Unreal Engine version %s, please build project files manually: %s ", version, err)
|
||||
bufio.NewReader(os.Stdin).ReadBytes('\n')
|
||||
os.Exit(1)
|
||||
}
|
||||
unrealVersionPath = unrealVersionPath + string(filepath.Separator) + "Engine" + string(filepath.Separator) + "Build" + string(filepath.Separator) + "BatchFiles" + string(filepath.Separator) + "Build.bat"
|
||||
checkPath(unrealVersionPath) // Verifying path, will exit if fail
|
||||
fmt.Println("Using Unreal Engine Path: ", unrealVersionPath)
|
||||
// Manually building up the commmand
|
||||
buildArgs := []string{"Development", "Win64", "-Project=" + projectABSPath, "-TargetType=Editor", "-Progress", "-NoEngineChanges", "-NoHotReloadFromIDE"}
|
||||
buildFilesCMD := exec.Command(unrealVersionPath, buildArgs...)
|
||||
// Making sure we write the output of the command to the command prompt
|
||||
out := io.Writer(os.Stdout)
|
||||
buildFilesCMD.Stdout = out
|
||||
// finally running the command
|
||||
err = buildFilesCMD.Run()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user