Created
April 5, 2021 22:12
-
-
Save devrique/1e9fa5f4090936b351f569251639de98 to your computer and use it in GitHub Desktop.
Godot Engine Easy Recompile Script for Windows 10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## | |
# - Author: devrique (Enrique AM). | |
# - Description: | |
# This script makes easier to recompile Godot Engine project for Windows OS. | |
# SCons has to be installed previously before launching the script, and also | |
# variables from line 10 to 15 have to be configured. | |
# After that, launching the script will prompt for debug or release target and | |
# for tool compilation. It will do a git pull from the repo on the current branch | |
# and execute the scons compilation. | |
# At the end, it will open the two configured folders on Explorer to move manually | |
# the needed files from origin to destination. | |
# - License: GPLv3. | |
## | |
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process | |
# Stop if there's an error. | |
$ErrorActionPreference = "Stop" | |
$target = "debug" # "debug"/"release_debug" | |
$tools = "yes" # Set "no" for export executables. | |
# CONFIGURE THESE VARIABLES MANUALLY! | |
$repo_path = "PATH-TO-GODOT-REPO-ROOT" | |
$destination_path = "DESTINATION-PATH" | |
$bits = "64" | |
$threads = "6" | |
$platform = "windows" | |
# Begin process. | |
Write-Host "Godot recompile script executed, begin? (y/anything)" | |
$key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | |
if ($key.Character -eq 'y') | |
{ | |
# Select target version. | |
Write-Host "Target: Debug or release version? (d/r)" | |
do { | |
$target_key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | |
} until ($target_key.Character -eq 'd' -or $target_key.Character -eq 'r') | |
if ($target_key.Character -eq 'd') { | |
$target = "debug" | |
} else { | |
$target = "release_debug" | |
} | |
Write-Host "Target selected: $target." | |
# Select to compile with or without tools. | |
Write-Host "Compile tools? (Select 'n' to compile for export executables) (y/n)" | |
do { | |
$tools_key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | |
} until ($tools_key.Character -eq 'y' -or $tools_key.Character -eq 'n') | |
if ($tools_key.Character -eq 'y') { | |
$tools = "yes" | |
} else { | |
$tools = "no" | |
} | |
Write-Host "Compile tools: $tools." | |
Write-Host "Accessing Godot repo folder..." | |
cd $repo_path | |
Write-Host "Downloading changes..." | |
git pull | |
Write-Host "Compiling Godot with SCons..." | |
scons --jobs $threads platform=$platform tools=$tools target=$target bits=$bits | |
# Open origin and destination paths on Explorer to manually move the needed files. | |
explorer .\bin\ | |
explorer $destination_path | |
git log -1 | |
} | |
Write-Host "Godot recompile script ending... Press Enter to close." | |
do | |
{ | |
$end_key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | |
} | |
until ($end_key.VirtualKeyCode -eq 13) # Enter. | |
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope Process |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment