Surgo/scripts/update_deps.ps1

219 lines
9.0 KiB
PowerShell
Raw Normal View History

2024-04-07 22:32:49 -07:00
clear-host
$path_scripts = $PSScriptRoot
$path_root = split-path -Parent -Path $path_scripts
$ini_parser = join-path $PSScriptRoot 'helpers/ini.ps1'
. $ini_parser
write-host 'ini.ps1 imported'
$path_system_details = join-path $path_scripts 'system_details.ini'
if ( test-path $path_system_details ) {
$iniContent = Get-IniContent $path_system_details
$CoreCount_Physical = $iniContent["CPU"]["PhysicalCores"]
$CoreCount_Logical = $iniContent["CPU"]["LogicalCores"]
}
elseif ( $IsWindows ) {
$CPU_Info = Get-CimInstance ClassName Win32_Processor | Select-Object -Property NumberOfCores, NumberOfLogicalProcessors
$CoreCount_Physical, $CoreCount_Logical = $CPU_Info.NumberOfCores, $CPU_Info.NumberOfLogicalProcessors
new-item -path $path_system_details -ItemType File
"[CPU]" | Out-File $path_system_details
"PhysicalCores=$CoreCount_Physical" | Out-File $path_system_details -Append
"LogicalCores=$CoreCount_Logical" | Out-File $path_system_details -Append
}
write-host "Core Count - Physical: $CoreCount_Physical Logical: $CoreCount_Logical"
$path_ue = join-path $path_root 'UE'
2024-04-08 17:44:32 -07:00
$path_ue_git = join-path $path_ue 'git'
2024-04-07 22:32:49 -07:00
$ue_repo_url = 'https://github.com/EpicGames/UnrealEngine.git'
$ue_branch_5_4 = '5.4'
$ue_branch_release = 'release'
$ue_branch_main = 'ue5-main'
$ue_origin_offical = 'EpicGames'
$git_commit_depth = 1
$flag_branch = '--branch'
$flag_commit_depth = '--depth'
$flag_init = '--init'
$flag_jobs = '--jobs'
$flag_origin = '--origin'
$flag_progress = '--progress'
$flag_recursive = '--recursive'
$flag_shallow_submodules = '--shallow-submodules'
$flag_single_branch = '--single-branch'
2024-04-08 17:44:32 -07:00
if ((test-path $path_ue) -eq $false)
{
new-item -Type Directory $path_ue
}
2024-04-07 22:32:49 -07:00
push-location $path_ue
function invoke-git {
param (
$command
)
write-host $command
& git @command
# 2>&1 | ForEach-Object {
# $color = 'Cyan'
# switch ($_){
# { $_ -match "error" } { $color = 'Red' ; break }
# { $_ -match "warning" } { $color = 'Yellow' ; break }
# }
# Write-Host "`t $_" -ForegroundColor $color
# }
}
2024-04-08 17:44:32 -07:00
if ((test-path $path_ue_git) -eq $false)
2024-04-07 22:32:49 -07:00
{
$clone_5_4 = @()
$clone_5_4 += 'clone'
$clone_5_4 += $flag_progress
$clone_5_4 += @($flag_origin, $ue_origin_offical)
$clone_5_4 += @($flag_branch, $ue_branch_5_4)
$clone_5_4 += $ue_repo_url
$clone_5_4 += @($flag_commit_depth, $git_commit_depth)
$clone_5_4 += $flag_single_branch
$clone_5_4 += @($flag_jobs, $CoreCount_Physical)
$clone_5_4 += $flag_shallow_submodules
$clone_5_4 += $path_ue
invoke-git $clone_5_4
$init_submodules = @()
$init_submodules += 'submodule'
$init_submodules += 'update'
$init_submodules += $flag_init
$init_submodules += @($flag_commit_depth, $git_commit_depth)
$init_submodules += $flag_recursive
$init_submodules += @($flag_jobs, $CoreCount_Physical)
$init_submodules += $flag_single_branch
invoke-git $init_submodules
}
2024-04-08 17:44:32 -07:00
$fgitdep_cache = '--cache'
$fgitdep_dryrun = '--dry-run'
$fgitdep_include = '--include'
$fgitdep_exclude = '--exclude'
$fgitdep_no_cache = '--no-cache'
$path_gitdeps_cache = "C:/dev/epic/GitDeps"
$ue_module_Avalanche = 'Engine/Plugins/Editor/Avalanche'
$ue_module_Harmonix = 'Engine/Plugins/Experimental/Harmonix'
$ue_module_GooglePAD = 'Engine/Plugins/Experimental/GooglePAD'
$ue_module_StormSyncAvalancheBridge = 'Engine/Plugins/Experimental/StormSyncAvalancheBridge'
$ue_module_OnlineSubsystemFacebook = 'Engine/Plugins/Online/OnlineSubsystemFacebook'
$ue_module_OnlineSubsystemGoogle = 'Engine/Plugins/Online/OnlineSubsystemGoogle'
$exclude_list = @()
$exclude_list += 'WinRT'
$exclude_list += 'Mac'
$exclude_list += 'MacOSX'
$exclude_list += 'osx'
$exclude_list += 'osx64'
$exclude_list += 'osx32'
$exclude_list += 'Android'
$exclude_list += 'IOS'
$exclude_list += 'TVOS'
$exclude_list += 'HTML5'
$exclude_list += 'PS4'
$exclude_list += 'XboxOne'
$exclude_list += 'Switch'
$exclude_list += 'Dingo'
$exclude_list += 'GoogleVR'
$exclude_list += 'LeapMotion'
$exclude_list += 'HoloLens'
# $exclude_list += 'Engine/Plugins/Editor/DisplayClusterLaunch'
# $exlcude_list += 'Engine/Plugins/Experimental/AR'
$exclude_list += $ue_module_Avalanche
$exclude_list += $ue_module_Harmonix
$exclude_list += $ue_module_GooglePAD
# $exclude_list += 'Engine/Plugins/Experimental/LiveLinkOvernDisplay'
# $exclude_list += 'Engine/Plugins/Experimental/MeshModelingToolset'
# $exclude_list += 'Engine/Plugins/Experimental/Mutable'
# $exclude_list += 'Engine/Plugins/Experimental/ResonanceAudio'
# $exclude_list += 'Engine/Plugins/Experimental/OpenCV'
$exclude_list += $ue_module_StormSyncAvalancheBridge
# $exclude_list += 'Engine/Plugins/Runtime/nDisplay'
# $exclude_list += 'Engine/Plugins/Runtime/nDisplayModularFeatures'
# $exclude_list += 'Engine/Source/Thirdparty/CEF3'
# $exclude_list += 'Engine/Plugins/Runtime/LiveLinkOvernDisplay'
# LiveLinkXR is in here...
# $exclude_list += 'VirtualProduction'
# $exclude_list += 'VirtualProductionUtilities'
# $exclude_list += 'Engine/Plugins/VirtualProduction'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/CameraCalibration'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/CameraCalibrationCore'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/CompositePlane'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/DataCharts'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/DMX'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/EpicStageApp'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/ICVFX'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/ICVFXTesting'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LedWallCalibration'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LensComponent'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LevelSnapshots'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkCamera'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkFreeD'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkInputDevice'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkInputLens'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkMasterLockit'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkPrestonMDR'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkVRPN'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/LiveLinkXR'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/MultiUserTakes'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/RemoteControl'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/RemoteControlInterception'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/RemoteControlProtocolIDMX'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/RemoteControlProtocolIMIDI'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/RemoteControlProtocolIOSC'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/RemoteControlWebInterface'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/Rivermax'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/SequencePlaylists'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/StageMonitoring'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/Switchboard'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/Takes'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/TextureShare'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/TimedDataMonitor'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/VirtualCamera'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/VirtualCameraCore'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/VPRoles'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProduction/VPSettings'
# $exclude_list += 'Engine/Plugins/Experimental/VirtualProductionUtilities'
$exclude_list += $ue_module_OnlineSubsystemFacebook
$exclude_list += $ue_module_OnlineSubsystemGoogle
$setup_args = @()
foreach ($entry in $exclude_list) {
$setup_args += "$fgitdep_exclude=$entry"
# remove-item $entry -Recurse
}
$setup_args += "$fgitdep_cache=$path_gitdeps_cache"
# $setup_args += $fgitdep_dryrun
$path_setup_log = 'setup_log.txt'
& .\Setup.bat $setup_args
# $output = Start-Process -FilePath "cmd.exe" -ArgumentList "/c .\Setup.bat $setup_args" -Wait -PassThru -NoNewWindow -RedirectStandardOutput $path_setup_log
2024-04-07 22:32:49 -07:00
& .\GenerateProjectFiles.bat
2024-04-08 17:44:32 -07:00
$path_templates = join-path $path_ue 'Templates'
remove-item $path_templates
2024-04-07 22:32:49 -07:00
pop-location # $path_ue