diff --git a/extensions/ql-vscode/src/codeql-cli/cli.ts b/extensions/ql-vscode/src/codeql-cli/cli.ts index c055b4b2b..fe9e02115 100644 --- a/extensions/ql-vscode/src/codeql-cli/cli.ts +++ b/extensions/ql-vscode/src/codeql-cli/cli.ts @@ -1818,6 +1818,8 @@ export class CliVersionConstraint { "2.12.4", ); + public static CLI_VERSION_GLOBAL_CACHE = new SemVer("2.12.4"); + constructor(private readonly cli: CodeQLCliServer) { /**/ } @@ -1887,4 +1889,8 @@ export class CliVersionConstraint { CliVersionConstraint.CLI_VERSION_WITH_ADDITIONAL_PACKS_INSTALL, ); } + + async usesGlobalCompilationCache() { + return this.isVersionAtLeast(CliVersionConstraint.CLI_VERSION_GLOBAL_CACHE); + } } diff --git a/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts b/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts index 1ccf46042..a45418e3b 100644 --- a/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts +++ b/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts @@ -116,12 +116,16 @@ async function generateQueryPack( let precompilationOpts: string[] = []; if (await cliServer.cliConstraints.supportsQlxRemote()) { - const ccache = join(originalPackRoot, ".cache"); - precompilationOpts = [ - "--qlx", - "--no-default-compilation-cache", - `--compilation-cache=${ccache}`, - ]; + if (await cliServer.cliConstraints.usesGlobalCompilationCache()) { + precompilationOpts = ["--qlx"]; + } else { + const ccache = join(originalPackRoot, ".cache"); + precompilationOpts = [ + "--qlx", + "--no-default-compilation-cache", + `--compilation-cache=${ccache}`, + ]; + } } else { precompilationOpts = ["--no-precompile"]; }