From 4cee66b1f8da46bfa791f58218cd3967f1f37442 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 13 Oct 2024 10:43:37 -0400 Subject: [PATCH] Added preprocessor BF_DEPENDS_ --- IDEHelper/Compiler/BfParser.cpp | 15 ++++++++++++++- IDEHelper/Compiler/BfParser.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfParser.cpp b/IDEHelper/Compiler/BfParser.cpp index f927b5b9..20155e52 100644 --- a/IDEHelper/Compiler/BfParser.cpp +++ b/IDEHelper/Compiler/BfParser.cpp @@ -387,11 +387,12 @@ BfParser::BfParser(BfSystem* bfSystem, BfProject* bfProject) : BfSource(bfSystem mInAsmBlock = false; mPreprocessorIgnoredSectionNode = NULL; mPreprocessorIgnoreDepth = 0; + mAddedDependsDefines = false; if (bfProject != NULL) { for (auto macro : bfProject->mPreprocessorMacros) - mPreprocessorDefines[macro] = BfDefineState_FromProject; + mPreprocessorDefines[macro] = BfDefineState_FromProject; } } @@ -927,6 +928,18 @@ void BfParser::HandleUndefine(const StringImpl& name) MaybeBool BfParser::HandleIfDef(const StringImpl& name) { + if ((!mAddedDependsDefines) && (mProject != NULL) && (name.StartsWith("BF_DEPENDS_"))) + { + for (auto project : mProject->mDependencies) + { + StringT<64> def = "BF_DEPENDS_"; + def.Append(project->mName); + MakeUpper(def); + mPreprocessorDefines[def] = BfDefineState_FromProject; + } + mAddedDependsDefines = true; + } + BfDefineState defineState; if (mPreprocessorDefines.TryGetValue(name, &defineState)) { diff --git a/IDEHelper/Compiler/BfParser.h b/IDEHelper/Compiler/BfParser.h index d195576f..cab5bb04 100644 --- a/IDEHelper/Compiler/BfParser.h +++ b/IDEHelper/Compiler/BfParser.h @@ -173,6 +173,7 @@ public: int mJumpTableSize; int mOrigSrcLength; int mDataId; + bool mAddedDependsDefines; int mSrcIdx; int mLineStart;