Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(514)

Unified Diff: build/precompile.h

Issue 1256223003: Revert "Add precompiled headers to GN build for large targets." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/json_schema_api.gni ('k') | build/toolchain/win/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/precompile.h
diff --git a/build/precompile.h b/build/precompile.h
index 50a9b87e2fb2326c08ebd94b53d81bd380597d96..32c2f11059a5cb77e6549f63aeba0ba59c6bef25 100644
--- a/build/precompile.h
+++ b/build/precompile.h
@@ -2,8 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// This file is used as a precompiled header for both C and C++ files. So
-// any C++ headers must go in the __cplusplus block below.
+// 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.
@@ -13,38 +22,83 @@
#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>
+#include <limits.h> // 4
#include <math.h>
-#include <memory.h>
+#include <memory.h> // 1
#include <signal.h>
-#include <stdarg.h>
+#include <stdarg.h> // 1
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <time.h>
-
-#if defined(__cplusplus)
+#include <time.h> // 4
#include <algorithm>
-#include <bitset>
+#include <bitset> // 3
#include <cmath>
#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
+#include <cstdio> // 3
+#include <cstdlib> // 2
#include <cstring>
#include <deque>
-#include <fstream>
+#include <fstream> // 3
#include <functional>
-#include <iomanip>
-#include <iosfwd>
+#include <iomanip> // 2
+#include <iosfwd> // 2
#include <iterator>
#include <limits>
#include <list>
#include <map>
-#include <numeric>
+#include <numeric> // 2
#include <ostream>
#include <queue>
#include <set>
@@ -53,5 +107,3 @@
#include <string>
#include <utility>
#include <vector>
-
-#endif // __cplusplus
« no previous file with comments | « build/json_schema_api.gni ('k') | build/toolchain/win/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698