X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flib%2Fsharedlibrary.cpp;h=7be3a89370a121f511b756a253e608128d7053e7;hb=6ce67e1469bf62156ddf64e33644851f9064c6ed;hp=aae366332c974944cf2503949a09bdab164e63aa;hpb=75e33019504dd0748690f89cffeee298c18278f4;p=builder.git diff --git a/source/lib/sharedlibrary.cpp b/source/lib/sharedlibrary.cpp index aae3663..7be3a89 100644 --- a/source/lib/sharedlibrary.cpp +++ b/source/lib/sharedlibrary.cpp @@ -20,8 +20,7 @@ SharedLibrary::SharedLibrary(Builder &b, const Msp::FS::Path &p): SharedLibrary::SharedLibrary(Builder &b, const Component &c, const vector &objs): Binary(b, c, generate_filename(c), objs), - libname(c.get_name()), - import_lib(0) + libname(c.get_name()) { const string &lib_prefix = builder.get_current_arch().get_patterns().front().get_prefix(); if(!libname.compare(0, lib_prefix.size(), lib_prefix)) @@ -35,22 +34,6 @@ SharedLibrary::SharedLibrary(Builder &b, const Component &c, const vector(*component); if(bcomp.get_type()==BinaryComponent::MODULE) install_location /= package->get_name(); - else - { - const string &version = component->get_package().get_interface_version(); - if(!version.empty()) - { - const Architecture &arch = builder.get_current_arch(); - if(arch.get_system()=="windows") - soname = arch.create_filename(format("%s-%s", libname, version)); - else if(arch.get_system()=="darwin") - soname = arch.create_filename(format("%s.%s", libname, version)); - else - soname = format("%s.%s", arch.create_filename(libname), version); - - install_filename = soname; - } - } for(ObjectFile *o: objects) o->set_used_in_shared_library(true); @@ -63,8 +46,20 @@ string SharedLibrary::generate_filename(const Component &comp) return comp.get_name()+".dlm"; else { - const Architecture &arch = comp.get_package().get_builder().get_current_arch(); - return arch.create_filename(comp.get_name()); + const SourcePackage &pkg = comp.get_package(); + const Architecture &arch = pkg.get_builder().get_current_arch(); + const string &version = pkg.get_interface_version(); + if(!version.empty()) + { + if(arch.get_system()=="windows") + return arch.create_filename(format("%s-%s", comp.get_name(), version)); + else if(arch.get_system()=="darwin") + return arch.create_filename(format("%s.%s", comp.get_name(), version)); + else + return format("%s.%s", arch.create_filename(comp.get_name()), version); + } + else + return arch.create_filename(comp.get_name()); } }