forked from OSchip/llvm-project
parent
d5e111c2c1
commit
33e7e5d89b
|
@ -342,6 +342,17 @@ namespace sys {
|
|||
/// @brief Determine if the path references a dynamic library.
|
||||
bool isDynamicLibrary() const;
|
||||
|
||||
/// This function determines if the path name in the object references a
|
||||
/// native object file by looking at it's magic number. The term object
|
||||
/// file is defined as "an organized collection of separate, named
|
||||
/// sequences of binary data." This covers the obvious file formats such as
|
||||
/// COFF and ELF, but it also includes llvm ir bitcode, archives,
|
||||
/// libraries, etc...
|
||||
/// @returns true if the file starts with the magic number for an object
|
||||
/// file.
|
||||
/// @brief Determine if the path references an object file.
|
||||
bool isObjectFile() const;
|
||||
|
||||
/// This function determines if the path name references an existing file
|
||||
/// or directory in the file system.
|
||||
/// @returns true if the pathname references an existing file or
|
||||
|
|
|
@ -156,6 +156,20 @@ Path::isDynamicLibrary() const {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
Path::isObjectFile() const {
|
||||
std::string Magic;
|
||||
if (getMagicNumber(Magic, 64))
|
||||
if (IdentifyFileType(Magic.c_str(),
|
||||
static_cast<unsigned>(Magic.length()))
|
||||
!= Unknown_FileType) {
|
||||
// Everything in LLVMFileType is currently an object file.
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Path
|
||||
Path::FindLibrary(std::string& name) {
|
||||
std::vector<sys::Path> LibPaths;
|
||||
|
|
Loading…
Reference in New Issue