1 //===--- TargetOptions.h ----------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_CLANG_FRONTEND_TARGETOPTIONS_H 11 #define LLVM_CLANG_FRONTEND_TARGETOPTIONS_H 12 13 #include <string> 14 #include <vector> 15 16 namespace clang { 17 18 /// TargetOptions - Options for controlling the target. 19 class TargetOptions { 20 public: 21 /// If given, the name of the target triple to compile for. If not given the 22 /// target will be selected to match the host. 23 std::string Triple; 24 25 /// If given, the name of the target CPU to generate code for. 26 std::string CPU; 27 28 /// If given, the name of the target ABI to use. 29 std::string ABI; 30 31 /// If given, the name of the target C++ ABI to use. If not given, defaults 32 /// to "itanium". 33 std::string CXXABI; 34 35 /// If given, the version string of the linker in use. 36 std::string LinkerVersion; 37 38 /// The list of target specific features to enable or disable -- this should 39 /// be a list of strings starting with by '+' or '-'. 40 std::vector<std::string> Features; 41 }; 42 43 } // end namespace clang 44 45 #endif 46