aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Frontend
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Frontend')
-rw-r--r--include/clang/Frontend/HeaderSearchOptions.h19
-rw-r--r--include/clang/Frontend/InitHeaderSearch.h96
-rw-r--r--include/clang/Frontend/Utils.h8
3 files changed, 22 insertions, 101 deletions
diff --git a/include/clang/Frontend/HeaderSearchOptions.h b/include/clang/Frontend/HeaderSearchOptions.h
index c0bd1a98ac..ee8c60e8b0 100644
--- a/include/clang/Frontend/HeaderSearchOptions.h
+++ b/include/clang/Frontend/HeaderSearchOptions.h
@@ -10,25 +10,34 @@
#ifndef LLVM_CLANG_FRONTEND_HEADERSEARCHOPTIONS_H
#define LLVM_CLANG_FRONTEND_HEADERSEARCHOPTIONS_H
-// FIXME: Drop this dependency.
-#include "clang/Frontend/InitHeaderSearch.h"
#include "llvm/ADT/StringRef.h"
namespace clang {
+namespace frontend {
+ /// IncludeDirGroup - Identifiers the group a include entry belongs to, which
+ /// represents its relative positive in the search list.
+ enum IncludeDirGroup {
+ Quoted = 0, ///< `#include ""` paths. Thing `gcc -iquote`.
+ Angled, ///< Paths for both `#include ""` and `#include <>`. (`-I`)
+ System, ///< Like Angled, but marks system directories.
+ After ///< Like System, but searched after the system directories.
+ };
+}
+
/// HeaderSearchOptions - Helper class for storing options related to the
/// initialization of the HeaderSearch object.
class HeaderSearchOptions {
public:
struct Entry {
std::string Path;
- InitHeaderSearch::IncludeDirGroup Group;
+ frontend::IncludeDirGroup Group;
unsigned IsCXXAware : 1;
unsigned IsUserSupplied : 1;
unsigned IsFramework : 1;
unsigned IgnoreSysRoot : 1;
- Entry(llvm::StringRef _Path, InitHeaderSearch::IncludeDirGroup _Group,
+ Entry(llvm::StringRef _Path, frontend::IncludeDirGroup _Group,
bool _IsCXXAware, bool _IsUserSupplied, bool _IsFramework,
bool _IgnoreSysRoot)
: Path(_Path), Group(_Group), IsCXXAware(_IsCXXAware),
@@ -70,7 +79,7 @@ public:
: Sysroot(_Sysroot), UseStandardIncludes(true) {}
/// AddPath - Add the \arg Path path to the specified \arg Group list.
- void AddPath(llvm::StringRef Path, InitHeaderSearch::IncludeDirGroup Group,
+ void AddPath(llvm::StringRef Path, frontend::IncludeDirGroup Group,
bool IsCXXAware, bool IsUserSupplied,
bool IsFramework, bool IgnoreSysRoot = false) {
UserEntries.push_back(Entry(Path, Group, IsCXXAware, IsUserSupplied,
diff --git a/include/clang/Frontend/InitHeaderSearch.h b/include/clang/Frontend/InitHeaderSearch.h
deleted file mode 100644
index 7900253d84..0000000000
--- a/include/clang/Frontend/InitHeaderSearch.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//===--- InitHeaderSearch.h - Initialize header search paths ----*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the InitHeaderSearch class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_FRONTEND_INIT_HEADER_SEARCH_H_
-#define LLVM_CLANG_FRONTEND_INIT_HEADER_SEARCH_H_
-
-#include "clang/Lex/DirectoryLookup.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/ADT/Triple.h"
-#include <string>
-#include <vector>
-
-namespace clang {
-
-class HeaderSearch;
-class HeaderSearchOptions;
-class LangOptions;
-
-/// InitHeaderSearch - This class makes it easier to set the search paths of
-/// a HeaderSearch object. InitHeaderSearch stores several search path lists
-/// internally, which can be sent to a HeaderSearch object in one swoop.
-class InitHeaderSearch {
- std::vector<DirectoryLookup> IncludeGroup[4];
- HeaderSearch& Headers;
- bool Verbose;
- std::string isysroot;
-
-public:
- /// IncludeDirGroup - Identifies the several search path
- /// lists stored internally.
- enum IncludeDirGroup {
- Quoted = 0, ///< `#include ""` paths. Thing `gcc -iquote`.
- Angled, ///< Paths for both `#include ""` and `#include <>`. (`-I`)
- System, ///< Like Angled, but marks system directories.
- After ///< Like System, but searched after the system directories.
- };
-
- InitHeaderSearch(HeaderSearch &HS,
- bool verbose = false, const std::string &iSysroot = "")
- : Headers(HS), Verbose(verbose), isysroot(iSysroot) {}
-
- /// AddPath - Add the specified path to the specified group list.
- void AddPath(const llvm::StringRef &Path, IncludeDirGroup Group,
- bool isCXXAware, bool isUserSupplied,
- bool isFramework, bool IgnoreSysRoot = false);
-
- /// AddGnuCPlusPlusIncludePaths - Add the necessary paths to suport a gnu
- /// libstdc++.
- void AddGnuCPlusPlusIncludePaths(const std::string &Base, const char *Dir32,
- const char *Dir64,
- const llvm::Triple &triple);
-
- /// AddMinGWCPlusPlusIncludePaths - Add the necessary paths to suport a MinGW
- /// libstdc++.
- void AddMinGWCPlusPlusIncludePaths(const std::string &Base,
- const char *Arch,
- const char *Version);
-
- /// AddDelimitedPaths - Add a list of paths delimited by the system PATH
- /// separator. The processing follows that of the CPATH variable for gcc.
- void AddDelimitedPaths(const char *String);
-
- // AddDefaultCIncludePaths - Add paths that should always be searched.
- void AddDefaultCIncludePaths(const llvm::Triple &triple);
-
- // AddDefaultCPlusPlusIncludePaths - Add paths that should be searched when
- // compiling c++.
- void AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple);
-
- /// AddDefaultSystemIncludePaths - Adds the default system include paths so
- /// that e.g. stdio.h is found.
- void AddDefaultSystemIncludePaths(const LangOptions &Lang,
- const llvm::Triple &triple);
-
- /// Realize - Merges all search path lists into one list and send it to
- /// HeaderSearch.
- void Realize();
-};
-
-void ApplyHeaderSearchOptions(const HeaderSearchOptions &HSOpts,
- HeaderSearch &HS, const LangOptions &Lang,
- const llvm::Triple &triple);
-
-} // end namespace clang
-
-#endif
diff --git a/include/clang/Frontend/Utils.h b/include/clang/Frontend/Utils.h
index 480e46ab72..f0d61c7ae2 100644
--- a/include/clang/Frontend/Utils.h
+++ b/include/clang/Frontend/Utils.h
@@ -18,6 +18,7 @@
#include <string>
namespace llvm {
+class Triple;
class raw_ostream;
class raw_fd_ostream;
}
@@ -26,6 +27,8 @@ namespace clang {
class ASTConsumer;
class Decl;
class Diagnostic;
+class HeaderSearch;
+class HeaderSearchOptions;
class IdentifierTable;
class LangOptions;
class MinimalAction;
@@ -35,6 +38,11 @@ class SourceManager;
class Stmt;
class TargetInfo;
+/// Apply the header search options to get given HeaderSearch object.
+void ApplyHeaderSearchOptions(const HeaderSearchOptions &HSOpts,
+ HeaderSearch &HS, const LangOptions &Lang,
+ const llvm::Triple &triple);
+
/// InitializePreprocessor - Initialize the preprocessor getting it and the
/// environment ready to process a single file.
///