X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=tools%2Fbuilder-plugin%2Fgamesetupdefinitions.cpp;h=cf4f6cec24fbc97723ab49e3bb1c8d14bb906c72;hb=84516f86642ec6fae7f908b29649c75d2606e221;hp=a6abd23ecda803966e7141d17ffeeb46019d72db;hpb=f4ca190e869b9d03bf4f8b7b002c65af9f56c0ad;p=libs%2Fgame.git diff --git a/tools/builder-plugin/gamesetupdefinitions.cpp b/tools/builder-plugin/gamesetupdefinitions.cpp index a6abd23..cf4f6ce 100644 --- a/tools/builder-plugin/gamesetupdefinitions.cpp +++ b/tools/builder-plugin/gamesetupdefinitions.cpp @@ -1,7 +1,57 @@ #include "gamesetupdefinitions.h" +#include +#include +#include +#include +#include +using namespace std; using namespace Msp; GameSetupDefinitions::GameSetupDefinitions(Builder &b, const Component &c, const FS::Path &p): SourceFile(b, c, p) -{ } +{ + install_location = "include"; +} + +void GameSetupDefinitions::find_dependencies() +{ + if(!mtime) + return; + + vector imports; + + Cache &cache = package->get_cache(); + if(mtimeget_build_info_for_path(path); + for(const string &i: imports) + if(Target *imp = builder.get_vfs().find_header(i+".mgs", generator, binfo.incpath)) + add_dependency(*imp); +} + +vector GameSetupDefinitions::parse_imports(const FS::Path &fn) +{ + vector imports; + + IO::BufferedFile in_file(fn.str()); + DataFile::Parser parser(in_file, fn.str()); + while(parser) + { + DataFile::Statement st = parser.parse(); + if(st.keyword=="import" && st.args.size()==1) + imports.push_back(st.args.front().get()); + } + + return imports; +}