OLD | NEW |
---|---|
1 # Windows Build Instructions | 1 # Windows Build Instructions |
2 | 2 |
3 ## Setting up Windows | 3 ## Setting up Windows |
4 | 4 |
5 You must set your Windows system locale to English, or else you may get | 5 You must set your Windows system locale to English, or else you may get |
6 build errors about "The file contains a character that cannot be | 6 build errors about "The file contains a character that cannot be |
7 represented in the current code page." | 7 represented in the current code page." |
8 | 8 |
9 ### Setting up the environment for Visual Studio | 9 ### Setting up the environment for Visual Studio |
10 | 10 |
11 You must build with Visual Studio 2013 Update 4 or Visual Studio 2015 | 11 You must build with Visual Studio 2015 Update 2, no other version is |
dcheng
2016/04/15 00:31:13
Nit: comma should be a period, colon, or semicolon
brucedawson
2016/04/15 00:33:06
How about a hyphen?
"You must build with Visual S
dcheng
2016/04/15 00:50:27
I think it's considered standard to join two indep
brucedawson
2016/04/15 17:37:49
My English professor uncle always told me that col
| |
12 Update 1, no other versions are supported. | 12 supported. |
13 | 13 |
14 You must have Windows 7 x64 or later. x86 OSs are unsupported. | 14 You must have Windows 7 x64 or later. x86 OSs are unsupported. |
15 | 15 |
16 1. Get | 16 ## Step 1: Getting depot_tools |
17 [depot\_tools](http://commondatastorage.googleapis.com/chrome-infra-docs/flat/de pot_tools/docs/html/depot_tools_tutorial.html#_setting_up). | 17 |
18 2. Follow the appropriate path below: | 18 Get [depot\_tools](http://commondatastorage.googleapis.com/chrome-infra-docs/fla t/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up). |
19 | |
20 ## Step 2: Getting the compiler toolchain | |
21 | |
22 Follow the appropriate path below: | |
19 | 23 |
20 ### Open source contributors | 24 ### Open source contributors |
21 | 25 |
22 ####For building with Visual Studio 2015 (default compiler as of March 11, 2016) : | 26 As of March 11, 2016 Chromium requires Visual Studio 2015 to build. |
23 | 27 |
24 > Install Visual Studio 2015 Update 2 or later - Community Edition | 28 Install Visual Studio 2015 Update 2 or later - Community Edition |
25 > should work if its license is appropriate for you. Use the Custom Install opti on | 29 should work if its license is appropriate for you. Use the Custom Install option |
26 > and select: | 30 and select: |
27 > | |
28 > - Visual C++, which will select three sub-categories including MFC | |
29 > - Universal Windows Apps Development Tools > Tools | |
30 > - Universal Windows Apps Development Tools > Windows 10 SDK (10.0.10586) | |
31 > | |
32 > You must have the 10586 SDK installed or else you will hit compile errors such | |
33 > as redefined macros. | |
34 | 31 |
35 #### For building with Visual Studio 2013 (no longer default as of March 11, 201 6, and not recommended - requires setting `GYP_MSVS_VERSION=2013`): | 32 - Visual C++, which will select three sub-categories including MFC |
33 - Universal Windows Apps Development Tools > Tools | |
34 - Universal Windows Apps Development Tools > Windows 10 SDK (10.0.10586) | |
36 | 35 |
37 > Install [Visual Studio 2013 | 36 You must have the 10586 SDK installed or else you will hit compile errors such |
38 > Community](http://www.visualstudio.com/products/visual-studio-community-vs) | 37 as redefined macros. |
39 > or [Visual Studio 2013 | |
40 > Professional](http://www.visualstudio.com/products/visual-studio-professional- with-msdn-vs) | |
41 > depending on which license is appropriate for you. You can deselect | |
42 > the default options if you want, but you must make sure to install | |
43 > "Microsoft Foundation Classes for C++". | |
44 > | |
45 > You should also install the [Windows 10 | |
46 > SDK](https://dev.windows.com/en-us/downloads/windows-10-sdk) to the | |
47 > default install location. You must have SDK version 10.0.10586 or | |
48 > greater installed. | |
49 | 38 |
50 Run `set DEPOT_TOOLS_WIN_TOOLCHAIN=0`, or set that variable in your | 39 Run `set DEPOT_TOOLS_WIN_TOOLCHAIN=0`, or set that variable in your |
51 global environment. | 40 global environment. |
52 | 41 |
53 Visual Studio Express 2013 is **not** supported and will not be able to | |
54 build Chromium. | |
55 | |
56 Compilation is done through ninja, **not** Visual Studio. | 42 Compilation is done through ninja, **not** Visual Studio. |
57 | 43 |
58 ### Google employees | 44 ### Google employees |
59 | 45 |
60 Run: `download_from_google_storage --config` and follow the | 46 Run: `download_from_google_storage --config` and follow the |
61 authentication instructions. **Note that you must authenticate with your | 47 authentication instructions. **Note that you must authenticate with your |
62 @google.com credentials**, not @chromium.org. Enter "0" if asked for a | 48 @google.com credentials**, not @chromium.org. Enter "0" if asked for a |
63 project-id. | 49 project-id. |
64 | 50 |
65 Once you've done this, the toolchain will be installed automatically for | 51 Once you've done this, the toolchain will be installed automatically for |
66 you in Step 3, below (near the end of the step). | 52 you in Step 3, below (near the end of the step). |
67 | 53 |
68 The toolchain will be in `depot_tools\win_toolchain`, and windbg can be | 54 The toolchain will be in `depot_tools\win_toolchain\vs_files\<hash>`, and windbg |
69 found in `depot_tools\win_toolchain\vs2013_files\win8sdk\Debuggers`. | 55 can be found in `depot_tools\win_toolchain\vs_files\<hash>\win_sdk\Debuggers`. |
70 | 56 |
71 If you want the IDE for debugging and editing, you will need to install | 57 If you want the IDE for debugging and editing, you will need to install |
72 it separately, but this is optional and not needed to build Chromium. | 58 it separately, but this is optional and not needed to build Chromium. |
73 | 59 |
74 ## Getting the Code | 60 ## Step 3: Getting the Code |
75 | 61 |
76 Follow the steps to [check out the | 62 Follow the steps to [check out the |
77 code](https://www.chromium.org/developers/how-tos/get-the-code) (largely | 63 code](https://www.chromium.org/developers/how-tos/get-the-code) (largely |
78 `fetch chromium`). | 64 `fetch chromium`). |
79 | 65 |
80 ## Building | 66 ## Step 4: Building |
81 | 67 |
82 Build the target you are interested in. | 68 Build the target you are interested in. |
83 | 69 |
84 ```shell | 70 ```shell |
85 ninja -C out\Debug chrome | 71 ninja -C out\Debug chrome |
86 ``` | 72 ``` |
87 | 73 |
88 Alternative (Graphical user interface): Open a generated .sln | 74 Alternative (Graphical user interface): Open a generated .sln |
89 file such as all.sln, right-click the chrome project and select build. | 75 file such as chrome.sln, right-click the chrome project and select build. |
90 This will invoke the real step 4 above. Do not build the whole solution | 76 This will invoke the real step 4 above. Do not build the whole solution |
91 since that conflicts with ninja's build management and everything will | 77 since that conflicts with ninja's build management and everything will |
92 explode. | 78 explode. |
93 Substitute the build directory given to `-C` with `out\Debug_x64` for | 79 Substitute the build directory given to `-C` with `out\Debug_x64` for |
94 [64-bit | 80 [64-bit |
95 builds](https://www.chromium.org/developers/design-documents/64-bit-support) | 81 builds](https://www.chromium.org/developers/design-documents/64-bit-support) |
96 in GYP, or whatever build directory you have configured if using GN. | 82 in GYP, or whatever build directory you have configured if using GN. |
97 | 83 |
98 ### Performance tips | 84 ### Performance tips |
99 | 85 |
100 1. Have a lot of fast CPU cores and enough RAM to keep them all busy. | 86 1. Have a lot of fast CPU cores and enough RAM to keep them all busy. |
101 (Minimum recommended is 4-8 fast cores and 16-32 GB of RAM) | 87 (Minimum recommended is 4-8 fast cores and 16-32 GB of RAM) |
102 2. Reduce file system overhead by excluding build directories from | 88 2. Reduce file system overhead by excluding build directories from |
103 antivirus and indexing software. | 89 antivirus and indexing software. |
104 3. Store the build tree on a fast disk (preferably SSD). | 90 3. Store the build tree on a fast disk (preferably SSD). |
105 4. If you are primarily going to be doing debug development builds, you | 91 4. If you are primarily going to be doing debug development builds, you |
106 should use the component build: | 92 should use the component build: |
107 - for [GYP](https://www.chromium.org/developers/gyp-environment-variables) | 93 - for [GYP](https://www.chromium.org/developers/gyp-environment-variables) |
108 set `GYP_DEFINES=component=shared_library` | 94 set `GYP_DEFINES=component=shared_library` |
109 - for [GN](https://www.chromium.org/developers/gn-build-configuration), | 95 - for [GN](https://www.chromium.org/developers/gn-build-configuration), |
110 set the build arg `is_component_build = true`. | 96 set the build arg `is_component_build = true`. |
111 This will generate many DLLs and enable incremental linking, which makes | 97 This will generate many DLLs and enable incremental linking, which makes |
112 linking **much** faster in Debug. | 98 linking **much** faster in Debug. |
113 | 99 |
114 Still, expect build times of 30 minutes to 2 hours when everything has to | 100 Still, expect build times of 30 minutes to 2 hours when everything has to |
115 be recompiled. | 101 be recompiled. |
OLD | NEW |