From 94caff5f66cacdd21e5a93cd3de9150a22eeaa3a Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 16 Dec 2017 04:21:33 +0100 Subject: Add support for sub project (unit tests) --- backend/ninja/Ninja.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'backend/ninja/Ninja.hpp') diff --git a/backend/ninja/Ninja.hpp b/backend/ninja/Ninja.hpp index a0239d2..7013f78 100644 --- a/backend/ninja/Ninja.hpp +++ b/backend/ninja/Ninja.hpp @@ -4,6 +4,7 @@ #include "../../include/Dependency.hpp" #include "../../include/Result.hpp" #include "../../include/Linker.hpp" +#include "../../include/Conf.hpp" #include #include #include @@ -24,14 +25,21 @@ namespace backend Ninja(LibraryType libraryType = LibraryType::EXECUTABLE); void addSourceFile(const char *filepath); + void addTestSourceDir(const char *dir); + void addDependency(const std::string &binaryFile); const std::vector& getSourceFiles() const; - sibs::Result createBuildFile(const std::string &packageName, const std::vector &dependencies, const char *savePath, sibs::LinkerFlagCallbackFunc staticLinkerFlagCallbackFunc = nullptr, sibs::LinkerFlagCallbackFunc dynamicLinkerFlagCallback = nullptr); + sibs::Result createBuildFile(const sibs::SibsConfig &config, const char *savePath, sibs::LinkerFlagCallbackFunc staticLinkerFlagCallbackFunc = nullptr, sibs::LinkerFlagCallbackFunc dynamicLinkerFlagCallback = nullptr); sibs::Result build(const char *buildFilePath); private: - bool containsSourceFile(const char *filepath) const; + sibs::Result buildTests(const std::string &projectGeneratedBinary); + bool containsSourceFile(const std::string &filepath) const; + bool containsTestSourceDir(const std::string &dir) const; + bool containsDependency(const std::string &dependency) const; sibs::Result getLinkerFlags(const std::vector &dependencies, sibs::LinkerFlagCallbackFunc staticLinkerFlagCallbackFunc, sibs::LinkerFlagCallbackFunc dynamicLinkerFlagCallback) const; private: std::vector sourceFiles; + std::vector testSourceDirs; + std::vector binaryDependencies; LibraryType libraryType; }; } -- cgit v1.2.3