File: compile.cc

package info (click to toggle)
c%2B%2B-annotations 12.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,044 kB
  • sloc: cpp: 24,337; makefile: 1,517; ansic: 165; sh: 121; perl: 90
file content (26 lines) | stat: -rw-r--r-- 513 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "main.ih"

//code
void compile(string const &line)
{
    if (g_done.load())
        return;

    string command("/usr/bin/g++ -Wall -c " + line);

    CmdFork cmdFork(command);
    cmdFork.fork();

    int exitValue = cmdFork.childExit();

    osyncstream out(g_out);
    out << exitValue << ' ' << line << '\n';

    if (exitValue != 0)
    {
        out << cmdFork.childOutput() << '\n' << g_marker << '\n';
        g_done = true;
    }
    // out.emit();          // handled by out's destructor
}
//=