Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/ClassDeclarationMetaData.h
Robert Manuszewski d80262a45e Fixing UHT not propagating class flags/properties properly
- Small refactor of how and where class flags are parsed
- 'Placeable' is no longer deprecated (it never really was)
- Restoring 'Placeable' keyword on ALandscape

UE-14035

[CL 2518912 by Robert Manuszewski in Main branch]
2015-04-21 05:03:44 -04:00

63 lines
2.0 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#pragma once
/** Structure that holds class meta data generated from its UCLASS declaration */
class FClassDeclarationMetaData
{
public:
FClassDeclarationMetaData();
uint64 ClassFlags;
TMap<FName, FString> MetaData;
FString ClassWithin;
FString ConfigName;
TArray<FString> HideCategories;
TArray<FString> ShowSubCatgories;
TArray<FString> HideFunctions;
TArray<FString> AutoExpandCategories;
TArray<FString> AutoCollapseCategories;
TArray<FString> DependsOn;
TArray<FString> ClassGroupNames;
/**
* Parse Class's properties to generate its declaration data.
*
* @param InClassSpecifiers Class properties collected from its UCLASS macro
* @param InRequiredAPIMacroIfPresent *_API macro if present (empty otherwise)
* @param OutClassData Parsed class meta data
*/
void ParseClassProperties(const TArray<FPropertySpecifier>& InClassSpecifiers, const FString& InRequiredAPIMacroIfPresent);
/**
* Merges all category properties with the class which at this point only has its parent propagated categories
*
* @param Class Class to merge categories for
*/
void MergeClassCategories(FClass* Class);
/**
* Merges all class flags and validates them
*
* @param DeclaredClassName Name this class was declared with (for validation)
* @param PreviousClassFlags Class flags before resetting the class (for validation)
* @param Class Class to merge flags for
* @param AllClasses All known classes
*/
void MergeAndValidateClassFlags(const FString& DeclaredClassName, uint32 PreviousClassFlags, FClass* Class, const FClasses& AllClasses);
private:
/** Merges all 'show' categories */
void MergeShowCategories();
/** Sets and validates 'within' property */
void SetAndValidateWithinClass(FClass* Class, const FClasses& AllClasses);
/** Sets and validates 'ConfigName' property */
void SetAndValidateConfigName(FClass* Class);
TArray<FString> ShowCategories;
TArray<FString> ShowFunctions;
TArray<FString> DontAutoCollapseCategories;
bool WantsToBePlaceable;
};