aboutsummaryrefslogtreecommitdiff
path: root/build/target.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2014-12-10 10:20:26 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2014-12-10 10:20:26 +0200
commit5e9eb843f6ccadfb47fa603260783425da9e7805 (patch)
tree3778f76de37f5258a07a8fae0e58a843b8a49f1d /build/target.cxx
parent20e3aedeb7df742c38276fb41cae8f3eb027b6dd (diff)
Add rules
g++-4.9 -std=c++11 -g -I.. -o bd bd.cxx target.cxx native.cxx rule.cxx cxx/rule.cxx cxx/target.cxx process.cxx timestamp.cxx path.cxx
Diffstat (limited to 'build/target.cxx')
-rw-r--r--build/target.cxx38
1 files changed, 38 insertions, 0 deletions
diff --git a/build/target.cxx b/build/target.cxx
new file mode 100644
index 0000000..e3e3d4d
--- /dev/null
+++ b/build/target.cxx
@@ -0,0 +1,38 @@
+// file : build/target.cxx -*- C++ -*-
+// copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC
+// license : MIT; see accompanying LICENSE file
+
+#include <build/target>
+
+#include <ostream>
+
+using namespace std;
+
+namespace build
+{
+ // target
+ //
+ ostream&
+ operator<< (ostream& os, const target& t)
+ {
+ return os << t.type_id ().name << '{' << t.name () << '}';
+ }
+
+ // path_target
+ //
+ timestamp path_target::
+ load_mtime () const
+ {
+ assert (!path_.empty ());
+ return path_mtime (path_);
+ }
+
+ using type_info = target::type_info;
+
+ const type_info target::ti_ {typeid (target), "target", nullptr};
+ const type_info mtime_target::ti_ {
+ typeid (mtime_target), "mtime_target", &target::ti_};
+ const type_info path_target::ti_ {
+ typeid (path_target), "path_target", &mtime_target::ti_};
+ const type_info file::ti_ {typeid (file), "file", &path_target::ti_};
+}