forked from OSchip/llvm-project
[llvm-rc] Support absolute filenames in manifests
CMake generate manifests that contain absolute filenames and these currently result in assertion error. This change ensures that we handle these correctly. Differential Revision: https://reviews.llvm.org/D54194 llvm-svn: 346450
This commit is contained in:
parent
7010ef34d5
commit
1f597e6e6b
|
@ -0,0 +1,3 @@
|
|||
; RUN: touch %t.manifest
|
||||
; RUN: echo "1 24 \"%t.manifest\"" > %t.rc
|
||||
; RUN: llvm-rc %t.rc
|
|
@ -1502,6 +1502,10 @@ ResourceFileWriter::loadFile(StringRef File) const {
|
|||
SmallString<128> Cwd;
|
||||
std::unique_ptr<MemoryBuffer> Result;
|
||||
|
||||
// 0. The file path is absolute and the file exists.
|
||||
if (sys::path::is_absolute(File))
|
||||
return errorOrToExpected(MemoryBuffer::getFile(File, -1, false));
|
||||
|
||||
// 1. The current working directory.
|
||||
sys::fs::current_path(Cwd);
|
||||
Path.assign(Cwd.begin(), Cwd.end());
|
||||
|
@ -1510,8 +1514,7 @@ ResourceFileWriter::loadFile(StringRef File) const {
|
|||
return errorOrToExpected(MemoryBuffer::getFile(Path, -1, false));
|
||||
|
||||
// 2. The directory of the input resource file, if it is different from the
|
||||
// current
|
||||
// working directory.
|
||||
// current working directory.
|
||||
StringRef InputFileDir = sys::path::parent_path(Params.InputFilePath);
|
||||
Path.assign(InputFileDir.begin(), InputFileDir.end());
|
||||
sys::path::append(Path, File);
|
||||
|
|
Loading…
Reference in New Issue