15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- MCLDDirectory.h ----------------------------------------------------===// 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// The MCLinker Project 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details. 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===// 95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifndef MCLD_MCLDDIRECTORY_H 105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#define MCLD_MCLDDIRECTORY_H 115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifdef ENABLE_UNITTEST 125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <gtest.h> 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif 145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/Support/Directory.h" 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/Support/FileSystem.h" 165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <llvm/ADT/StringRef.h> 175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <string> 185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaonamespace mcld 205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao/** \class MCLDDirectory 235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * \brief MCLDDirectory is an directory entry for library search. 245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao */ 265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoclass MCLDDirectory : public sys::fs::Directory 275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaopublic: 295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MCLDDirectory(); 305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MCLDDirectory(const char* pName); 315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MCLDDirectory(const std::string& pName); 325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MCLDDirectory(llvm::StringRef pName); 335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao virtual ~MCLDDirectory(); 345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaopublic: 365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MCLDDirectory &assign(llvm::StringRef pName); 375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao bool isInSysroot() const; 385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// setSysroot - if MCLDDirectory is in sysroot, modify the path. 405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao void setSysroot(const sys::fs::Path& pPath); 415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const std::string& name() const 435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao { return m_Name; } 445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoprivate: 465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao std::string m_Name; 475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao bool m_bInSysroot; 485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}; 495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} // namespace of mcld 515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif 535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 54