/* $NoKeywords: $ */ /* // // Copyright (c) 1993-2012 Robert McNeel & Associates. All rights reserved. // OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert // McNeel & Associates. // // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. // ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF // MERCHANTABILITY ARE HEREBY DISCLAIMED. // // For complete openNURBS copyright information see . // //////////////////////////////////////////////////////////////// */ // CHECK SETTINGS BEFORE ANYTHING IS INCLUDED #if defined(_MSC_VER) #if defined(WIN32) && defined(WIN64) #error WIN32 and WIN64 defined. This is wrong! #endif #if defined(WIN64) #if !defined(_WIN32) #error Microsoft defines _WIN32 for all Windows builds #endif #if defined(_M_IX86) || defined(_M_IA64) #error Incorrect _M_... setting for x64 build #endif #if !defined(_M_X64) // This should be automatically defined by the compiler #error _M_X64 should be defined for x64 builds #endif // All opennurbs code uses the "offical" _M_X64. Unfortunately, // some Microsoft VC 2005 header files, like float.h do not. // The Microsoft compiler should automatically defined both // _M_X64 and _M_AMD64 for the WIN64 platform. If it doesn't, // then we have a serious problem because some system header // files will not be correctly preprocessed. #if !defined(_M_AMD64) // This should be automatically defined by the compiler #error _M_AMD64 should be defined for x64 builds #endif #endif #if defined(WIN32) #if !defined(_WIN32) #error Microsoft defines _WIN32 for all Windows builds #endif #if defined(_M_IA64) || defined(_M_X64) || defined(_M_AMD64) #error Incorrect _M_... setting for 32 bit Windows build. #endif #if !defined(_M_IX86) // This should be automatically defined by the compiler #error _M_IX86 should be defined for 32 bit Windows builds. #endif #endif #endif #include "opennurbs.h" #if !defined(ON_COMPILING_OPENNURBS) // This check is included in all opennurbs source .c and .cpp files to insure // ON_COMPILING_OPENNURBS is defined when opennurbs source is compiled. // When opennurbs source is being compiled, ON_COMPILING_OPENNURBS is defined // and the opennurbs .h files alter what is declared and how it is declared. #error ON_COMPILING_OPENNURBS must be defined when compiling opennurbs #endif // CHECK SETTINGS AFTER EVERTHING IS INCLUDED #if defined(_MSC_VER) #if !defined(ON_COMPILER_MSC) #error _MSC_VER is defined and ON_COMPILER_MSC is NOT defined. #endif #if !defined(ON_RUNTIME_WIN) // if Microsfot C is used on another platfrom, then lots // of careful cleaning and checking will be required. #error _MSC_VER is defined and ON_RUNTIME_WIN is NOT defined. #endif #if defined(WIN32) && defined(WIN64) #error WIN32 and WIN64 defined. This is wrong! #endif #if defined(WIN64) #if !defined(_WIN32) #error Microsoft defines _WIN32 for all Windows builds #endif #if defined(_M_IX86) || defined(_M_IA64) #error Incorrect _M_... setting for x64 build #endif #if !defined(_M_X64) // This should be automatically defined by the compiler #error _M_X64 should be defined for x64 builds #endif // All opennurbs code uses the "offical" _M_X64. Unfortunately, // some Microsoft VC 2005 header files, like float.h do not. // The Microsoft compiler should automatically defined both // _M_X64 and _M_AMD64 for the WIN64 platform. If it doesn't, // then we have a serious problem because some system header // files will not be correctly preprocessed. #if !defined(_M_AMD64) // This should be automatically defined by the compiler #error _M_AMD64 should be defined for x64 builds #endif #endif #if defined(WIN32) #if !defined(_WIN32) #error Microsoft defines _WIN32 for all Windows builds #endif #if defined(_M_IA64) || defined(_M_X64) || defined(_M_AMD64) #error Incorrect _M_... setting for 32 bit Windows build. #endif #if !defined(_M_IX86) // This should be automatically defined by the compiler #error _M_IX86 should be defined for 32 bit Windows builds. #endif #endif #endif