Use the multiple argument form of path::append.

llvm-svn: 185164
This commit is contained in:
Benjamin Kramer 2013-06-28 16:25:46 +00:00
parent 13f89cd19b
commit 17381a0627
3 changed files with 10 additions and 24 deletions

View File

@ -222,9 +222,7 @@ void DarwinClang::AddLinkARCArgs(const ArgList &Args,
SmallString<128> P(getDriver().ClangExecutable); SmallString<128> P(getDriver().ClangExecutable);
llvm::sys::path::remove_filename(P); // 'clang' llvm::sys::path::remove_filename(P); // 'clang'
llvm::sys::path::remove_filename(P); // 'bin' llvm::sys::path::remove_filename(P); // 'bin'
llvm::sys::path::append(P, "lib"); llvm::sys::path::append(P, "lib", "arc", "libarclite_");
llvm::sys::path::append(P, "arc");
llvm::sys::path::append(P, "libarclite_");
// Mash in the platform. // Mash in the platform.
if (isTargetIOSSimulator()) if (isTargetIOSSimulator())
P += "iphonesimulator"; P += "iphonesimulator";
@ -242,9 +240,7 @@ void DarwinClang::AddLinkRuntimeLib(const ArgList &Args,
const char *DarwinStaticLib, const char *DarwinStaticLib,
bool AlwaysLink) const { bool AlwaysLink) const {
SmallString<128> P(getDriver().ResourceDir); SmallString<128> P(getDriver().ResourceDir);
llvm::sys::path::append(P, "lib"); llvm::sys::path::append(P, "lib", "darwin", DarwinStaticLib);
llvm::sys::path::append(P, "darwin");
llvm::sys::path::append(P, DarwinStaticLib);
// For now, allow missing resource libraries to support developers who may // For now, allow missing resource libraries to support developers who may
// not have compiler-rt checked out or integrated into their build (unless // not have compiler-rt checked out or integrated into their build (unless
@ -539,9 +535,7 @@ void DarwinClang::AddCXXStdlibLibArgs(const ArgList &Args,
// Check in the sysroot first. // Check in the sysroot first.
if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) { if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) {
SmallString<128> P(A->getValue()); SmallString<128> P(A->getValue());
llvm::sys::path::append(P, "usr"); llvm::sys::path::append(P, "usr", "lib", "libstdc++.dylib");
llvm::sys::path::append(P, "lib");
llvm::sys::path::append(P, "libstdc++.dylib");
if (!llvm::sys::fs::exists(P.str())) { if (!llvm::sys::fs::exists(P.str())) {
llvm::sys::path::remove_filename(P); llvm::sys::path::remove_filename(P);
@ -577,8 +571,7 @@ void DarwinClang::AddCCKextLibArgs(const ArgList &Args,
// only present in the gcc lib dir, which makes it hard to find). // only present in the gcc lib dir, which makes it hard to find).
SmallString<128> P(getDriver().ResourceDir); SmallString<128> P(getDriver().ResourceDir);
llvm::sys::path::append(P, "lib"); llvm::sys::path::append(P, "lib", "darwin");
llvm::sys::path::append(P, "darwin");
// Use the newer cc_kext for iOS ARM after 6.0. // Use the newer cc_kext for iOS ARM after 6.0.
if (!isTargetIPhoneOS() || isTargetIOSSimulator() || if (!isTargetIPhoneOS() || isTargetIOSSimulator() ||

View File

@ -852,9 +852,7 @@ std::string CompilerInvocation::GetResourcesPath(const char *Argv0,
llvm::sys::path::remove_filename(P); // Remove /bin from foo/bin llvm::sys::path::remove_filename(P); // Remove /bin from foo/bin
// Get foo/lib/clang/<version>/include // Get foo/lib/clang/<version>/include
llvm::sys::path::append(P, "lib"); llvm::sys::path::append(P, "lib", "clang", CLANG_VERSION_STRING);
llvm::sys::path::append(P, "clang");
llvm::sys::path::append(P, CLANG_VERSION_STRING);
} }
return P.str(); return P.str();

View File

@ -507,8 +507,7 @@ ModuleMap::inferFrameworkModule(StringRef ModuleName,
// Look for an umbrella header. // Look for an umbrella header.
SmallString<128> UmbrellaName = StringRef(FrameworkDir->getName()); SmallString<128> UmbrellaName = StringRef(FrameworkDir->getName());
llvm::sys::path::append(UmbrellaName, "Headers"); llvm::sys::path::append(UmbrellaName, "Headers", ModuleName + ".h");
llvm::sys::path::append(UmbrellaName, ModuleName + ".h");
const FileEntry *UmbrellaHeader = FileMgr.getFile(UmbrellaName); const FileEntry *UmbrellaHeader = FileMgr.getFile(UmbrellaName);
// FIXME: If there's no umbrella header, we could probably scan the // FIXME: If there's no umbrella header, we could probably scan the
@ -1324,10 +1323,8 @@ static void appendSubframeworkPaths(Module *Mod,
return; return;
// Add Frameworks/Name.framework for each subframework. // Add Frameworks/Name.framework for each subframework.
for (unsigned I = Paths.size() - 1; I != 0; --I) { for (unsigned I = Paths.size() - 1; I != 0; --I)
llvm::sys::path::append(Path, "Frameworks"); llvm::sys::path::append(Path, "Frameworks", Paths[I-1] + ".framework");
llvm::sys::path::append(Path, Paths[I-1] + ".framework");
}
} }
/// \brief Parse a header declaration. /// \brief Parse a header declaration.
@ -1378,15 +1375,13 @@ void ModuleMapParser::parseHeaderDecl(MMToken::TokenKind LeadingToken,
appendSubframeworkPaths(ActiveModule, PathName); appendSubframeworkPaths(ActiveModule, PathName);
// Check whether this file is in the public headers. // Check whether this file is in the public headers.
llvm::sys::path::append(PathName, "Headers"); llvm::sys::path::append(PathName, "Headers", FileName);
llvm::sys::path::append(PathName, FileName);
File = SourceMgr.getFileManager().getFile(PathName); File = SourceMgr.getFileManager().getFile(PathName);
if (!File) { if (!File) {
// Check whether this file is in the private headers. // Check whether this file is in the private headers.
PathName.resize(PathLength); PathName.resize(PathLength);
llvm::sys::path::append(PathName, "PrivateHeaders"); llvm::sys::path::append(PathName, "PrivateHeaders", FileName);
llvm::sys::path::append(PathName, FileName);
File = SourceMgr.getFileManager().getFile(PathName); File = SourceMgr.getFileManager().getFile(PathName);
} }
} else { } else {