Index: build/precompile.h |
diff --git a/build/precompile.h b/build/precompile.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..32c2f11059a5cb77e6549f63aeba0ba59c6bef25 |
--- /dev/null |
+++ b/build/precompile.h |
@@ -0,0 +1,109 @@ |
+// 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_ |
+ |
+#define _USE_MATH_DEFINES |
+ |
+// The Windows header needs to come before almost all the other |
+// Windows-specific headers. |
+#include <Windows.h> |
+#include <dwmapi.h> |
+#include <shellapi.h> |
+#include <wtypes.h> // 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 <atlbase.h> |
+#include <atlapp.h> |
+#include <atlcom.h> |
+#include <atlcrack.h> // 2 |
+#include <atlctrls.h> // 2 |
+#include <atlmisc.h> // 2 |
+#include <atlsafe.h> // 1 |
+#include <atltheme.h> // 1 |
+#include <atlwin.h> // 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 <commctrl.h> // 2 |
+//#include <commdlg.h> // 3 |
+//#include <cryptuiapi.h> // 2 |
+//#include <Objbase.h> // 2 |
+//#include <objidl.h> // 1 |
+//#include <ole2.h> // 1 |
+//#include <oleacc.h> // 2 |
+//#include <oleauto.h> // 1 |
+//#include <oleidl.h> // 1 |
+//#include <propkey.h> // 2 |
+//#include <propvarutil.h> // 2 |
+//#include <pstore.h> // 2 |
+//#include <shlguid.h> // 1 |
+//#include <shlwapi.h> // 1 |
+//#include <shobjidl.h> // 4 |
+//#include <urlhist.h> // 2 |
+ |
+// Caused other conflicts in addition to the 'interface' issue above. |
+// #include <shlobj.h> |
+ |
+#include <errno.h> |
+#include <fcntl.h> |
+#include <limits.h> // 4 |
+#include <math.h> |
+#include <memory.h> // 1 |
+#include <signal.h> |
+#include <stdarg.h> // 1 |
+#include <stddef.h> |
+#include <stdio.h> |
+#include <stdlib.h> |
+#include <string.h> |
+#include <time.h> // 4 |
+ |
+#include <algorithm> |
+#include <bitset> // 3 |
+#include <cmath> |
+#include <cstddef> |
+#include <cstdio> // 3 |
+#include <cstdlib> // 2 |
+#include <cstring> |
+#include <deque> |
+#include <fstream> // 3 |
+#include <functional> |
+#include <iomanip> // 2 |
+#include <iosfwd> // 2 |
+#include <iterator> |
+#include <limits> |
+#include <list> |
+#include <map> |
+#include <numeric> // 2 |
+#include <ostream> |
+#include <queue> |
+#include <set> |
+#include <sstream> |
+#include <stack> |
+#include <string> |
+#include <utility> |
+#include <vector> |