summaryrefslogtreecommitdiffstats
path: root/build/precompile.h
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-14 10:55:18 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-14 10:55:18 +0000
commit1fdb136a3c0a1b870d3a39f0a443c2c3aadfcbe3 (patch)
tree284e33d0245d6a2e8a52c3d5bbae8e7d58a9779d /build/precompile.h
parentf2af3404cf95dfe168136de039663356347ce31e (diff)
downloadchromium_src-1fdb136a3c0a1b870d3a39f0a443c2c3aadfcbe3.zip
chromium_src-1fdb136a3c0a1b870d3a39f0a443c2c3aadfcbe3.tar.gz
chromium_src-1fdb136a3c0a1b870d3a39f0a443c2c3aadfcbe3.tar.bz2
Eliminate headers from precompile.h that define 'interface' to avoid compile failures on Windows that would not be seen on Mac or Linux. I didn't do an exact measurement but I think we lose very little in terms of build time from this; Windows.h is the big Windows-specific header and it's still precompiled.
BUG=none TEST=it builds Review URL: http://codereview.chromium.org/7888030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101059 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build/precompile.h')
-rw-r--r--build/precompile.h50
1 files changed, 29 insertions, 21 deletions
diff --git a/build/precompile.h b/build/precompile.h
index 940d7302..73dc57f 100644
--- a/build/precompile.h
+++ b/build/precompile.h
@@ -22,6 +22,10 @@
// The Windows header needs to come before almost all the other
// Windows-specific headers.
#include <Windows.h>
+#include <dwmapi.h>
+#include <shellapi.h>
+#include <wincrypt.h> // 4
+#include <wtypes.h> // 2
// 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
@@ -38,27 +42,31 @@
#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
+// TODO(joi): 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. Tried #undef-ing it, but
+// 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
+
+// TODO(joi): Caused other conflicts in addition to the 'interface' issue
+// above, see if they can be resolved.
+//#include <shlobj.h>
#include <errno.h>
#include <fcntl.h>