// This file is part of PUMA. // Copyright (C) 1999-2003 The PUMA developer team. // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; either version 2 of // the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public // License along with this program; if not, write to the Free // Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, // MA 02111-1307 USA #ifndef __WinMacros__ #define __WinMacros__ /********************************************************/ /* Win predefined macros aspect */ /********************************************************/ #include "Puma/PreMacro.h" #include "Puma/Config.h" aspect WinMacros { /********************************************************/ /* Win specific predefined macros */ /********************************************************/ // predefine win specific macros advice execution ("void Puma::PreprocessorParser::configure(...)") && args (config, "bool") : before (const Puma::Config &config) { if (config.Option ("--vc")) { // constants thisJoinPoint->that ()->defMacro ("__w64", " "); thisJoinPoint->that ()->defMacro ("_inline", "inline"); thisJoinPoint->that ()->defMacro ("__forceinline", "inline"); thisJoinPoint->that ()->defMacro ("__interface", "class"); thisJoinPoint->that ()->defMacro ("__try", "if(1)"); thisJoinPoint->that ()->defMacro ("__except", "if"); thisJoinPoint->that ()->defMacro ("__noop", " "); // function-like macros Puma::PreMacro *declspec_macro = new Puma::PreMacro ("__declspec", " "); declspec_macro->addArg ("__arg0"); thisJoinPoint->that ()->macroManager ()->addMacro (declspec_macro); } } protected: WinMacros () {} }; #endif /* __WinMacros__ */