#include <msp/builder/component.h>
#include <msp/builder/executable.h>
#include <msp/builder/importlibrary.h>
+#include <msp/builder/installedfile.h>
#include <msp/builder/objectfile.h>
#include <msp/builder/sharedlibrary.h>
#include <msp/builder/sourcepackage.h>
if(sources.empty())
throw invalid_argument("MsvcLinker::create_target");
+ if(arg=="import")
+ {
+ if(sources.size()!=1)
+ throw invalid_argument("MsvcLinker::create_target");
+ SharedLibrary &shlib = dynamic_cast<SharedLibrary &>(*sources.front());
+
+ ImportLibrary *imp = new ImportLibrary(builder, *shlib.get_component(), shlib);
+ for(ObjectFile *o: shlib.get_objects())
+ imp->add_dependency(*o);
+ shlib.add_side_effect(*imp);
+
+ return imp;
+ }
+
vector<ObjectFile *> objs;
objs.reserve(sources.size());
for(Target *s: sources)
if(binfo.strip)
argv.push_back("/INCREMENTAL:NO");
else
+ {
argv.push_back("/DEBUG:FULL");
+ FS::Path temp_dir = bin.get_package()->get_temp_directory()/bin.get_component()->get_name();
+ FS::Path ilk_path = temp_dir/(FS::basepart(FS::basename(bin.get_path()))+".ilk");
+ argv.push_back("/ILK:"+relative(ilk_path, work_dir).str());
+ }
argv.push_back("/OUT:"+relative(bin.get_path(), work_dir).str());
if(!imp_fn.empty())
else
argv.push_back("/NOIMPLIB");
+ argv.push_back("/NOEXP");
+
for(Target *d: bin.get_dependencies())
{
FileTarget *file = dynamic_cast<FileTarget *>(d);