// Copyright (c) 2006, Rodrigo Braz Monteiro // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // * Neither the name of the Aegisub Group nor the names of its contributors // may be used to endorse or promote products derived from this software // without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // // Aegisub Project http://www.aegisub.org/ // // $Id$ /// @file agi_pre.h /// @brief Precompiled headers include file, including all headers that should be precompiled /// @ingroup main /// /// In order to use it, set the project to use this header as precompiled and /// insert it in every source file (under C/C++ -> Advanced -> Force Includes), /// then set stdwx.cpp to generate the precompiled header /// /// @note Make sure that you disable use of precompiled headers on md5.c and /// MatroskaParser.c, as well as any possible future .c files. #ifndef AGI_PRE_H /// @brief Inclusion guard. /// @todo Why is this even nessicary? GCC seems to include agi_pre.h twice for no reason. #define AGI_PRE_H // C++ only #ifdef __cplusplus #include "config.h" ///////// // Setup #define AGI_PRE // Block msvc from complaining about not using msvc-specific versions for // insecure C functions. #ifdef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS_DEFINED #else #define _CRT_SECURE_NO_WARNINGS #endif /////////////// // STD headers #include #include #include #include #include #include #include #include #include #include // General headers #include #include #include #include #include #include #include #ifdef _OPENMP // Not all compilers have (example: MSVC Express) #include #endif #include #include #include #include #include #include #ifdef _WIN32 // "Lean and mean" causes windows.h to include less stuff, mostly rarely-used things. // We can't build without being "lean and mean", some of the things included by it has // macros that clash with variable names around Aegisub causing strange build errors. #define WIN32_LEAN_AND_MEAN // Windows.h must always be the first one, it defines a load of important things #include #include #include //#include // Currently only used in audio_player_dsound2.cpp #else #include #include #include #include #include #include #endif ///////////////////// // wxWidgets headers #include // Leave this first. // Windows #ifdef __WXMSW__ #include #endif // All platforms. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_APPLE_OPENGL_FRAMEWORK #include #include #else #include #include #endif #ifndef _CRT_SECURE_NO_WARNINGS #undef _CRT_SECURE_NO_WARNINGS #endif /////////////////// // Aegisub headers #include "include/aegisub/exception.h" #endif // C++ #endif // AGI_PRE_H