Skip to content

Commit a8dac17

Browse files
authored
Merge pull request #16016 from hvitved/csharp/remove-lgtm-autobuilder-options
C#: Remove support for legacy LGTM options in autobuilder
2 parents 332c1e3 + 9d12419 commit a8dac17

File tree

15 files changed

+59
-504
lines changed

15 files changed

+59
-504
lines changed

cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/BuildScripts.cs

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -250,12 +250,7 @@ void EndCallback(int ret, string s, bool silent)
250250
EndCallbackIn.Add(s);
251251
}
252252

253-
CppAutobuilder CreateAutoBuilder(bool isWindows,
254-
string? buildless = null, string? solution = null, string? buildCommand = null, string? ignoreErrors = null,
255-
string? msBuildArguments = null, string? msBuildPlatform = null, string? msBuildConfiguration = null, string? msBuildTarget = null,
256-
string? dotnetArguments = null, string? dotnetVersion = null, string? vsToolsVersion = null,
257-
string? nugetRestore = null, string? allSolutions = null,
258-
string cwd = @"C:\Project")
253+
CppAutobuilder CreateAutoBuilder(bool isWindows, string? dotnetVersion = null, string cwd = @"C:\Project")
259254
{
260255
string codeqlUpperLanguage = Language.Cpp.UpperCaseName;
261256
Actions.GetEnvironmentVariable[$"CODEQL_AUTOBUILDER_{codeqlUpperLanguage}_NO_INDEXING"] = "false";
@@ -265,22 +260,7 @@ CppAutobuilder CreateAutoBuilder(bool isWindows,
265260
Actions.GetEnvironmentVariable[$"CODEQL_EXTRACTOR_{codeqlUpperLanguage}_DIAGNOSTIC_DIR"] = "";
266261
Actions.GetEnvironmentVariable["CODEQL_JAVA_HOME"] = @"C:\codeql\tools\java";
267262
Actions.GetEnvironmentVariable["CODEQL_PLATFORM"] = "win64";
268-
Actions.GetEnvironmentVariable["SEMMLE_DIST"] = @"C:\odasa";
269-
Actions.GetEnvironmentVariable["SEMMLE_JAVA_HOME"] = @"C:\odasa\tools\java";
270-
Actions.GetEnvironmentVariable["SEMMLE_PLATFORM_TOOLS"] = @"C:\odasa\tools";
271-
Actions.GetEnvironmentVariable["LGTM_INDEX_VSTOOLS_VERSION"] = vsToolsVersion;
272-
Actions.GetEnvironmentVariable["LGTM_INDEX_MSBUILD_ARGUMENTS"] = msBuildArguments;
273-
Actions.GetEnvironmentVariable["LGTM_INDEX_MSBUILD_PLATFORM"] = msBuildPlatform;
274-
Actions.GetEnvironmentVariable["LGTM_INDEX_MSBUILD_CONFIGURATION"] = msBuildConfiguration;
275-
Actions.GetEnvironmentVariable["LGTM_INDEX_MSBUILD_TARGET"] = msBuildTarget;
276-
Actions.GetEnvironmentVariable["LGTM_INDEX_DOTNET_ARGUMENTS"] = dotnetArguments;
277-
Actions.GetEnvironmentVariable["LGTM_INDEX_DOTNET_VERSION"] = dotnetVersion;
278-
Actions.GetEnvironmentVariable["LGTM_INDEX_BUILD_COMMAND"] = buildCommand;
279-
Actions.GetEnvironmentVariable["LGTM_INDEX_SOLUTION"] = solution;
280-
Actions.GetEnvironmentVariable["LGTM_INDEX_IGNORE_ERRORS"] = ignoreErrors;
281-
Actions.GetEnvironmentVariable["LGTM_INDEX_BUILDLESS"] = buildless;
282-
Actions.GetEnvironmentVariable["LGTM_INDEX_ALL_SOLUTIONS"] = allSolutions;
283-
Actions.GetEnvironmentVariable["LGTM_INDEX_NUGET_RESTORE"] = nugetRestore;
263+
Actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_OPTION_DOTNET_VERSION"] = dotnetVersion;
284264
Actions.GetEnvironmentVariable["ProgramFiles(x86)"] = isWindows ? @"C:\Program Files (x86)" : null;
285265
Actions.GetCurrentDirectory = cwd;
286266
Actions.IsWindows = isWindows;

cpp/autobuilder/Semmle.Autobuild.Cpp/CppAutobuilder.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ public class CppAutobuilder : Autobuilder<CppAutobuildOptions>
2626

2727
public override BuildScript GetBuildScript()
2828
{
29-
if (Options.BuildCommand != null)
30-
return new BuildCommandRule((_, f) => f(null)).Analyse(this, false);
31-
3229
return
3330
// First try MSBuild
3431
new MsBuildRule().Analyse(this, true) |

csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs

Lines changed: 6 additions & 246 deletions
Large diffs are not rendered by default.

csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ public class CSharpAutobuildOptions : AutobuildOptionsShared
2525
/// </summary>
2626
public CSharpAutobuildOptions(IBuildActions actions) : base(actions)
2727
{
28-
Buildless = actions.GetEnvironmentVariable(lgtmPrefix + "BUILDLESS").AsBool("buildless", false) ||
28+
Buildless =
2929
actions.GetEnvironmentVariable(extractorOptionPrefix + "BUILDLESS").AsBool("buildless", false) ||
3030
actions.GetEnvironmentVariable(buildModeEnvironmentVariable)?.ToLower() == "none";
31+
32+
3133
}
3234
}
3335

@@ -46,21 +48,12 @@ public override BuildScript GetBuildScript()
4648
var attempt = BuildScript.Failure;
4749
switch (GetCSharpBuildStrategy())
4850
{
49-
case CSharpBuildStrategy.CustomBuildCommand:
50-
attempt = new BuildCommandRule(DotNetRule.WithDotNet).Analyse(this, false) & CheckExtractorRun(true);
51-
break;
5251
case CSharpBuildStrategy.Buildless:
5352
// No need to check that the extractor has been executed in buildless mode
5453
attempt = BuildScript.Bind(
5554
AddBuildlessStartedDiagnostic() & new StandaloneBuildRule().Analyse(this, false),
5655
AddBuildlessEndedDiagnostic);
5756
break;
58-
case CSharpBuildStrategy.MSBuild:
59-
attempt = new MsBuildRule().Analyse(this, false) & CheckExtractorRun(true);
60-
break;
61-
case CSharpBuildStrategy.DotNet:
62-
attempt = new DotNetRule().Analyse(this, false) & CheckExtractorRun(true);
63-
break;
6457
case CSharpBuildStrategy.Auto:
6558
attempt =
6659
// Attempt a few different build strategies to see if one works
@@ -246,32 +239,15 @@ Set up a [manual build command]({buildCommandDocsUrl}).
246239
/// </summary>
247240
private CSharpBuildStrategy GetCSharpBuildStrategy()
248241
{
249-
if (Options.BuildCommand is not null)
250-
return CSharpBuildStrategy.CustomBuildCommand;
251-
252242
if (Options.Buildless)
253243
return CSharpBuildStrategy.Buildless;
254244

255-
if (Options.MsBuildArguments is not null
256-
|| Options.MsBuildConfiguration is not null
257-
|| Options.MsBuildPlatform is not null
258-
|| Options.MsBuildTarget is not null)
259-
{
260-
return CSharpBuildStrategy.MSBuild;
261-
}
262-
263-
if (Options.DotNetArguments is not null || Options.DotNetVersion is not null)
264-
return CSharpBuildStrategy.DotNet;
265-
266245
return CSharpBuildStrategy.Auto;
267246
}
268247

269248
private enum CSharpBuildStrategy
270249
{
271-
CustomBuildCommand,
272250
Buildless,
273-
MSBuild,
274-
DotNet,
275251
Auto
276252
}
277253
}

csharp/autobuilder/Semmle.Autobuild.CSharp/DotNetRule.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,7 @@ private static BuildScript GetBuildScript(IAutobuilder<CSharpAutobuildOptions> b
150150
Argument("--no-incremental");
151151

152152
return
153-
script.Argument(builder.Options.DotNetArguments).
154-
QuoteArgument(projOrSln).
153+
script.QuoteArgument(projOrSln).
155154
Script;
156155
}
157156
}

csharp/autobuilder/Semmle.Autobuild.Shared/AutobuildOptions.cs

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,9 @@ namespace Semmle.Autobuild.Shared
1111
/// </summary>
1212
public abstract class AutobuildOptionsShared
1313
{
14-
protected const string lgtmPrefix = "LGTM_INDEX_";
15-
16-
1714
public int SearchDepth { get; } = 3;
1815
public string RootDirectory { get; }
19-
public string? VsToolsVersion { get; }
20-
public string? MsBuildArguments { get; }
21-
public string? MsBuildPlatform { get; }
22-
public string? MsBuildConfiguration { get; }
23-
public string? MsBuildTarget { get; }
24-
public string? DotNetArguments { get; }
2516
public string? DotNetVersion { get; }
26-
public string? BuildCommand { get; }
27-
public IEnumerable<string> Solution { get; }
28-
public bool IgnoreErrors { get; }
29-
30-
public bool AllSolutions { get; }
31-
public bool NugetRestore { get; }
3217
public abstract Language Language { get; }
3318

3419
/// <summary>
@@ -38,19 +23,7 @@ public abstract class AutobuildOptionsShared
3823
public AutobuildOptionsShared(IBuildActions actions)
3924
{
4025
RootDirectory = actions.GetCurrentDirectory();
41-
VsToolsVersion = actions.GetEnvironmentVariable(lgtmPrefix + "VSTOOLS_VERSION");
42-
MsBuildArguments = actions.GetEnvironmentVariable(lgtmPrefix + "MSBUILD_ARGUMENTS")?.AsStringWithExpandedEnvVars(actions);
43-
MsBuildPlatform = actions.GetEnvironmentVariable(lgtmPrefix + "MSBUILD_PLATFORM");
44-
MsBuildConfiguration = actions.GetEnvironmentVariable(lgtmPrefix + "MSBUILD_CONFIGURATION");
45-
MsBuildTarget = actions.GetEnvironmentVariable(lgtmPrefix + "MSBUILD_TARGET");
46-
DotNetArguments = actions.GetEnvironmentVariable(lgtmPrefix + "DOTNET_ARGUMENTS")?.AsStringWithExpandedEnvVars(actions);
47-
DotNetVersion = actions.GetEnvironmentVariable(lgtmPrefix + "DOTNET_VERSION");
48-
BuildCommand = actions.GetEnvironmentVariable(lgtmPrefix + "BUILD_COMMAND");
49-
Solution = actions.GetEnvironmentVariable(lgtmPrefix + "SOLUTION").AsListWithExpandedEnvVars(actions, Array.Empty<string>());
50-
51-
IgnoreErrors = actions.GetEnvironmentVariable(lgtmPrefix + "IGNORE_ERRORS").AsBool("ignore_errors", false);
52-
AllSolutions = actions.GetEnvironmentVariable(lgtmPrefix + "ALL_SOLUTIONS").AsBool("all_solutions", false);
53-
NugetRestore = actions.GetEnvironmentVariable(lgtmPrefix + "NUGET_RESTORE").AsBool("nuget_restore", true);
26+
DotNetVersion = actions.GetEnvironmentVariable("CODEQL_EXTRACTOR_CSHARP_OPTION_DOTNET_VERSION");
5427
}
5528
}
5629

csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,6 @@ public abstract class Autobuilder<TAutobuildOptions> : IAutobuilder<TAutobuildOp
161161
if (matchingFiles.Length == 0)
162162
return null;
163163

164-
if (Options.AllSolutions)
165-
return matchingFiles.Select(p => p.ProjectOrSolution);
166-
167164
return matchingFiles
168165
.Where(f => f.DistanceFromRoot == matchingFiles[0].DistanceFromRoot)
169166
.Select(f => f.ProjectOrSolution);
@@ -185,19 +182,6 @@ protected Autobuilder(IBuildActions actions, TAutobuildOptions options, Diagnost
185182
projectsOrSolutionsToBuildLazy = new Lazy<IList<IProjectOrSolution>>(() =>
186183
{
187184
List<IProjectOrSolution>? ret;
188-
if (options.Solution.Any())
189-
{
190-
ret = new List<IProjectOrSolution>();
191-
foreach (var solution in options.Solution)
192-
{
193-
if (actions.FileExists(solution))
194-
ret.Add(new Solution<TAutobuildOptions>(this, solution, true));
195-
else
196-
logger.LogError($"The specified project or solution file {solution} was not found");
197-
}
198-
return ret;
199-
}
200-
201185
// First look for `.proj` files
202186
ret = FindFiles(".proj", f => new Project<TAutobuildOptions>(this, f))?.ToList();
203187
if (ret is not null)
@@ -285,9 +269,6 @@ public int AttemptBuild()
285269

286270
var script = GetBuildScript();
287271

288-
if (Options.IgnoreErrors)
289-
script |= BuildScript.Success;
290-
291272
void startCallback(string s, bool silent)
292273
{
293274
logger.Log(silent ? Severity.Debug : Severity.Info, $"\nRunning {s}");

csharp/autobuilder/Semmle.Autobuild.Shared/BuildCommandAutoRule.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,6 @@ public BuildScript Analyse(IAutobuilder<AutobuildOptionsShared> builder, bool au
8282
{
8383
var command = new CommandBuilder(builder.Actions, dir, environment);
8484

85-
// A specific Visual Studio version may be required
86-
var vsTools = MsBuildRule.GetVcVarsBatFile(builder);
87-
if (vsTools is not null)
88-
command.CallBatFile(vsTools.Path);
89-
9085
command.RunCommand(this.ScriptPath);
9186
return command.Script;
9287
});

csharp/autobuilder/Semmle.Autobuild.Shared/BuildCommandRule.cs

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)