mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2025-05-18 15:26:36 +00:00
feat(judge): add language-specific compilation commands for C and C++
This commit is contained in:
parent
2a4d741a76
commit
9b82088110
@ -188,7 +188,7 @@ export async function judge(
|
|||||||
await container.putArchive(tarStream, { path: workingDir });
|
await container.putArchive(tarStream, { path: workingDir });
|
||||||
|
|
||||||
// Compile the code
|
// Compile the code
|
||||||
const compileResult = await compile(container, file, fileName, compileOutputLimit, submission.id);
|
const compileResult = await compile(container, file, fileName, compileOutputLimit, submission.id, language);
|
||||||
if (compileResult.status === Status.CE) {
|
if (compileResult.status === Status.CE) {
|
||||||
return compileResult;
|
return compileResult;
|
||||||
}
|
}
|
||||||
@ -239,9 +239,27 @@ async function compile(
|
|||||||
fileName: string,
|
fileName: string,
|
||||||
compileOutputLimit: number = 1 * 1024 * 1024,
|
compileOutputLimit: number = 1 * 1024 * 1024,
|
||||||
submissionId: string,
|
submissionId: string,
|
||||||
|
language: EditorLanguage,
|
||||||
): Promise<Submission> {
|
): Promise<Submission> {
|
||||||
|
const compileCmd =
|
||||||
|
language === "c"
|
||||||
|
? ["gcc", "-O2", file, "-o", fileName]
|
||||||
|
: language === "cpp"
|
||||||
|
? ["g++", "-O2", file, "-o", fileName]
|
||||||
|
: null;
|
||||||
|
|
||||||
|
if (!compileCmd) {
|
||||||
|
return prisma.submission.update({
|
||||||
|
where: { id: submissionId },
|
||||||
|
data: {
|
||||||
|
status: Status.SE,
|
||||||
|
message: "Unsupported language",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const compileExec = await container.exec({
|
const compileExec = await container.exec({
|
||||||
Cmd: ["gcc", "-O2", file, "-o", fileName],
|
Cmd: compileCmd,
|
||||||
AttachStdout: true,
|
AttachStdout: true,
|
||||||
AttachStderr: true,
|
AttachStderr: true,
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user