From c0c85b67516653c181fbce7c61c2df3e31e4edd8 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 18 Dec 2014 07:14:53 +0200 Subject: Initial support for loading dependency info from buildfiles Also a new iteration on the overall architecture. Now, for the first time, build can read the buildfile and build itself. g++-4.9 -std=c++14 -g -I.. -o bd bd.cxx algorithm.cxx scope.cxx parser.cxx lexer.cxx target.cxx prerequisite.cxx rule.cxx native.cxx cxx/target.cxx cxx/rule.cxx process.cxx timestamp.cxx path.cxx g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx ../../../build/parser.cxx ../../../build/scope.cxx ../../../build/target.cxx ../../../build/native.cxx ../../../build/prerequisite.cxx ../../../build/path.cxx ../../../build/timestamp.cxx --- build/prerequisite.cxx | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 build/prerequisite.cxx (limited to 'build/prerequisite.cxx') diff --git a/build/prerequisite.cxx b/build/prerequisite.cxx new file mode 100644 index 0000000..8153a6c --- /dev/null +++ b/build/prerequisite.cxx @@ -0,0 +1,32 @@ +// file : build/prerequisite.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC +// license : MIT; see accompanying LICENSE file + +#include + +#include + +#include // target_type + +using namespace std; + +namespace build +{ + ostream& + operator<< (ostream& os, const prerequisite& p) + { + // @@ TODO: need to come up with a relative (to current) path. + + return os << p.type.name << '{' << p.name << '}'; + } + + bool + operator< (const prerequisite& x, const prerequisite& y) + { + return + (x.type.id < y.type.id) || + (x.type.id == y.type.id && x.name < y.name) || + (x.type.id == y.type.id && x.name == y.name && + x.directory < y.directory); + } +} -- cgit v1.1