#ifndef BACKEND_NINJA_HPP #define BACKEND_NINJA_HPP #include "../../include/Dependency.hpp" #include "../../include/Result.hpp" #include #include namespace backend { class Ninja { public: void addSourceFile(const char *filepath); sibs::Result createBuildFile(const std::string &packageName, const std::vector &dependencies, const char *savePath); private: bool containsSourceFile(const char *filepath) const; sibs::Result getLinkerFlags(const std::vector &dependencies) const; sibs::Result validatePkgConfigPackageExists(const std::string &name) const; sibs::Result validatePkgConfigPackageVersionAtLeast(const std::string &name, const std::string &version) const; private: std::vector sourceFiles; }; } #endif //BACKEND_NINJA_HPP