9#include "llvm/Support/FileSystem.h"
10#include "llvm/Support/Path.h"
16 llvm::SmallString<128> PathWrite;
18 llvm::sys::path::append(PathWrite, llvm::sys::path::filename(FilePath));
19 llvm::SmallString<128> PathRead;
20 llvm::sys::path::native(FilePath, PathRead);
21 std::error_code FileErr = llvm::sys::fs::copy_file(PathRead, PathWrite);
23 return llvm::createStringError(llvm::inconvertibleErrorCode(),
24 "error creating file " +
25 llvm::sys::path::filename(FilePath) +
26 ": " + FileErr.message() +
"\n");
28 return llvm::Error::success();
32 llvm::StringRef Origin) {
39 if (Destination == Origin)
43 llvm::sys::path::const_iterator FileI = llvm::sys::path::begin(Destination);
44 llvm::sys::path::const_iterator FileE = llvm::sys::path::end(Destination);
45 llvm::sys::path::const_iterator DirI = llvm::sys::path::begin(Origin);
46 llvm::sys::path::const_iterator DirE = llvm::sys::path::end(Origin);
52 while (FileI != FileE && DirI != DirE && *FileI == *DirI) {
56 llvm::SmallString<128> Result;
59 while (DirI != DirE) {
60 llvm::sys::path::append(Result,
"..");
64 while (FileI != FileE) {
65 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))
llvm::Error copyFile(llvm::StringRef FilePath, llvm::StringRef OutDirectory)
llvm::SmallString< 128 > computeRelativePath(llvm::StringRef Destination, llvm::StringRef Origin)
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//