clang API Documentation

TargetOptions.h
Go to the documentation of this file.
00001 //===--- TargetOptions.h ----------------------------------------*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 ///
00010 /// \file
00011 /// \brief Defines the clang::TargetOptions class.
00012 ///
00013 //===----------------------------------------------------------------------===//
00014 
00015 #ifndef LLVM_CLANG_BASIC_TARGETOPTIONS_H
00016 #define LLVM_CLANG_BASIC_TARGETOPTIONS_H
00017 
00018 #include <string>
00019 #include <vector>
00020 
00021 namespace clang {
00022 
00023 /// \brief Options for controlling the target.
00024 class TargetOptions {
00025 public:
00026   /// If given, the name of the target triple to compile for. If not given the
00027   /// target will be selected to match the host.
00028   std::string Triple;
00029 
00030   /// If given, the name of the target CPU to generate code for.
00031   std::string CPU;
00032 
00033   /// If given, the unit to use for floating point math.
00034   std::string FPMath;
00035 
00036   /// If given, the name of the target ABI to use.
00037   std::string ABI;
00038 
00039   /// If given, the version string of the linker in use.
00040   std::string LinkerVersion;
00041 
00042   /// \brief The list of target specific features to enable or disable, as written on the command line.
00043   std::vector<std::string> FeaturesAsWritten;
00044 
00045   /// The list of target specific features to enable or disable -- this should
00046   /// be a list of strings starting with by '+' or '-'.
00047   std::vector<std::string> Features;
00048 };
00049 
00050 }  // end namespace clang
00051 
00052 #endif