X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmsvcarchiver.cpp;h=d0489cf10bd6cdeac5af213956dbc37cc5e816d2;hb=edd4771292a2273080fbcbac266c6831834b0b86;hp=26fbc1d980a81888b45062ddf11ecc164040d9d4;hpb=b29b79ca42fe4285c18b5d348b4eb59010d2c2da;p=builder.git diff --git a/source/msvcarchiver.cpp b/source/msvcarchiver.cpp index 26fbc1d..d0489cf 100644 --- a/source/msvcarchiver.cpp +++ b/source/msvcarchiver.cpp @@ -1,6 +1,5 @@ #include #include "component.h" -#include "externaltask.h" #include "microsofttools.h" #include "msvcarchiver.h" #include "objectfile.h" @@ -17,7 +16,7 @@ MsvcArchiver::MsvcArchiver(Builder &b, const Architecture &a, const MicrosoftToo input_suffixes.push_back(".o"); processing_unit = COMPONENT; set_command((ms_tools.get_vc_bin_dir()/"lib.exe").str(), false); - set_run(_run); + set_run_external(_run); } Target *MsvcArchiver::create_target(const vector &sources, const string &) @@ -36,22 +35,19 @@ Target *MsvcArchiver::create_target(const vector &sources, const strin return lib; } -Task *MsvcArchiver::_run(const StaticLibrary &lib) +ExternalTask::Arguments MsvcArchiver::_run(const StaticLibrary &lib, FS::Path &work_dir) { - const Component &comp = *lib.get_component(); const Tool &tool = *lib.get_tool(); vector argv; argv.push_back(tool.get_executable()->get_path().str()); argv.push_back("/NOLOGO"); - FS::Path work_dir = comp.get_package().get_source_directory(); - argv.push_back("/OUT:"+relative(lib.get_path(), work_dir).str()); for(Target *d: lib.get_dependencies()) if(ObjectFile *obj = dynamic_cast(d)) argv.push_back(relative(obj->get_path(), work_dir).str()); - return new ExternalTask(argv, work_dir); + return argv; }