// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Precompiled header for Chromium project on Windows, not used by // other build configurations. Using precompiled headers speeds the // build up significantly, around 1/4th on VS 2010 on an HP Z600 with 12 // GB of memory. // // Numeric comments beside includes are the number of times they were // included under src/chrome/browser on 2011/8/20, which was used as a // baseline for deciding what to include in the PCH. Includes without // a numeric comment are generally included at least 5 times. It may // be possible to tweak the speed of the build by commenting out or // removing some of the less frequently used headers. #if defined(BUILD_PRECOMPILE_H_) #error You shouldn't include the precompiled header file more than once. #endif #define BUILD_PRECOMPILE_H_ // The Windows header needs to come before almost all the other // Windows-specific headers. #include #include #include #include // 4 #include // 2 // Defines in atlbase.h cause conflicts; if we could figure out how // this family of headers can be included in the PCH, it might speed // up the build as several of them are used frequently. /* #include #include #include #include // 2 #include // 2 #include // 2 #include // 1 #include // 1 #include // 2 */ // Objbase.h and other files that rely on it bring in [ #define // interface struct ] which can cause problems in a multi-platform // build like Chrome's. #undef-ing it does not work as there are // currently 118 targets that break if we do this, so leaving out of // the precompiled header for now. //#include // 2 //#include // 3 //#include // 2 //#include // 2 //#include // 1 //#include // 1 //#include // 2 //#include // 1 //#include // 1 //#include // 2 //#include // 2 //#include // 2 //#include // 1 //#include // 1 //#include // 4 //#include // 2 // Caused other conflicts in addition to the 'interface' issue above. // #include #include #include #include // 4 #include #include // 1 #include #include // 1 #include #include #include #include #include // 4 #include #include // 3 #include #include #include // 3 #include // 2 #include #include #include // 3 #include #include // 2 #include // 2 #include #include #include #include #include // 2 #include #include #include #include #include #include #include #include // Workaround for: // http://connect.microsoft.com/VisualStudio/feedback/details/621653/ // http://crbug.com/225822 // Note that we can't actually include here because there's other // code in third_party that has partial versions of stdint types that conflict. #include #undef INT8_MIN #undef INT16_MIN #undef INT32_MIN #undef INT64_MIN #undef INT8_MAX #undef UINT8_MAX #undef INT16_MAX #undef UINT16_MAX #undef INT32_MAX #undef UINT32_MAX #undef INT64_MAX #undef UINT64_MAX