]> git.tdb.fi Git - builder.git/blob - source/symlink.cpp
2b979e778624507a24f95199fec2dd4983b9a07c
[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         add_depend(&target);
21 }
22
23 Target *Symlink::get_buildable_target()
24 {
25         return target.get_buildable_target();
26 }
27
28 Target *Symlink::get_real_target()
29 {
30         return target.get_real_target();
31 }
32
33 void Symlink::check_rebuild()
34 {
35         if(!mtime)
36                 mark_rebuild("Does not exist");
37 }
38
39 Action *Symlink::create_action()
40 {
41         return new MakeSymlink(builder, *this);
42 }