linux: Cache families from FontRenderParams queries.
[chromium-blink-merge.git] / build / precompile.h
blob20ca73cd333a0500324319a56bf2e8e81ca1a81f
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Precompiled header for Chromium project on Windows, not used by
6 // other build configurations. Using precompiled headers speeds the
7 // build up significantly, around 1/4th on VS 2010 on an HP Z600 with 12
8 // GB of memory.
9 //
10 // Numeric comments beside includes are the number of times they were
11 // included under src/chrome/browser on 2011/8/20, which was used as a
12 // baseline for deciding what to include in the PCH. Includes without
13 // a numeric comment are generally included at least 5 times. It may
14 // be possible to tweak the speed of the build by commenting out or
15 // removing some of the less frequently used headers.
17 #if defined(BUILD_PRECOMPILE_H_)
18 #error You shouldn't include the precompiled header file more than once.
19 #endif
21 #define BUILD_PRECOMPILE_H_
23 #define _USE_MATH_DEFINES
25 // The Windows header needs to come before almost all the other
26 // Windows-specific headers.
27 #include <Windows.h>
28 #include <dwmapi.h>
29 #include <shellapi.h>
30 #include <wincrypt.h> // 4
31 #include <wtypes.h> // 2
33 // Defines in atlbase.h cause conflicts; if we could figure out how
34 // this family of headers can be included in the PCH, it might speed
35 // up the build as several of them are used frequently.
37 #include <atlbase.h>
38 #include <atlapp.h>
39 #include <atlcom.h>
40 #include <atlcrack.h> // 2
41 #include <atlctrls.h> // 2
42 #include <atlmisc.h> // 2
43 #include <atlsafe.h> // 1
44 #include <atltheme.h> // 1
45 #include <atlwin.h> // 2
48 // Objbase.h and other files that rely on it bring in [ #define
49 // interface struct ] which can cause problems in a multi-platform
50 // build like Chrome's. #undef-ing it does not work as there are
51 // currently 118 targets that break if we do this, so leaving out of
52 // the precompiled header for now.
53 //#include <commctrl.h> // 2
54 //#include <commdlg.h> // 3
55 //#include <cryptuiapi.h> // 2
56 //#include <Objbase.h> // 2
57 //#include <objidl.h> // 1
58 //#include <ole2.h> // 1
59 //#include <oleacc.h> // 2
60 //#include <oleauto.h> // 1
61 //#include <oleidl.h> // 1
62 //#include <propkey.h> // 2
63 //#include <propvarutil.h> // 2
64 //#include <pstore.h> // 2
65 //#include <shlguid.h> // 1
66 //#include <shlwapi.h> // 1
67 //#include <shobjidl.h> // 4
68 //#include <urlhist.h> // 2
70 // Caused other conflicts in addition to the 'interface' issue above.
71 // #include <shlobj.h>
73 #include <errno.h>
74 #include <fcntl.h>
75 #include <limits.h> // 4
76 #include <math.h>
77 #include <memory.h> // 1
78 #include <signal.h>
79 #include <stdarg.h> // 1
80 #include <stddef.h>
81 #include <stdio.h>
82 #include <stdlib.h>
83 #include <string.h>
84 #include <time.h> // 4
86 #include <algorithm>
87 #include <bitset> // 3
88 #include <cmath>
89 #include <cstddef>
90 #include <cstdio> // 3
91 #include <cstdlib> // 2
92 #include <cstring>
93 #include <deque>
94 #include <fstream> // 3
95 #include <functional>
96 #include <iomanip> // 2
97 #include <iosfwd> // 2
98 #include <iterator>
99 #include <limits>
100 #include <list>
101 #include <map>
102 #include <numeric> // 2
103 #include <ostream>
104 #include <queue>
105 #include <set>
106 #include <sstream>
107 #include <stack>
108 #include <string>
109 #include <utility>
110 #include <vector>