]> git.tdb.fi Git - builder.git/blob - source/symlink.cpp
915dccb80005adac57a71c63ff40017c9ae9cee6
[builder.git] / source / symlink.cpp
1 #include <msp/fs/utils.h>
2 #include "makesymlink.h"
3 #include "symlink.h"
4
5 using namespace std;
6 using namespace Msp;
7
8 Symlink::Symlink(Builder &b, const Package &p, FileTarget &t, const string &n):
9         FileTarget(b, &p, FS::dirname(t.get_path())/n),
10         target(t)
11 {
12         buildable = true;
13         add_depend(&target);
14 }
15
16 Target *Symlink::get_buildable_target()
17 {
18         return target.get_buildable_target();
19 }
20
21 Target *Symlink::get_real_target()
22 {
23         return target.get_real_target();
24 }
25
26 void Symlink::check_rebuild()
27 {
28         if(!mtime)
29                 mark_rebuild("Does not exist");
30 }
31
32 Action *Symlink::create_action()
33 {
34         return new MakeSymlink(builder, *this);
35 }