Couple of fixes to mention bunzip2 and make instructions more clear.
[llvm-complete.git] / tools / llvmc / Configuration.h
blobbf3827581c854d1bcc2d73bc324d08d5fea72dd1
1 //===- Configuration.h - Configuration Data Mgmt ----------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file was developed by Reid Spencer and is distributed under the
6 // University of Illinois Open Source License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file declares the LLVMC_ConfigDataProvider class which implements the
11 // generation of ConfigData objects for the CompilerDriver.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_TOOLS_LLVMC_CONFIGDATA_H
16 #define LLVM_TOOLS_LLVMC_CONFIGDATA_H
18 #include "CompilerDriver.h"
19 #include <llvm/ADT/hash_map>
21 namespace llvm {
22 /// This class provides the high level interface to the LLVM Compiler Driver.
23 /// The driver's purpose is to make it easier for compiler writers and users
24 /// of LLVM to utilize the compiler toolkits and LLVM toolset by learning only
25 /// the interface of one program (llvmc).
26 ///
27 /// @see llvmc.cpp
28 /// @brief The interface to the LLVM Compiler Driver.
29 class LLVMC_ConfigDataProvider : public CompilerDriver::ConfigDataProvider {
30 /// @name Constructor
31 /// @{
32 public:
33 virtual ~LLVMC_ConfigDataProvider();
35 /// @name Methods
36 /// @{
37 public:
38 /// @brief Provide the configuration data to the CompilerDriver.
39 virtual CompilerDriver::ConfigData*
40 ProvideConfigData(const std::string& filetype);
42 /// @brief Allow the configuration directory to be set
43 virtual void setConfigDir(const sys::Path& dirName) {
44 configDir = dirName;
47 private:
48 CompilerDriver::ConfigData* ReadConfigData(const std::string& ftype);
50 /// @}
51 /// @name Data
52 /// @{
53 private:
54 /// @brief This type is used internally to hold the configuration data.
55 typedef hash_map<std::string,CompilerDriver::ConfigData*> ConfigDataMap;
56 ConfigDataMap Configurations; ///< The cache of configurations
57 sys::Path configDir;
58 /// @}
62 #endif