12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #pragma once
- #include "BeefBoot.h"
- #include "BeefySysLib/FileStream.h"
- #include "BeefySysLib/util/CritSect.h"
- #include "BeefySysLib/util/String.h"
- #include "BeefySysLib/util/Array.h"
- #include "Compiler/BfSystem.h"
- NS_BF_BEGIN
- enum OutputPri
- {
- OutputPri_Low,
- OutputPri_Normal,
- OutputPri_High,
- OutputPri_Warning,
- OutputPri_Error,
- OutputPri_Critical
- };
- enum Verbosity
- {
- Verbosity_Quiet,
- Verbosity_Minimal,
- Verbosity_Normal,
- Verbosity_Detailed,
- Verbosity_Diagnostic,
- };
- class BootApp
- {
- public:
- CritSect mLogCritSect;
- FileStream mLogFile;
- Verbosity mVerbosity;
- BfTargetType mTargetType;
- String mTargetTriple;
- bool mHadCmdLine;
- bool mShowedHelp;
- bool mHadErrors;
- Array<String> mRequestedSrc;
- BfOptLevel mOptLevel;
- BfToolsetType mToolset;
- bool mEmitIR;
- String mBuildDir;
- String mWorkingDir;
- String mDefines;
- String mStartupObject;
- String mTargetPath;
- String mLinkParams;
- BfAsmKind mAsmKind;
- void* mSystem;
- void* mCompiler;
- void* mProject;
- void* mPassInstance;
- bool mIsCERun;
- void* mCELibProject;
- String mCESrc;
- String mCEDest;
- public:
- void Fail(const String & error);
- void OutputLine(const String& text, OutputPri outputPri = OutputPri_Normal);
- bool QueueRun(const String& fileName, const String& args, const String& workingDir, BfpSpawnFlags extraFlags);
- bool CopyFile(const StringImpl& srcPath, const StringImpl& destPath);
- void QueueFile(const StringImpl& path, void* project);
- void QueuePath(const StringImpl& path);
- void DoCompile();
- void DoLinkMS();
- void DoLinkGNU();
- public:
- BootApp();
- ~BootApp();
- bool HandleCmdLine(const String& cmd, const String& param);
- bool Init();
- bool Compile();
- };
- extern BootApp* gApp;
- NS_BF_END
|