Unify CompileChildLibraries and SelectedVersionLibraries (#7022)

This commit is contained in:
Ofek
2024-10-26 15:53:27 +03:00
committed by GitHub
parent c312beae24
commit 648795d0f5
30 changed files with 84 additions and 114 deletions

View File

@@ -45,7 +45,6 @@ import {
CompilationCacheKey,
CompilationInfo,
CompilationResult,
CompileChildLibraries,
ExecutionOptions,
ExecutionOptionsWithEnv,
ExecutionParams,
@@ -825,7 +824,7 @@ export class BaseCompiler implements ICompiler {
};
}
getSortedStaticLibraries(libraries: CompileChildLibraries[]) {
getSortedStaticLibraries(libraries: SelectedLibraryVersion[]) {
const dictionary: Record<string, VersionInfo> = {};
const links = unique(
libraries
@@ -909,7 +908,7 @@ export class BaseCompiler implements ICompiler {
return sortedlinks;
}
getStaticLibraryLinks(libraries: CompileChildLibraries[], libPaths: string[] = []): string[] {
getStaticLibraryLinks(libraries: SelectedLibraryVersion[], libPaths: string[] = []): string[] {
const linkFlag = this.compiler.linkFlag || '-l';
return this.getSortedStaticLibraries(libraries)
@@ -917,7 +916,7 @@ export class BaseCompiler implements ICompiler {
.map(lib => linkFlag + lib);
}
getSharedLibraryLinks(libraries: CompileChildLibraries[]): string[] {
getSharedLibraryLinks(libraries: SelectedLibraryVersion[]): string[] {
const linkFlag = this.compiler.linkFlag || '-l';
return libraries
@@ -936,7 +935,7 @@ export class BaseCompiler implements ICompiler {
.filter(Boolean) as string[];
}
getSharedLibraryPaths(libraries: CompileChildLibraries[], dirPath?: string): string[] {
getSharedLibraryPaths(libraries: SelectedLibraryVersion[], dirPath?: string): string[] {
return libraries.flatMap(selectedLib => {
const foundVersion = this.findLibVersion(selectedLib);
if (!foundVersion) return [];
@@ -950,7 +949,7 @@ export class BaseCompiler implements ICompiler {
}
protected getSharedLibraryPathsAsArguments(
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
libDownloadPath: string | undefined,
toolchainPath: string | undefined,
dirPath: string,
@@ -977,7 +976,7 @@ export class BaseCompiler implements ICompiler {
);
}
protected getSharedLibraryPathsAsLdLibraryPaths(libraries: CompileChildLibraries[], dirPath?: string): string[] {
protected getSharedLibraryPathsAsLdLibraryPaths(libraries: SelectedLibraryVersion[], dirPath?: string): string[] {
let paths = '';
if (!this.alwaysResetLdPath) {
paths = process.env.LD_LIBRARY_PATH || '';
@@ -989,7 +988,7 @@ export class BaseCompiler implements ICompiler {
);
}
getSharedLibraryPathsAsLdLibraryPathsForExecution(libraries: CompileChildLibraries[], dirPath: string): string[] {
getSharedLibraryPathsAsLdLibraryPathsForExecution(libraries: SelectedLibraryVersion[], dirPath: string): string[] {
let paths = '';
if (!this.alwaysResetLdPath) {
paths = process.env.LD_LIBRARY_PATH || '';
@@ -1137,7 +1136,7 @@ export class BaseCompiler implements ICompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
let options = this.optionsForFilter(filters, outputFilename, userOptions);
@@ -1772,7 +1771,7 @@ export class BaseCompiler implements ICompiler {
return maskedArgs;
}
async getRequiredLibraryVersions(libraries): Promise<Record<string, VersionInfo>> {
async getRequiredLibraryVersions(libraries: SelectedLibraryVersion[]): Promise<Record<string, VersionInfo>> {
const libraryDetails: Record<string, VersionInfo> = {};
_.each(libraries, selectedLib => {
const foundVersion = this.findLibVersion(selectedLib);
@@ -2122,21 +2121,12 @@ export class BaseCompiler implements ICompiler {
backendOptions: Record<string, any>,
filters: ParseFiltersAndOutputOptions,
tools: ActiveTool[],
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
files: FiledataPair[],
): CacheKey {
return {compiler: this.compiler, source, options, backendOptions, filters, tools, libraries, files};
}
// source: string;
// options: string[];
// backendOptions: Record<string, any>;
// filters: ParseFiltersAndOutputOptions;
// bypassCache: BypassCache;
// tools: any;
// executeParameters: ExecutionParams;
// libraries: CompileChildLibraries[];
getCmakeCacheKey(key: ParsedRequest, files: FiledataPair[]): CmakeCacheKey {
const cacheKey: CmakeCacheKey = {
source: key.source,
@@ -2242,7 +2232,7 @@ export class BaseCompiler implements ICompiler {
options: string[],
filters: ParseFiltersAndOutputOptions,
backendOptions: Record<string, any>,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
tools: ActiveTool[],
): Promise<[any, LLVMOptInfo[], StackUsage.StackUsageInfo[]]> {
const inputFilenameSafe = this.filename(inputFilename);
@@ -2764,7 +2754,7 @@ export class BaseCompiler implements ICompiler {
bypassCache: BypassCache,
tools: ActiveTool[],
executeParameters: ExecutionParams,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
files: FiledataPair[],
) {
const optionsError = this.checkOptions(options);

View File

@@ -25,10 +25,10 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {unwrap} from '../assert.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -87,7 +87,7 @@ export class AdaCompiler extends BaseCompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
backendOptions = backendOptions || {};

View File

@@ -27,13 +27,10 @@ import path from 'path';
import fs from 'fs-extra';
import _ from 'underscore';
import type {
CompilationResult,
CompileChildLibraries,
ExecutionOptions,
} from '../../types/compilation/compilation.interfaces.js';
import type {CompilationResult, ExecutionOptions} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {ArtifactType} from '../../types/tool.interfaces.js';
import {addArtifactToResult} from '../artifact-utils.js';
import {BaseCompiler} from '../base-compiler.js';
@@ -53,7 +50,7 @@ export class Cc65Compiler extends BaseCompiler {
this.toolchainPath = path.resolve(path.dirname(compilerInfo.exe), '..');
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
const libPathFlag = this.compiler.libpathFlag || '-L';
if (!libDownloadPath) {

View File

@@ -24,9 +24,9 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
import {AsmParserCpp} from '../parsers/asm-parser-cpp.js';
@@ -51,7 +51,7 @@ export class CppFrontCompiler extends BaseCompiler {
return [];
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}

View File

@@ -26,10 +26,10 @@ import path from 'path';
import Semver from 'semver';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
import {DartAsmParser} from '../parsers/asm-parser-dart.js';
@@ -53,7 +53,7 @@ export class DartCompiler extends BaseCompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
let options = this.optionsForFilter(filters, outputFilename, userOptions);

View File

@@ -24,14 +24,10 @@
import _ from 'underscore';
import {
BypassCache,
CompileChildLibraries,
ExecutionParams,
FiledataPair,
} from '../../types/compilation/compilation.interfaces.js';
import {BypassCache, ExecutionParams, FiledataPair} from '../../types/compilation/compilation.interfaces.js';
import type {ICompiler, PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {CompilerArguments} from '../compiler-arguments.js';
export class FakeCompiler implements ICompiler {
@@ -87,7 +83,7 @@ export class FakeCompiler implements ICompiler {
bypassCache: BypassCache,
tools,
executeParameters: ExecutionParams,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
files?: FiledataPair[],
) {
const inputBody = {

View File

@@ -22,10 +22,10 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -61,7 +61,7 @@ export class FlangFC1Compiler extends BaseCompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
let options = ['-fc1'];

View File

@@ -25,11 +25,7 @@
import * as fs from 'fs';
import path from 'path';
import type {
CompilationResult,
CompileChildLibraries,
ExecutionOptionsWithEnv,
} from '../../types/compilation/compilation.interfaces.js';
import type {CompilationResult, ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import * as utils from '../utils.js';
@@ -65,7 +61,7 @@ export class FortranCompiler extends BaseCompiler {
return '';
}
override getStaticLibraryLinks(libraries: CompileChildLibraries[], libPaths: string[] = []) {
override getStaticLibraryLinks(libraries: SelectedLibraryVersion[], libPaths: string[] = []) {
return this.getSortedStaticLibraries(libraries)
.filter(Boolean)
.map(lib => this.getExactStaticLibNameAndPath(lib, libPaths));

View File

@@ -24,9 +24,10 @@
import path from 'path';
import type {CompileChildLibraries, ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import type {ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -122,7 +123,7 @@ export class GnuCobolCompiler extends BaseCompiler {
return path.join(dirPath, outputFilebase);
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}

View File

@@ -24,9 +24,9 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -73,7 +73,7 @@ export class HaskellCompiler extends BaseCompiler {
return options;
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[]) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[]) {
const libPathFlag = this.compiler.libpathFlag || '-L';
return [libPathFlag + '.', ...this.getSharedLibraryPaths(libraries).map(path => libPathFlag + path)];
}

View File

@@ -1,5 +1,5 @@
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
export class HyloCompiler extends BaseCompiler {
@@ -8,7 +8,7 @@ export class HyloCompiler extends BaseCompiler {
}
override getSharedLibraryPathsAsArguments(
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
libDownloadPath?: string,
toolchainPath?: string,
) {

View File

@@ -24,9 +24,9 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -85,7 +85,7 @@ export class JaktCompiler extends BaseCompiler {
}
// We have no dynamic linking in Jakt
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}

View File

@@ -22,9 +22,9 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {AssemblyCompiler} from './assembly.js';
@@ -39,7 +39,7 @@ export class NasmCompiler extends AssemblyCompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
let options = super.prepareArguments(

View File

@@ -1,8 +1,8 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -18,7 +18,7 @@ export class PythranCompiler extends BaseCompiler {
this.cpp_compiler_root = this.compilerProps<string>(`compiler.${this.compiler.id}.cpp_compiler_root`);
}
override getSharedLibraryPaths(libraries: CompileChildLibraries[], dirPath?: string): string[] {
override getSharedLibraryPaths(libraries: SelectedLibraryVersion[], dirPath?: string): string[] {
let ldpath = super.getSharedLibraryPaths(libraries, dirPath);
if (this.cpp_compiler_root) {
ldpath = ldpath.concat(

View File

@@ -28,7 +28,6 @@ import fs from 'fs-extra';
import type {
CompilationResult,
CompileChildLibraries,
ExecutionOptions,
ExecutionOptionsWithEnv,
} from '../../types/compilation/compilation.interfaces.js';
@@ -38,6 +37,7 @@ import type {
} from '../../types/compilation/opt-pipeline-output.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
import {logger} from '../logger.js';
@@ -95,7 +95,7 @@ export class RacketCompiler extends BaseCompiler {
return true;
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string): string[] {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string): string[] {
return [];
}

View File

@@ -27,7 +27,7 @@ import path from 'path';
import {SemVer} from 'semver';
import _ from 'underscore';
import {CompileChildLibraries, ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import {ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import {CompilerOverrideType, ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
@@ -136,7 +136,7 @@ export class RustCompiler extends BaseCompiler {
await super.populatePossibleOverrides();
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}

View File

@@ -24,9 +24,9 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {CompilationEnvironment} from '../compilation-env.js';
import {RustCompiler} from './rust.js';
@@ -52,7 +52,7 @@ export class RustcCgGCCCompiler extends RustCompiler {
this.compiler.removeEmptyGccDump = false;
}
override getSharedLibraryPaths(libraries: CompileChildLibraries[], dirPath?: string): string[] {
override getSharedLibraryPaths(libraries: SelectedLibraryVersion[], dirPath?: string): string[] {
let ldpath = super.getSharedLibraryPaths(libraries, dirPath);
const toolroot = path.resolve(path.dirname(this.compiler.exe), '..');
ldpath = ldpath.concat(path.join(toolroot, 'lib'));

View File

@@ -24,9 +24,9 @@
import _ from 'underscore';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {unwrap} from '../assert.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -53,7 +53,7 @@ export class SnowballCompiler extends BaseCompiler {
this.linker = this.compilerProps<string>('linker');
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}

View File

@@ -24,11 +24,12 @@
import path from 'path';
import type {CompileChildLibraries, ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import type {ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import type {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {ResultLine} from '../../types/resultline/resultline.interfaces.js';
import {unwrap} from '../assert.js';
import {BaseCompiler} from '../base-compiler.js';
@@ -60,7 +61,7 @@ export class SPIRVCompiler extends BaseCompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
let options = this.optionsForFilter(filters, outputFilename);

View File

@@ -22,9 +22,9 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -53,7 +53,7 @@ export class ToitCompiler extends BaseCompiler {
return [outputFilename];
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}
override getArgumentParserClass() {

View File

@@ -24,7 +24,7 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {logger} from '../logger.js';
import {TurboCParser} from './argument-parsers.js';
@@ -39,7 +39,7 @@ export class TurboCCompiler extends DosboxCompiler {
return ['-B'];
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}

View File

@@ -24,12 +24,9 @@
import path from 'path';
import {
CompilationResult,
CompileChildLibraries,
ExecutionOptionsWithEnv,
} from '../../types/compilation/compilation.interfaces.js';
import {CompilationResult, ExecutionOptionsWithEnv} from '../../types/compilation/compilation.interfaces.js';
import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {unwrap} from '../assert.js';
import {BaseCompiler} from '../base-compiler.js';
@@ -85,7 +82,7 @@ export class VCompiler extends BaseCompiler {
}
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath?: string) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[], libDownloadPath?: string) {
return [];
}

View File

@@ -24,9 +24,9 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -97,7 +97,10 @@ export class ValaCompiler extends BaseCompiler {
return objdumpResult;
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[], libDownloadPath: string | undefined) {
override getSharedLibraryPathsAsArguments(
libraries: SelectedLibraryVersion[],
libDownloadPath: string | undefined,
) {
return [];
}

View File

@@ -26,14 +26,11 @@ import path from 'path';
import _ from 'underscore';
import type {
CacheKey,
CompileChildLibraries,
ExecutionOptions,
} from '../../types/compilation/compilation.interfaces.js';
import type {CacheKey, ExecutionOptions} from '../../types/compilation/compilation.interfaces.js';
import type {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {unwrap} from '../assert.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -67,7 +64,7 @@ export class Win32Compiler extends BaseCompiler {
return this.getExecutableFilename(path.dirname(defaultOutputFilename), 'output');
}
override getSharedLibraryPathsAsArguments(libraries: CompileChildLibraries[]) {
override getSharedLibraryPathsAsArguments(libraries: SelectedLibraryVersion[]) {
const libPathFlag = this.compiler.libpathFlag || '/LIBPATH:';
return this.getSharedLibraryPaths(libraries).map(path => libPathFlag + path);
@@ -85,7 +82,7 @@ export class Win32Compiler extends BaseCompiler {
);
}
override getStaticLibraryLinks(libraries: CompileChildLibraries[]) {
override getStaticLibraryLinks(libraries: SelectedLibraryVersion[]) {
return super.getSortedStaticLibraries(libraries).map(lib => {
return '"' + lib + '.lib"';
});
@@ -97,7 +94,7 @@ export class Win32Compiler extends BaseCompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
let options = this.optionsForFilter(filters, outputFilename, userOptions);

View File

@@ -1,8 +1,8 @@
import path from 'path';
import {CompileChildLibraries} from '../../types/compilation/compilation.interfaces.js';
import {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {unwrap} from '../assert.js';
import {BaseCompiler} from '../base-compiler.js';
import * as utils from '../utils.js';
@@ -28,7 +28,7 @@ export class YLCCompiler extends BaseCompiler {
backendOptions: Record<string, any>,
inputFilename: string,
outputFilename: string,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
overrides: ConfiguredOverrides,
) {
let options = this.optionsForFilter(filters, outputFilename, userOptions);

View File

@@ -39,7 +39,6 @@ import {remove} from '../../shared/common-utils.js';
import {
ActiveTool,
BypassCache,
CompileChildLibraries,
ExecutionParams,
FiledataPair,
} from '../../types/compilation/compilation.interfaces.js';
@@ -47,6 +46,7 @@ import {CompilerOverrideOptions} from '../../types/compilation/compiler-override
import {CompilerInfo, PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {LanguageKey} from '../../types/languages.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {ResultLine} from '../../types/resultline/resultline.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {CompilationEnvironment} from '../compilation-env.js';
@@ -103,7 +103,7 @@ export type ParsedRequest = {
bypassCache: BypassCache;
tools: ActiveTool[];
executeParameters: ExecutionParams;
libraries: CompileChildLibraries[];
libraries: SelectedLibraryVersion[];
};
export class CompileHandler implements ICompileHandler {

View File

@@ -25,8 +25,9 @@
import {StorageClass} from '@aws-sdk/client-s3';
import ems from 'enhanced-ms';
import {CompileChildLibraries, FiledataPair} from '../types/compilation/compilation.interfaces.js';
import {FiledataPair} from '../types/compilation/compilation.interfaces.js';
import {ConfiguredRuntimeTool} from '../types/execution/execution.interfaces.js';
import {SelectedLibraryVersion} from '../types/libraries/libraries.interfaces.js';
import {ParsedRequest} from './handlers/compile.js';
import {logger} from './logger.js';
@@ -100,7 +101,7 @@ export function makeSafe(
),
).map(item => `${item[0]}=${item[1] ? '1' : '0'}`),
bypassCache: !!request.bypassCache,
libraries: (request.libraries || []).map((lib: CompileChildLibraries) => lib.id + '/' + lib.version),
libraries: (request.libraries || []).map((lib: SelectedLibraryVersion) => lib.id + '/' + lib.version),
tools: (request.tools || []).map(tool => tool.id),
overrides: (request.backendOptions.overrides || [])
.filter(item => item.name !== 'env' && item.value)

View File

@@ -44,6 +44,7 @@ import {Lib} from '../widgets/libs-widget.interfaces.js';
import {SourceAndFiles} from '../download-service.js';
import {escapeHTML, unique} from '../../shared/common-utils.js';
import {unwrapString} from '../assert.js';
import {SelectedLibraryVersion} from '../libraries/libraries.interfaces.js';
type CompilerEntry = {
parent: JQuery<HTMLElement>;
@@ -53,11 +54,6 @@ type CompilerEntry = {
prependOptions: JQuery<HTMLElement> | null;
};
type CompileChildLibraries = {
id: string;
version: string;
};
type AddCompilerPickerConfig = {
compilerId: string;
options: string | number | string[];
@@ -409,7 +405,7 @@ export class Conformance extends Pane<ConformanceViewState> {
userArguments: compilerEntry.optionsField.val() || '',
filters: {},
compilerOptions: {produceAst: false, produceOptInfo: false, skipAsm: true},
libraries: [] as CompileChildLibraries[],
libraries: [] as SelectedLibraryVersion[],
},
lang: this.langId,
files: expanded.files,

View File

@@ -33,6 +33,7 @@ import {CompilerInfo} from '../compiler.interfaces.js';
import {BasicExecutionResult, ConfiguredRuntimeTools} from '../execution/execution.interfaces.js';
import {ParseFiltersAndOutputOptions} from '../features/filters.interfaces.js';
import {InstructionSet} from '../instructionsets.js';
import {SelectedLibraryVersion} from '../libraries/libraries.interfaces.js';
import {ResultLine} from '../resultline/resultline.interfaces.js';
import {Artifact, ToolResult} from '../tool.interfaces.js';
@@ -53,13 +54,8 @@ export type ExecutionParams = {
runtimeTools?: ConfiguredRuntimeTools;
};
export type CompileChildLibraries = {
id: string;
version: string;
};
export type LibsAndOptions = {
libraries: CompileChildLibraries[];
libraries: SelectedLibraryVersion[];
options: string[];
};
@@ -116,7 +112,7 @@ export type CompilationRequestOptions = {
executeParameters: ExecutionParams;
filters: ParseFiltersAndOutputOptions;
tools: ActiveTool[];
libraries: CompileChildLibraries[];
libraries: SelectedLibraryVersion[];
};
// Carefully chosen for backwards compatibility
@@ -286,7 +282,7 @@ export type SingleFileCacheKey = {
backendOptions: any;
filters?: any;
tools: any[];
libraries: any[];
libraries: SelectedLibraryVersion[];
files: any[];
};

View File

@@ -26,7 +26,6 @@ import {
ActiveTool,
BypassCache,
CompilationResult,
CompileChildLibraries,
ExecutionParams,
FiledataPair,
} from './compilation/compilation.interfaces.js';
@@ -36,7 +35,7 @@ import {PossibleRuntimeTools} from './execution/execution.interfaces.js';
import {ParseFiltersAndOutputOptions} from './features/filters.interfaces.js';
import {InstructionSet} from './instructionsets.js';
import {Language, LanguageKey} from './languages.interfaces.js';
import {Library} from './libraries/libraries.interfaces.js';
import {Library, SelectedLibraryVersion} from './libraries/libraries.interfaces.js';
import {Tool, ToolInfo} from './tool.interfaces.js';
export type Remote = {
@@ -180,7 +179,7 @@ export interface ICompiler {
bypassCache: BypassCache,
tools: ActiveTool[],
executeParameters: ExecutionParams,
libraries: CompileChildLibraries[],
libraries: SelectedLibraryVersion[],
files: FiledataPair[],
): Promise<any>;
cmake(files: FiledataPair[], key, bypassCache: BypassCache): Promise<CompilationResult>;