22 llvm::SmallString<128> PathWrite;
24 llvm::sys::path::append(PathWrite, llvm::sys::path::filename(FilePath));
25 llvm::SmallString<128> PathRead;
26 llvm::sys::path::native(FilePath, PathRead);
27 std::error_code FileErr = llvm::sys::fs::copy_file(PathRead, PathWrite);
29 return llvm::createStringError(llvm::inconvertibleErrorCode(),
30 "error creating file " +
31 llvm::sys::path::filename(FilePath) +
32 ": " + FileErr.message() +
"\n");
34 return llvm::Error::success();
38 llvm::StringRef Origin) {
45 if (Destination == Origin)
49 llvm::sys::path::const_iterator FileI = llvm::sys::path::begin(Destination);
50 llvm::sys::path::const_iterator FileE = llvm::sys::path::end(Destination);
51 llvm::sys::path::const_iterator DirI = llvm::sys::path::begin(Origin);
52 llvm::sys::path::const_iterator DirE = llvm::sys::path::end(Origin);
58 while (FileI != FileE && DirI != DirE && *FileI == *DirI) {
62 llvm::SmallString<128> Result;
65 while (DirI != DirE) {
66 llvm::sys::path::append(Result,
"..");
70 while (FileI != FileE) {
71 llvm::sys::path::append(Result, *FileI);
static llvm::cl::opt< std::string > OutDirectory("output", llvm::cl::desc("Directory for outputting generated files."), llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory))