1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 20:42:21 +02:00

Improved CE TypeDeclaration handling, including proper rebuilding

This commit is contained in:
Brian Fiete 2025-01-15 09:59:47 -08:00
parent 25eb2a13a3
commit 5f4514211e
10 changed files with 266 additions and 38 deletions

View file

@ -1404,6 +1404,15 @@ public:
DeleteStage_AwaitingRefs,
};
enum DependencyKind
{
DependencyKind_None,
DependencyKind_Dependency,
DependencyKind_Identity,
DependencyKind_Dependent_Exclusive,
DependencyKind_Dependent_Shared
};
public:
BfSystem* mSystem;
String mName;
@ -1425,6 +1434,7 @@ public:
HashSet<BfModule*> mUsedModules;
HashSet<BfType*> mReferencedTypeData;
HashSet<BfProject*> mDependencySet;
Dictionary<BfProject*, DependencyKind> mDependencyKindDict;
Val128 mBuildConfigHash;
Val128 mVDataConfigHash;
@ -1435,10 +1445,12 @@ public:
BfProject();
~BfProject();
void ClearCache();
bool ContainsReference(BfProject* refProject);
bool ReferencesOrReferencedBy(BfProject* refProject);
bool IsTestProject();
bool HasDependency(BfProject* project);
bool HasDependency(BfProject* project);
DependencyKind GetDependencyKind(BfProject* project);
};
//CDH TODO move these out to separate header if list gets big/unwieldy
@ -1864,6 +1876,7 @@ public:
BfParser* CreateParser(BfProject* bfProject);
BfCompiler* CreateCompiler(bool isResolveOnly);
BfProject* GetProject(const StringImpl& projName);
uint64 GetTypeDeclListHash();
BfTypeReference* GetTypeRefElement(BfTypeReference* typeRef);
BfTypeDef* FilterDeletedTypeDef(BfTypeDef* typeDef);