Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
CompilerStrategy.h
Go to the documentation of this file.
1#ifndef COMPILER_STRATEGY_H
2#define COMPILER_STRATEGY_H
3
4#include <string>
5#include <fstream>
6#include <sys/stat.h>
7#include <iostream>
8#include <cstdio>
9#include <memory>
10#include <array>
11#include <stdexcept>
12
13#include "Include.h"
14
43bool executeCommand(const std::string& command);
44
62public:
69 CompilerStrategy(std::string model, std::string wilson) : model(model), wilson(wilson) {}
70
72 virtual ~CompilerStrategy() = default;
73
85 virtual void compile_run(const std::string& sourceFile, const std::string& outputBinary) = 0;
86
96 virtual void compile(const std::string& sourceFile, const std::string& outputBinary) = 0;
97
106 virtual bool check_if_compile(const std::string& outputBinary);
107
108protected:
110 std::string model;
112 std::string wilson;
113};
114
115#endif
bool executeCommand(const std::string &command)
Executes a shell command and captures its output.
Abstract base class for compilation and run strategies.
virtual ~CompilerStrategy()=default
Virtual destructor.
virtual bool check_if_compile(const std::string &outputBinary)
Checks whether a compiled binary already exists and is non-empty.
virtual void compile(const std::string &sourceFile, const std::string &outputBinary)=0
Compiles the given source file into an output binary.
std::string model
Model name.
std::string wilson
Wilson basis / label name.
CompilerStrategy(std::string model, std::string wilson)
Constructs a CompilerStrategy with a given model and Wilson label.
virtual void compile_run(const std::string &sourceFile, const std::string &outputBinary)=0
Compiles (if needed) and then runs the resulting binary.