X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fimportlibrary.cpp;h=3cdc103f8ef190aa0cd6d672f1cf985ea620c1cd;hb=da4075117e3ad3a340e0d23fa7d53a9009305a61;hp=9ac441f419ea6d683eb86c07890f622232711084;hpb=82ae60a647ebb9567f7177c353245f4d72faaf5e;p=builder.git diff --git a/source/importlibrary.cpp b/source/importlibrary.cpp index 9ac441f..3cdc103 100644 --- a/source/importlibrary.cpp +++ b/source/importlibrary.cpp @@ -1,7 +1,10 @@ #include +#include "architecture.h" +#include "builder.h" #include "component.h" #include "exportdefinitions.h" #include "importlibrary.h" +#include "sharedlibrary.h" #include "sourcepackage.h" using namespace std; @@ -12,16 +15,26 @@ ImportLibrary::ImportLibrary(Builder &b, const FS::Path &p): shared_lib(0) { } -ImportLibrary::ImportLibrary(Builder &b, const Component &c, ExportDefinitions &exp): - FileTarget(b, c.get_package(), c.get_package().get_out_dir()/format("lib%s.dll.a", c.get_name())), - shared_lib(&exp.get_library()) +ImportLibrary::ImportLibrary(Builder &b, const Component &c, SharedLibrary &sl, ExportDefinitions &exp): + FileTarget(b, c.get_package(), c.get_package().get_output_directory()/generate_filename(c, sl)), + shared_lib(&sl) { component = &c; add_dependency(exp); + shared_lib->set_import_library(this); install_location = "lib"; const string &version = component->get_package().get_interface_version(); if(!version.empty()) - install_filename = format("lib%s-%s.dll.a", c.get_name(), version); + { + const Architecture &arch = builder.get_current_arch(); + install_filename = arch.create_filename(format("%s-%s", sl.get_libname(), version)); + } +} + +string ImportLibrary::generate_filename(const Component &comp, const SharedLibrary &sl) +{ + const Architecture &arch = comp.get_package().get_builder().get_current_arch(); + return arch.create_filename(sl.get_libname()); }