Files
UnrealEngineUWP/Engine/Source/Editor/VirtualizationEditor/Private/VirtualizeProjectCommandlet.cpp
paul chipchase bfe122f342 Add a new commandlet for virtualizing an entire project.
#rb Per.Larsson
#jira UE-172166
#rnx
#preflight 63c64982d040694ab83efdd1

- Cmdline to use '-run=VirtualizationEditor.VirtualizeProject'.
- The commandlet will first scan the project to find all packages (.uasset/.umap) and then attempt to virtualize them.
- If revision control is enabled then virtualized packages will be checked out using the current settings for the project (so things like -P4Changelist= will work)

[CL 23735820 by paul chipchase in ue5-main branch]
2023-01-17 04:19:43 -05:00

40 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "VirtualizeProjectCommandlet.h"
#include "CommandletUtils.h"
#include "Virtualization/VirtualizationSystem.h"
UVirtualizeProjectCommandlet::UVirtualizeProjectCommandlet(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
int32 UVirtualizeProjectCommandlet::Main(const FString& Params)
{
TRACE_CPUPROFILER_EVENT_SCOPE(UVirtualizeProjectCommandlet);
UE_LOG(LogVirtualization, Display, TEXT("Scanning for project packages..."));
TArray<FString> Packages = UE::Virtualization::FindAllPackages();
UE_LOG(LogVirtualization, Display, TEXT("Virtualizing packages..."));
UE::Virtualization::IVirtualizationSystem& System = UE::Virtualization::IVirtualizationSystem::Get();
UE::Virtualization::FVirtualizationResult Result = System.TryVirtualizePackages(Packages, UE::Virtualization::EVirtualizationOptions::Checkout);
if (Result.WasSuccessful())
{
UE_LOG(LogVirtualization, Display, TEXT("Virtualized %d package(s)"), Result.VirtualizedPackages.Num());
if (!Result.CheckedOutPackages.IsEmpty())
{
UE_LOG(LogVirtualization, Display, TEXT("Checked out %d package(s) from revision control"), Result.CheckedOutPackages.Num());
}
return 0;
}
else
{
return -1;
}
}