| //===------- TargetDefines.h - Target define helpers ------------*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file declares a series of helper functions for defining target-specific |
| // macros. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H |
| #define LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H |
| |
| #include "clang/Basic/LangOptions.h" |
| #include "clang/Basic/MacroBuilder.h" |
| #include "llvm/ADT/StringRef.h" |
| |
| namespace clang { |
| namespace targets { |
| /// Define a macro name and standard variants. For example if MacroName is |
| /// "unix", then this will define "__unix", "__unix__", and "unix" when in GNU |
| /// mode. |
| LLVM_LIBRARY_VISIBILITY |
| void DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName, |
| const clang::LangOptions &Opts); |
| |
| LLVM_LIBRARY_VISIBILITY |
| void defineCPUMacros(clang::MacroBuilder &Builder, llvm::StringRef CPUName, |
| bool Tuning = true); |
| |
| LLVM_LIBRARY_VISIBILITY |
| void addCygMingDefines(const clang::LangOptions &Opts, |
| clang::MacroBuilder &Builder); |
| } // namespace targets |
| } // namespace clang |
| #endif // LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H |