1234567891011121314151617181920212223242526272829303132333435 |
- #pragma once
-
- #include "DepNode.h"
- #include "BBParser.h"
- #include "toolchain.h"
-
- class CompileStep: public DepNode {
- public:
- CompileStep(std::string path, toolchain::FileType type, BBVariables vars):
- path_(std::move(path)), type_(type), variables_(std::move(vars)) {}
-
- private:
- std::string path_;
- toolchain::FileType type_;
-
- bool checkHasChanged(const std::string &outDir) override;
- void doBuild(const std::string &outDir) override;
- std::vector<std::string> getPublicLDFlags(const std::string &outDir) override;
- std::vector<std::string> getPublicLDLibs(const std::string &outDir) override;
- std::vector<std::string> getPublicObjects(const std::string &outDir) override;
-
- bool hasVariables_ = false;
- BBVariables variables_;
- BBVariables &variables();
-
- bool hasFlags_ = false;
- std::vector<std::string> flags_;
- std::vector<std::string> &flags();
-
- bool hasCompileCommand_ = false;
- std::vector<std::string> compileCommand_;
- std::vector<std::string> &compileCommand(const std::string &outDir);
-
- std::string bbPath(const std::string &outDir) { return outDir + '/' + path_ + ".bb"; }
- };
|