LLVM  6.0.0svn
DIASupport.h
Go to the documentation of this file.
1 //===- DIASupport.h - Common header includes for DIA ------------*- 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 // Common defines and header includes for all LLVMDebugInfoPDBDIA. The
10 // definitions here configure the necessary #defines and include system headers
11 // in the proper order for using DIA.
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_DEBUGINFO_PDB_DIA_DIASUPPORT_H
15 #define LLVM_DEBUGINFO_PDB_DIA_DIASUPPORT_H
16 
17 // Require at least Vista
18 #define NTDDI_VERSION NTDDI_VISTA
19 #define _WIN32_WINNT _WIN32_WINNT_VISTA
20 #define WINVER _WIN32_WINNT_VISTA
21 #ifndef NOMINMAX
22 #define NOMINMAX
23 #endif
24 
25 // llvm/Support/Debug.h unconditionally #defines DEBUG as a macro.
26 // DIA headers #define it if it is not already defined, so we have
27 // an order of includes problem. The real fix is to make LLVM use
28 // something less generic than DEBUG, such as LLVM_DEBUG(), but it's
29 // fairly prevalent. So for now, we save the definition state and
30 // restore it.
31 #pragma push_macro("DEBUG")
32 
33 // atlbase.h has to come before windows.h
34 #include <atlbase.h>
35 #include <windows.h>
36 
37 // DIA headers must come after windows headers.
38 #include <cvconst.h>
39 #include <dia2.h>
40 #include <diacreate.h>
41 
42 #pragma pop_macro("DEBUG")
43 
44 #endif // LLVM_DEBUGINFO_PDB_DIA_DIASUPPORT_H