VTK-m  2.0
Windows.h
Go to the documentation of this file.
1 //============================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //============================================================================
10 #ifndef vtk_m_internal_Windows_h
11 #define vtk_m_internal_Windows_h
12 
13 #include <vtkm/internal/Configure.h>
14 
15 #if defined(VTKM_WINDOWS)
16 // Use pragma push_macro to properly save the state of WIN32_LEAN_AND_MEAN
17 // and NOMINMAX that the caller of vtkm has setup
18 
19 VTKM_THIRDPARTY_PRE_INCLUDE
20 
21 #pragma push_macro("WIN32_LEAN_AND_MEAN")
22 #pragma push_macro("NOMINMAX")
23 
24 #ifndef WIN32_LEAN_AND_MEAN
25 #define WIN32_LEAN_AND_MEAN
26 #endif
27 #ifndef NOMINMAX
28 #define NOMINMAX
29 #endif
30 
31 // windows.h, clobbers min and max functions so we
32 // define NOMINMAX to fix that problem. We also include WIN32_LEAN_AND_MEAN
33 // to reduce the number of macros and objects windows.h imports as those also
34 // can cause conflicts
35 #include <windows.h>
36 
37 #pragma pop_macro("WIN32_LEAN_AND_MEAN")
38 #pragma pop_macro("NOMINMAX")
39 
40 VTKM_THIRDPARTY_POST_INCLUDE
41 
42 #endif
43 
44 #endif //vtkm_internal_Windows_h