-
-FS::Path InstalledFile::generate_target_path(const FileTarget &tgt, const std::string &loc)
-{
- if(!tgt.get_package())
- throw invalid_argument("Can't install package-less targets");
-
- FS::Path base = tgt.get_package()->get_builder().get_prefix();
- string tgtname = FS::basename(tgt.get_path());
-
- string mid;
- if(!loc.empty())
- mid = loc;
- else
- mid = tgt.get_install_location();
-
- if(mid.empty())
- throw invalid_argument("Don't know where to install "+tgtname);
-
- return base/mid/tgtname;
-}