diff options
Diffstat (limited to 'src/qtprojectlib/MsBuildProject.cs')
-rw-r--r-- | src/qtprojectlib/MsBuildProject.cs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/qtprojectlib/MsBuildProject.cs b/src/qtprojectlib/MsBuildProject.cs index 8e50b74e..70aafd16 100644 --- a/src/qtprojectlib/MsBuildProject.cs +++ b/src/qtprojectlib/MsBuildProject.cs @@ -879,15 +879,25 @@ namespace QtProjectLib new XAttribute("ConfigName", configId))); var configName = (string)row.config.Element(ns + "Configuration"); var platformName = (string)row.config.Element(ns + "Platform"); + + /////////////////////////////////////////////////////////////////////////////// + // Replace fixed values with VS macros + // + // * Filename, e.g. foo.ui --> %(Filename)%(Extension) var commandLine = row.command.Value .Replace(Path.GetFileName(row.itemName), "%(Filename)%(Extension)", - StringComparison.InvariantCultureIgnoreCase) + StringComparison.InvariantCultureIgnoreCase); + // + // * Context specific, e.g. ui_foo.h --> ui_%(FileName).h + foreach (var replace in extraReplacements) + commandLine = replace(row.itemName, commandLine); + // + // * Configuration/platform, e.g. x64\Debug --> $(Platform)\$(Configuration) + commandLine = commandLine .Replace(configName, "$(Configuration)", StringComparison.InvariantCultureIgnoreCase) .Replace(platformName, "$(Platform)", StringComparison.InvariantCultureIgnoreCase); - foreach (var replace in extraReplacements) - commandLine = replace(row.itemName, commandLine); evaluator.Properties.Clear(); foreach (var configProp in row.config.Elements()) |