summaryrefslogtreecommitdiffstats
path: root/build/precompile.h
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-07 14:14:54 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-07 14:14:54 +0000
commit99ff9934eb0e343160b79f63d314f70012ac877f (patch)
tree17c2cab695a9f9ec96dcd587ec6b88a93f96dd65 /build/precompile.h
parent0c31a504177bf6434d191feed964c6ce7b3a700f (diff)
downloadchromium_src-99ff9934eb0e343160b79f63d314f70012ac877f.zip
chromium_src-99ff9934eb0e343160b79f63d314f70012ac877f.tar.gz
chromium_src-99ff9934eb0e343160b79f63d314f70012ac877f.tar.bz2
Use precompiled headers for most large projects where the .gyp file
is not a third party file. On my machine, this speeds up a full recompile of the 'chrome' target in Debug mode by about 18%. BUG=none TEST=it builds, existing tests pass Review URL: http://codereview.chromium.org/7706011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99949 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build/precompile.h')
-rw-r--r--build/precompile.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/build/precompile.h b/build/precompile.h
new file mode 100644
index 0000000..940d7302
--- /dev/null
+++ b/build/precompile.h
@@ -0,0 +1,100 @@
+// Copyright (c) 2011 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. 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 <Windows.h>
+
+// TODO(joi): Defines in atlbase.h cause conflicts; need to figure out
+// if/how this family of headers can be included in the PCH; several
+// of them are used quite 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
+*/
+
+#include <commctrl.h> // 2
+#include <commdlg.h> // 3
+#include <cryptuiapi.h> // 2
+#include <dwmapi.h>
+#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 <shellapi.h>
+#include <shlguid.h> // 1
+//#include <shlobj.h> TODO(joi): Caused conflicts, see if they can be resolved.
+#include <shlwapi.h> // 1
+#include <shobjidl.h> // 4
+#include <urlhist.h> // 2
+#include <wincrypt.h> // 4
+#include <wtypes.h> // 2
+
+#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>