From f9ea536d4ac5533b09a756665a52ca3a1cf219c7 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Wed, 10 Feb 2021 07:15:18 -0800 Subject: [PATCH] Can set project macro project name like $(BuildDir ProjName) --- IDE/src/IDEApp.bf | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index beb2ab53..18f1b346 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -9164,7 +9164,8 @@ namespace IDE public bool DoResolveConfigString(String platformName, Workspace.Options workspaceOptions, Project project, Project.Options options, StringView configString, String error, String result) { - int i = result.Length; + int startIdx = result.Length; + int i = startIdx; result.Append(configString); bool hadError = false; @@ -9259,6 +9260,26 @@ namespace IDE cmdErr = "Invalid number of arguments"; case "Var": break ReplaceBlock; + case "TargetDir", + "TargetPath", + "ProjectDir", + "BuildDir", + "LinkFlags": + var selProject = mWorkspace.FindProject(args[0]); + if (selProject != null) + { + Workspace.Options selWorkspaceOptions = gApp.GetCurWorkspaceOptions(); + Project.Options selOptions = gApp.GetCurProjectOptions(selProject); + String selConfigString = scope String()..Append(configString); + selConfigString.Remove(i - startIdx + 2 + cmd.Length, parenPos - i - 2 - cmd.Length); + + result.RemoveToEnd(startIdx); + return DoResolveConfigString(platformName, selWorkspaceOptions, selProject, selOptions, selConfigString, error, result); + } + else + cmdErr = "Unable to find project"; + default: + cmdErr = "Invalid command"; } if (newString == null)