mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-11 21:04:10 +02:00
Refactored prebuild/postbuild command handling
This commit is contained in:
parent
85c9a6ebc8
commit
b356e4735c
3 changed files with 32 additions and 12 deletions
|
@ -118,7 +118,7 @@ namespace IDE
|
||||||
|
|
||||||
bool didCommands = false;
|
bool didCommands = false;
|
||||||
|
|
||||||
let targetName = scope String("Project ", project.mProjectName);
|
//let targetName = scope String("Project ", project.mProjectName);
|
||||||
|
|
||||||
//Console.WriteLine("Executing custom command {0} {1} {2}", highestDateTime, targetDateTime, forceRebuild);
|
//Console.WriteLine("Executing custom command {0} {1} {2}", highestDateTime, targetDateTime, forceRebuild);
|
||||||
for (let origCustomCmd in cmdList)
|
for (let origCustomCmd in cmdList)
|
||||||
|
@ -159,19 +159,13 @@ namespace IDE
|
||||||
didCommands = true;
|
didCommands = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mScriptManager.QueueCommands(customCmd, scope String()..AppendF("project {}", project.mProjectName), .NoLines);
|
let scriptCmd = new IDEApp.ScriptCmd();
|
||||||
|
scriptCmd.mCmd = new String(customCmd);
|
||||||
|
scriptCmd.mPath = new $"project {project.mProjectName}";
|
||||||
|
gApp.mExecutionQueue.Add(scriptCmd);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
let targetCompleteCmd = new IDEApp.TargetCompletedCmd(project);
|
|
||||||
if (didCommands)
|
|
||||||
{
|
|
||||||
mScriptManager.QueueCommands(scope String()..AppendF("%targetComplete {}", project.mProjectName), targetName, .NoLines);
|
|
||||||
targetCompleteCmd.mIsReady = false;
|
|
||||||
project.mNeedsTargetRebuild = true;
|
|
||||||
}
|
|
||||||
gApp.mExecutionQueue.Add(targetCompleteCmd);
|
|
||||||
|
|
||||||
return didCommands ? .HadCommands : .NoCommands;
|
return didCommands ? .HadCommands : .NoCommands;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -435,6 +435,12 @@ namespace IDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ScriptCmd : ExecutionCmd
|
||||||
|
{
|
||||||
|
public String mCmd ~ delete _;
|
||||||
|
public String mPath ~ delete _;
|
||||||
|
}
|
||||||
|
|
||||||
public enum ArgsFileKind
|
public enum ArgsFileKind
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
|
@ -8257,6 +8263,21 @@ namespace IDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (let scriptCmd = next as ScriptCmd)
|
||||||
|
{
|
||||||
|
if (mBuildContext?.mScriptManager != null)
|
||||||
|
{
|
||||||
|
if (scriptCmd.mCmd != null)
|
||||||
|
{
|
||||||
|
mBuildContext.mScriptManager.QueueCommands(scriptCmd.mCmd, scriptCmd.mPath, .NoLines);
|
||||||
|
DeleteAndNullify!(scriptCmd.mCmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mBuildContext.mScriptManager.HasQueuedCommands)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defer delete next;
|
defer delete next;
|
||||||
mExecutionQueue.RemoveAt(0);
|
mExecutionQueue.RemoveAt(0);
|
||||||
|
|
||||||
|
@ -8412,6 +8433,11 @@ namespace IDE
|
||||||
if (gApp.mDebugger.mIsRunning)
|
if (gApp.mDebugger.mIsRunning)
|
||||||
mProfilePanel.StartProfiling(profileCmd.mThreadId, profileCmd.mDesc, profileCmd.mSampleRate);
|
mProfilePanel.StartProfiling(profileCmd.mThreadId, profileCmd.mDesc, profileCmd.mSampleRate);
|
||||||
}
|
}
|
||||||
|
else if (var scriptCmd = next as ScriptCmd)
|
||||||
|
{
|
||||||
|
// Already handled
|
||||||
|
(void)scriptCmd;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Runtime.FatalError("Unknown command");
|
Runtime.FatalError("Unknown command");
|
||||||
|
|
|
@ -1007,7 +1007,7 @@ namespace IDE
|
||||||
if (!gApp.[Friend]mExecutionQueue.IsEmpty)
|
if (!gApp.[Friend]mExecutionQueue.IsEmpty)
|
||||||
{
|
{
|
||||||
var nextCmd = gApp.mExecutionQueue[0];
|
var nextCmd = gApp.mExecutionQueue[0];
|
||||||
if (!(nextCmd is IDEApp.TargetCompletedCmd))
|
if (!(nextCmd is IDEApp.ScriptCmd))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue