X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fimportlibrary.cpp;h=3cdc103f8ef190aa0cd6d672f1cf985ea620c1cd;hb=650560b14cac4bb35589b5b8db99197c5e1345cc;hp=60e5511b96ff08ebb4be74aa0fa5e39182f2eddd;hpb=728b2f65fadd5fb5f000d908efa414027123f964;p=builder.git diff --git a/source/importlibrary.cpp b/source/importlibrary.cpp index 60e5511..3cdc103 100644 --- a/source/importlibrary.cpp +++ b/source/importlibrary.cpp @@ -1,8 +1,40 @@ #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; using namespace Msp; ImportLibrary::ImportLibrary(Builder &b, const FS::Path &p): - FileTarget(b, p) + FileTarget(b, p), + shared_lib(0) { } + +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()) + { + 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()); +}