40 lines · c
1//===------- TargetDefines.h - Target define helpers ------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file declares a series of helper functions for defining target-specific10// macros.11//12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H15#define LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H16 17#include "clang/Basic/LangOptions.h"18#include "clang/Basic/MacroBuilder.h"19#include "llvm/ADT/StringRef.h"20 21namespace clang {22namespace targets {23/// Define a macro name and standard variants. For example if MacroName is24/// "unix", then this will define "__unix", "__unix__", and "unix" when in GNU25/// mode.26LLVM_LIBRARY_VISIBILITY27void DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName,28 const clang::LangOptions &Opts);29 30LLVM_LIBRARY_VISIBILITY31void defineCPUMacros(clang::MacroBuilder &Builder, llvm::StringRef CPUName,32 bool Tuning = true);33 34LLVM_LIBRARY_VISIBILITY35void addCygMingDefines(const clang::LangOptions &Opts,36 clang::MacroBuilder &Builder);37} // namespace targets38} // namespace clang39#endif // LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H40