From 70adbbaa9ff560f4893897e733cff9ffbf17c2bb Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 1 Mar 2022 12:57:22 -0800 Subject: [PATCH] Added reference string to queued execution --- IDE/src/BuildContext.bf | 10 +++++++++- IDE/src/IDEApp.bf | 12 +++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/IDE/src/BuildContext.bf b/IDE/src/BuildContext.bf index 1361d3eb..5621d6f4 100644 --- a/IDE/src/BuildContext.bf +++ b/IDE/src/BuildContext.bf @@ -189,7 +189,11 @@ namespace IDE } else if (!isExe) return true; - + + String projectBuildDir = scope String(); + gApp.GetProjectBuildDir(project, projectBuildDir); + File.WriteAll(scope $"{projectBuildDir}/ObjectArgs.txt", .((.)objectsArg.Ptr, objectsArg.Length)).IgnoreError(); + String arCmds = scope String(""); //-O2 -Rpass=inline //(doClangCPP ? "-lc++abi " : "") + @@ -274,6 +278,7 @@ namespace IDE cmdLine.AppendF("-M"); var runCmd = gApp.QueueRun(arPath, cmdLine, workingDir, .UTF8); + runCmd.mReference = new String(project.mProjectName); runCmd.mOnlyIfNotFailed = true; runCmd.mStdInData = new .(arCmds); var tagetCompletedCmd = new IDEApp.TargetCompletedCmd(project); @@ -543,6 +548,7 @@ namespace IDE } var runCmd = gApp.QueueRun(compilerExePath, linkLine, workingDir, .UTF8); + runCmd.mReference = new .(project.mProjectName); runCmd.mOnlyIfNotFailed = true; var tagetCompletedCmd = new IDEApp.TargetCompletedCmd(project); tagetCompletedCmd.mOnlyIfNotFailed = true; @@ -661,6 +667,7 @@ namespace IDE linkLine.Replace('\\', '/'); var runCmd = gApp.QueueRun(compilerExePath, linkLine, project.mProjectDir, .UTF8); + runCmd.mReference = new .(project.mProjectName); runCmd.mOnlyIfNotFailed = true; var tagetCompletedCmd = new IDEApp.TargetCompletedCmd(project); tagetCompletedCmd.mOnlyIfNotFailed = true; @@ -1195,6 +1202,7 @@ namespace IDE } var runCmd = gApp.QueueRun(linkerPath, linkLine, gApp.mInstallDir, .UTF16WithBom); + runCmd.mReference = new .(project.mProjectName); runCmd.mEnvVars = new .() { (new String("VSLANG"), new String("1033")) }; runCmd.mOnlyIfNotFailed = true; var tagetCompletedCmd = new IDEApp.TargetCompletedCmd(project); diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index 2356b543..4431464a 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -453,6 +453,7 @@ namespace IDE public class ExecutionQueueCmd : ExecutionCmd { + public String mReference ~ delete _; public String mFileName ~ delete _; public String mArgs ~ delete _; public String mWorkingDir ~ delete _; @@ -8212,7 +8213,7 @@ namespace IDE NoWait = 8, } - public ExecutionInstance DoRun(String inFileName, String args, String workingDir, ArgsFileKind useArgsFile, Dictionary envVars = null, String stdInData = null, RunFlags runFlags = .None) + public ExecutionInstance DoRun(String inFileName, String args, String workingDir, ArgsFileKind useArgsFile, Dictionary envVars = null, String stdInData = null, RunFlags runFlags = .None, String reference = null) { //Debug.Assert(executionInstance == null); @@ -8310,7 +8311,11 @@ namespace IDE if (!startInfo.[Friend]mFileName.IsEmpty) { - OutputLine("Executing: {0} {1}", startInfo.[Friend]mFileName, showArgs); + if (reference != null) + OutputLine($"Executing ({reference}): {startInfo.[Friend]mFileName} {showArgs}"); + else + OutputLine($"Executing: {startInfo.[Friend]mFileName} {showArgs}"); + if ((mVerbosity >= .Diagnostic) && (useArgsFile != .None)) OutputLine("Arg file contents: {0}", args); } @@ -8667,7 +8672,8 @@ namespace IDE ReplaceVariables(kv.value); } - var executionInstance = DoRun(executionQueueCmd.mFileName, executionQueueCmd.mArgs, executionQueueCmd.mWorkingDir, executionQueueCmd.mUseArgsFile, executionQueueCmd.mEnvVars, executionQueueCmd.mStdInData, executionQueueCmd.mRunFlags); + var executionInstance = DoRun(executionQueueCmd.mFileName, executionQueueCmd.mArgs, executionQueueCmd.mWorkingDir, executionQueueCmd.mUseArgsFile, + executionQueueCmd.mEnvVars, executionQueueCmd.mStdInData, executionQueueCmd.mRunFlags, executionQueueCmd.mReference); if (executionInstance != null) { executionInstance.mParallelGroup = executionQueueCmd.mParallelGroup;