using namespace std;
using namespace Msp;
-// TODO Mark problems somewhere instead of throwing exceptions
-
unsigned parse_version(const std::string &version_str)
{
vector<string> version_parts = split(version_str, '.');
class CompileCommandsJson: public FileTarget
{
-private:
-
public:
CompileCommandsJson(Builder &, const SourcePackage &);
class ObjectFile;
/**
-Common base class for GNU compilers. Turns SourceFiles into ObjectFiles.
-
-Since invocation is mostly the same for all language frontends, most of the
-logic is here and the individual tools only handle creating source files of
-appropriate type.
+The GNU compiler. Can be created with different tags for different languages.
+Turns SourceFiles into ObjectFiles.
*/
class GnuCompiler: public Tool
{
The GNU linker. Turns ObjectFiles into Executables and SharedLibraries. To
create a shared library, specify "shared" as the second argument to
create_target.
-
-Uses either gcc or g++ depending on what was used to compile the object files.
*/
class GnuLinker: public Tool
{
#include "toolchain.h"
#include "virtualfilesystem.h"
-class FileTarget;
class Package;
class Plugin;
void set_stderr(StreamAction);
/** Returns captured output, if any. This may be called while the task is
- still running, but it will always return all output. */
+ still running, but it will always return all output produced so far. */
const std::string &get_output() const { return output; }
/** Executes a command and captures its output. If the command exits with
#include "config.h"
class Builder;
-class Package;
/**
A package is a distributable piece of software. Package information may be
#include "package.h"
#include "toolchain.h"
-class Builder;
class BuildType;
class FileTarget;
class SourceArchiveComponent;
#include <msp/io/print.h>
#include <msp/strings/utils.h>
#include "builder.h"
-#include "csourcefile.h"
#include "executable.h"
#include "importlibrary.h"
#include "sharedlibrary.h"