using namespace Msp;
StaticLibrary::StaticLibrary(Builder &b, const FS::Path &p):
- FileTarget(b, 0, p)
+ FileTarget(b, p)
{ }
StaticLibrary::StaticLibrary(Builder &b, const Component &c, const list<ObjectFile *> &objs):
- FileTarget(b, &c.get_package(), c.get_package().get_out_dir()/generate_filename(c))
+ FileTarget(b, c.get_package(), c.get_package().get_output_directory()/generate_filename(c))
{
component = &c;
for(list<ObjectFile *>::const_iterator i=objs.begin(); i!=objs.end(); ++i)
- add_depend(*i);
+ add_dependency(**i);
install_location = "lib";
+ nested_build_sig = true;
+ arch_in_build_sig = true;
}
string StaticLibrary::generate_filename(const Component &comp)
{
const Architecture &arch = comp.get_package().get_builder().get_current_arch();
- return arch.get_static_library_patterns().front().apply(comp.get_name());
+ return arch.create_filename<StaticLibrary>(comp.get_name());
+}
+
+void StaticLibrary::add_required_library(const string &lib)
+{
+ build_info.libs.push_back(lib);
+}
+
+void StaticLibrary::add_library_path(const FS::Path &pth)
+{
+ build_info.libpath.push_back(pth);
+}
+
+void StaticLibrary::collect_build_info(BuildInfo &binfo) const
+{
+ Target::collect_build_info(binfo);
+ binfo.update_from(build_info);
}