mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
When providing the -parseable-output flag to the swift compiler, it will provide json formatted messages about tasks that run. I added some optional usage information in form of user time, system time and maxrss to the output. This can be used by other tools using the compiler to get some insights about time and memory usage. Since the output does not longer match processes run (in batch mode), I also added a real_pid field so the client could reason about jobs that belong together if needed. rdar://39798231
54 lines
1.8 KiB
C++
54 lines
1.8 KiB
C++
//===--- ParseableOutput.h - Helpers for parseable output -------*- C++ -*-===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See https://swift.org/LICENSE.txt for license information
|
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file
|
|
/// \brief Helpers for emitting the driver's parseable output.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SWIFT_DRIVER_PARSEABLEOUTPUT_H
|
|
#define SWIFT_DRIVER_PARSEABLEOUTPUT_H
|
|
|
|
#include "swift/Basic/LLVM.h"
|
|
#include "swift/Basic/TaskQueue.h"
|
|
|
|
namespace swift {
|
|
namespace driver {
|
|
|
|
class Job;
|
|
|
|
namespace parseable_output {
|
|
|
|
/// \brief Emits a "began" message to the given stream.
|
|
void emitBeganMessage(raw_ostream &os, const Job &Cmd, int64_t Pid,
|
|
sys::TaskProcessInformation ProcInfo);
|
|
|
|
/// \brief Emits a "finished" message to the given stream.
|
|
void emitFinishedMessage(raw_ostream &os, const Job &Cmd, int64_t Pid,
|
|
int ExitStatus, StringRef Output,
|
|
sys::TaskProcessInformation ProcInfo);
|
|
|
|
/// \brief Emits a "signalled" message to the given stream.
|
|
void emitSignalledMessage(raw_ostream &os, const Job &Cmd, int64_t Pid,
|
|
StringRef ErrorMsg, StringRef Output,
|
|
Optional<int> Signal,
|
|
sys::TaskProcessInformation ProcInfo);
|
|
|
|
/// \brief Emits a "skipped" message to the given stream.
|
|
void emitSkippedMessage(raw_ostream &os, const Job &Cmd);
|
|
|
|
} // end namespace parseable_output
|
|
} // end namespace driver
|
|
} // end namespace swift
|
|
|
|
#endif
|