18struct DockerBuildState
20 std::thread mBuildThread;
21 std::atomic<bool> mRunning{
false};
22 std::atomic<bool> mCancelRequested{
false};
23 std::atomic<bool> mComplete{
false};
24 std::atomic<bool> mSuccess{
false};
25 std::atomic<int> mExitCode{0};
27 std::mutex mOutputMutex;
29 bool mOutputDirty{
false};
32 bool mRunAfterBuild{
false};
33 bool mRunOnDevice{
false};
34 bool mOpenDirectoryOnFinish{
true};
36 std::string mOutputPath;
41 void* mProcessHandle{
nullptr};
78 bool IsOpen()
const {
return mIsOpen; }
90 void BuildAndRunWithProfile(
Platform platform,
bool embedded,
bool runOnDevice =
false);
96 void DrawProfileList();
101 void DrawProfileSettings();
106 void DrawBuildButtons();
111 void DrawDockerWarningPopup();
116 void Draw3dsLinkWarningPopup();
121 void DrawWiiloadWarningPopup();
126 void DrawBuildOutputModal();
129 std::string BuildAllOutputLinesText()
const;
132 std::string BuildSelectedOutputLinesText()
const;
137 void OpenLauncherSettings();
147 void OnBuildAndRun();
152 void OnBuildAndRunOnDevice();
159 void ExecuteBuild(
bool runAfterBuild,
bool runOnDevice =
false);
167 void ExecuteDockerBuild(
const BuildProfile& profile,
bool runAfterBuild,
bool runOnDevice =
false);
175 void StartAsyncDockerBuild(
const BuildProfile& profile,
bool runAfterBuild,
bool runOnDevice);
180 void DockerBuildThreadFunc();
185 void CancelDockerBuild();
190 void FinalizeBuild();
198 void ExecuteLocalBuild(
const BuildProfile& profile,
bool runAfterBuild,
bool runOnDevice =
false);
205 void LaunchEmulator(
const BuildProfile& profile,
const std::string& outputPath);
211 void Launch3dsLink(
const std::string& outputPath);
217 void LaunchWiiload(
const std::string& outputPath);
223 bool CheckDockerAvailable();
230 std::string BuildDockerCommand(
const BuildProfile& profile);
237 std::string GetOutputDirectory(
const BuildProfile& profile);
240 bool mIsOpen =
false;
243 bool mShowDockerWarning =
false;
246 bool mShow3dsLinkWarning =
false;
249 bool mShowWiiloadWarning =
false;
252 bool mBuildInProgress =
false;
255 std::string mPendingOutputPath;
258 char mNameBuffer[256] = {};
261 char mOutputDirBuffer[512] = {};
264 bool mShowBuildModal =
false;
267 DockerBuildState mBuildState;
270 std::string mDisplayOutput;
273 std::set<int> mSelectedLineIndices;
276 int mSelectionAnchor = -1;
279 int mSelectionLineCount = 0;
282 bool mAutoScroll =
true;
285 bool mAutoCloseOnFinish =
false;
288 bool mForceRebuild =
false;
295PackagingWindow* GetPackagingWindow();
Platform
Definition EngineTypes.h:31