48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
#ifndef BUILD_SCRIPT_APP
|
|
#define BUILD_SCRIPT_APP
|
|
|
|
#include <filesystem>
|
|
#include <taskflow/taskflow.hpp>
|
|
|
|
#include "args.h"
|
|
#include "logging.h"
|
|
#include "taskflow/core/executor.hpp"
|
|
#include "taskflow/core/taskflow.hpp"
|
|
#include "types.h"
|
|
|
|
class Application {
|
|
public:
|
|
Application(Options options);
|
|
void assemble();
|
|
void save_graph(std::string filename);
|
|
void run();
|
|
|
|
private:
|
|
bool m_DryRun;
|
|
bool m_Verbose;
|
|
BuildType m_BuildType;
|
|
Command m_Command;
|
|
|
|
tf::Taskflow m_Taskflow;
|
|
|
|
void createAllLoggers();
|
|
|
|
void buildProject();
|
|
void configureProject();
|
|
void cleanProject();
|
|
void deleteProject();
|
|
void rebuildProject();
|
|
|
|
void deleteDir(const std::filesystem::path& path);
|
|
void createDir(const std::filesystem::path& path);
|
|
void checkDir(std::string path);
|
|
void checkBuildDirs();
|
|
|
|
int runCmd(std::string cmd);
|
|
void buildDir(const std::filesystem::path& path);
|
|
void configureDir(const std::filesystem::path& path, std::string buildStr);
|
|
void cleanDir(const std::filesystem::path& path);
|
|
};
|
|
|
|
#endif // !BUILD_SCRIPT_APP
|