Chromium Code Reviews| 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 |