|
123456789101112131415161718192021222324252627282930313233343536373839 |
- #pragma once
-
- #include "DepNode.h"
- #include "BXParser.h"
- #include "sys.h"
- #include "toolchain.h"
-
- class CompileStep: public DepNode {
- public:
- CompileStep(std::string path, toolchain::FileType type, BXVariables 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;
- void doWriteCompDB(const std::string &outDir, compdb::Writer &w) 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;
- BXVariables variables_;
- BXVariables &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 confPath(const std::string &outDir) {
- return outDir + '/' + sys::sanitizePath(path_) + ".bx";
- }
- };
|