EM_Task/CoreUObject/Public/UObject/LinkerDiff.h
Boshuang Zhao 5144a49c9b add
2026-02-13 16:18:33 +08:00

44 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
class FLinker;
struct FLinkerExportObject;
class FOutputDevice;
class FLinkerDiff
{
public:
static COREUOBJECT_API FLinkerDiff CompareLinkers(FLinker* LHSLinker, FLinker* RHSLinker);
COREUOBJECT_API bool HasDiffs() const;
COREUOBJECT_API void PrintDiff(FOutputDevice& Ar);
private:
void Generate(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateSummaryDiff(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateNameMapDiff(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateGatherableTextDataMapDiff(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateImportMapDiff(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateExportAndDependsMapDiff(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateSofPackageReferenceDiff(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateSearchableNameMapDiff(FLinker* LHSLinker, FLinker* RHSLinker);
void GenerateExportDiff(FLinker* LHSLinker, const FLinkerExportObject& LHSExport, const FLinkerExportObject& RHSExport);
void GenerateDependsArrayDiff(FLinker* LHSLinker, int32 LHSIndex, FLinker* RHSLinker, int32 RHSIndex);
void GenerateSearchableNameArrayDiff(const TArray<FName>& LHSNameArray, const TArray<FName>& RHSNameArray);
// Array of diffs
FString PackageName;
TArray<FString> SummaryDiffs;
TArray<FString> NameMapDiffs;
TArray<FString> GatherableTextDataDiffs;
TArray<FString> ImportDiffs;
TArray<FString> ExportDiffs;
TArray<FString> SoftPackageReferenceDiffs;
TArray<FString> SearchableNameDiffs;
};