]> git.tdb.fi Git - builder.git/blob - source/symlink.cpp
Add Symlink target and associated action
[builder.git] / source / symlink.cpp
1 /* $Id$
2
3 This file is part of builder
4 Copyright © 2010  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #include <msp/fs/utils.h>
9 #include "makesymlink.h"
10 #include "symlink.h"
11
12 using namespace std;
13 using namespace Msp;
14
15 Symlink::Symlink(Builder &b, const Package &p, FileTarget &t, const string &n):
16         FileTarget(b, &p, FS::dirname(t.get_path())/n),
17         target(t)
18 {
19         buildable = true;
20 }
21
22 Target *Symlink::get_real_target()
23 {
24         return target.get_real_target();
25 }
26
27 void Symlink::check_rebuild()
28 {
29         if(!mtime)
30                 mark_rebuild("Does not exist");
31 }
32
33 Action *Symlink::create_action()
34 {
35         return new MakeSymlink(builder, *this);
36 }