]> git.tdb.fi Git - builder.git/blob - plugins/base/vssolutionfile.cpp
38908df99ff7c842815db0363330992137328a11
[builder.git] / plugins / base / vssolutionfile.cpp
1 #include <msp/builder/builder.h>
2 #include <msp/builder/sourcepackage.h>
3 #include <msp/core/algorithm.h>
4 #include "vssolutionfile.h"
5
6 using namespace std;
7 using namespace Msp;
8
9 VsSolutionFile::VsSolutionFile(Builder &b, const SourcePackage &p):
10         FileTarget(b, p, p.get_source_directory()/(p.get_name()+".sln"))
11 {
12         tool = &builder.get_toolchain().get_tool("VSSG");
13 }
14
15 void VsSolutionFile::find_dependencies()
16 {
17         find_dependencies(*package);
18 }
19
20 void VsSolutionFile::find_dependencies(const SourcePackage &spkg)
21 {
22         if(FileTarget *project = builder.get_vfs().get_target(spkg.get_source_directory()/(spkg.get_name()+".vcxproj")))
23                 if(!any_equals(depends, static_cast<Target *>(project)))
24                 {
25                         add_dependency(*project);
26
27                         for(const Package *r: spkg.get_required_packages())
28                                 if(const SourcePackage *s = dynamic_cast<const SourcePackage *>(r))
29                                         find_dependencies(*s);
30                 }
31 }