55 lines
1.9 KiB
C
55 lines
1.9 KiB
C
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: vtkCompiler.h
|
|
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
|
|
#ifndef vtkCompiler_h
|
|
#define vtkCompiler_h
|
|
|
|
/*--------------------------------------------------------------------------*/
|
|
/* Compiler backend */
|
|
/* Be careful modifying this -- order is important. */
|
|
#if defined(_MSC_VER)
|
|
/* MSVC 2015+ can use a clang frontend, so we want to label it only as MSVC
|
|
* and not MSVC and clang. */
|
|
#define VTK_COMPILER_MSVC
|
|
|
|
#elif defined(__INTEL_COMPILER)
|
|
/* Intel 14+ on OSX uses a clang frontend, so again we want to label them as
|
|
* intel only, and not intel and clang. */
|
|
#define VTK_COMPILER_ICC
|
|
|
|
#elif defined(__PGI)
|
|
/* PGI reports as GNUC as it generates the same ABI, so we need to check for
|
|
* it before gcc. */
|
|
#define VTK_COMPILER_PGI
|
|
|
|
#elif defined(__clang__)
|
|
/* Check for clang before GCC, as clang says it is GNUC since it has ABI
|
|
* compliance and supports many of the same extensions. */
|
|
#define VTK_COMPILER_CLANG
|
|
|
|
#elif defined(__GNUC__)
|
|
/* Several compilers pretend to be GCC but have minor differences. To
|
|
* compensate for that, we checked for those compilers first above. */
|
|
#define VTK_COMPILER_GCC
|
|
#define VTK_COMPILER_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
|
#endif
|
|
|
|
/** extern template declarations for C++11. */
|
|
#define VTK_USE_EXTERN_TEMPLATE
|
|
|
|
#endif
|
|
|
|
// VTK-HeaderTest-Exclude: vtkCompiler.h
|