]> git.tdb.fi Git - builder.git/blob - source/vssolutionfile.cpp
Use shortcut functions for find calls
[builder.git] / source / vssolutionfile.cpp
1 #include <msp/core/algorithm.h>
2 #include "builder.h"
3 #include "sourcepackage.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         if(FileTarget *project = builder.get_vfs().get_target(package->get_source_directory()/(package->get_name()+".vcxproj")))
18                 add_dependency(*project);
19
20         Package::Requirements reqs = package->get_required_packages();
21         for(auto i=reqs.begin(); i!=reqs.end(); ++i)
22                 if(const SourcePackage *spkg = dynamic_cast<const SourcePackage *>(*i))
23                 {
24                         if(FileTarget *project = builder.get_vfs().get_target(spkg->get_source_directory()/(spkg->get_name()+".vcxproj")))
25                                 add_dependency(*project);
26
27                         for(Package *r: spkg->get_required_packages())
28                                 if(!any_equals(reqs, r))
29                                         reqs.push_back(r);
30                 }
31 }