clang API Documentation
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