| OLD | NEW |
| 1 # Checking out and building Chromium on Windows | 1 # Checking out and building Chromium on Windows |
| 2 | 2 |
| 3 **See also [the old version of this page](old_linux_build_instructions.md).** | 3 **See also [the old version of this page](old_linux_build_instructions.md).** |
| 4 | 4 |
| 5 Google employee? See [go/building-chrome](https://goto.google.com/building-chrom
e) instead. | 5 Google employee? See [go/building-chrome](https://goto.google.com/building-chrom
e) instead. |
| 6 | 6 |
| 7 [TOC] | 7 [TOC] |
| 8 | 8 |
| 9 ## System requirements | 9 ## System requirements |
| 10 | 10 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 * If you see strange errors with the file system on the first run of gclient, | 81 * If you see strange errors with the file system on the first run of gclient, |
| 82 you may want to [disable Windows Indexing](http://tortoisesvn.tigris.org/faq.h
tml#cantmove2). | 82 you may want to [disable Windows Indexing](http://tortoisesvn.tigris.org/faq.h
tml#cantmove2). |
| 83 | 83 |
| 84 After running gclient open a command prompt and type `where python` and | 84 After running gclient open a command prompt and type `where python` and |
| 85 confirm that the depot_tools `python.bat` comes ahead of any copies of | 85 confirm that the depot_tools `python.bat` comes ahead of any copies of |
| 86 python.exe. Failing to ensure this can lead to overbuilding when | 86 python.exe. Failing to ensure this can lead to overbuilding when |
| 87 using gn - see [crbug.com/611087](https://crbug.com/611087). | 87 using gn - see [crbug.com/611087](https://crbug.com/611087). |
| 88 | 88 |
| 89 ## Get the code | 89 ## Get the code |
| 90 | 90 |
| 91 Create a chromium directory for the checkout and change to it (you can call | 91 Create a `chromium` directory for the checkout and change to it (you can call |
| 92 this whatever you like and put it wherever you like, as | 92 this whatever you like and put it wherever you like, as |
| 93 long as the full path has no spaces): | 93 long as the full path has no spaces): |
| 94 | |
| 95 $ mkdir chromium | |
| 96 $ cd chromium | |
| 97 | 94 |
| 98 Run the `fetch` tool from depot_tools to check out the code and its | 95 ```shell |
| 96 $ mkdir chromium && cd chromium |
| 97 ``` |
| 98 |
| 99 Run the `fetch` tool from `depot_tools` to check out the code and its |
| 99 dependencies. | 100 dependencies. |
| 100 | 101 |
| 101 $ fetch chromium | 102 ```shell |
| 103 $ fetch ios |
| 104 ``` |
| 102 | 105 |
| 103 If you don't want the full repo history, you can save a lot of time by | 106 If you don't want the full repo history, you can save a lot of time by |
| 104 adding the `--no-history` flag to fetch. Expect the command to take | 107 adding the `--no-history` flag to `fetch`. |
| 105 30 minutes on even a fast connection, and many hours on slower ones. | |
| 106 | 108 |
| 107 When fetch completes, it will have created a directory called `src`. | 109 Expect the command to take 30 minutes on even a fast connection, and many |
| 108 The remaining instructions assume you are now in that directory: | 110 hours on slower ones. |
| 109 | 111 |
| 110 $ cd src | 112 When `fetch` completes, it will have created a hidden `.gclient` file and a |
| 113 directory called `src` in the working directory. The remaining instructions |
| 114 assume you have switched to the `src` directory: |
| 111 | 115 |
| 112 ### (optional) Install API keys | 116 ```shell |
| 117 $ cd src |
| 118 ``` |
| 113 | 119 |
| 114 You can also [instaldl API keys](https://www.chromium.org/developers/how-tos/api
-keys) | 120 *Optional*: You can also [install API |
| 115 if you want to talk to some of the Google services, but this is not necessary | 121 keys](https://www.chromium.org/developers/how-tos/api-keys) if you want your |
| 116 for most development and testing purposes. | 122 build to talk to some Google services, but this is not necessary for most |
| 123 development and testing purposes. |
| 117 | 124 |
| 118 ## Seting up the Build | 125 ## Building |
| 119 | 126 |
| 120 Chromium uses [Ninja](https://ninja-build.org) as its main build tool, and | 127 Chromium uses [Ninja](https://ninja-build.org) as its main build tool along |
| 121 a tool called [GN](../tools/gn/docs/quick_start.md) to generate | 128 with a tool called [GN](../tools/gn/docs/quick_start.md) to generate `.ninja` |
| 122 the .ninja files to do the build. To create a build directory: | 129 files. You can create any number of *build directories* with different |
| 130 configurations. To create a build directory: |
| 123 | 131 |
| 124 $ gn gen out/Default | 132 ```shell |
| 133 $ gn gen out/Default |
| 134 ``` |
| 125 | 135 |
| 126 * You only have to do run this command once, it will self-update the build | 136 * You only have to run this once for each new build directory, Ninja will |
| 127 files as needed after that. | 137 update the build files as needed. |
| 128 * You can replace `out/Default` with another directory name, but we recommend | 138 * You can replace `Default` with another name, but |
| 129 it should still be a subdirectory of `out`. | 139 it should be a subdirectory of `out`. |
| 130 * To specify build parameters for GN builds, including release settings, | 140 * For other build arguments, including release settings, see [GN build |
| 131 see [GN build configuration](https://www.chromium.org/developers/gn-build-conf
iguration). | 141 configuration](https://www.chromium.org/developers/gn-build-configuration). |
| 132 The default will be a debug component build matching the current host | 142 The default will be a debug component build matching the current host |
| 133 operating system and CPU. | 143 operating system and CPU. |
| 134 * For more info on GN, run `gn help` on the command line or read the | 144 * For more info on GN, run `gn help` on the command line or read the |
| 135 [quick start guide](../tools/gn/docs/quick_start.md). | 145 [quick start guide](../tools/gn/docs/quick_start.md). |
| 136 | 146 |
| 137 ### Using the Visual Studio IDE | 147 ### Using the Visual Studio IDE |
| 138 | 148 |
| 139 If you want to use the Visual Studio IDE, use the `--ide` command line | 149 If you want to use the Visual Studio IDE, use the `--ide` command line |
| 140 argument to `gn gen` when you generate your output directory (as described on | 150 argument to `gn gen` when you generate your output directory (as described on |
| 141 the [get the code](http://dev.chromium.org/developers/how-tos/get-the-code) | 151 the [get the code](http://dev.chromium.org/developers/how-tos/get-the-code) |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 $ git rebase-update | 215 $ git rebase-update |
| 206 $ gclient sync | 216 $ gclient sync |
| 207 | 217 |
| 208 The first command updates the primary Chromium source repository and rebases | 218 The first command updates the primary Chromium source repository and rebases |
| 209 any of your local branches on top of tip-of-tree (aka the Git branch `origin/mas
ter`). | 219 any of your local branches on top of tip-of-tree (aka the Git branch `origin/mas
ter`). |
| 210 If you don't want to use this script, you can also just use `git pull` or | 220 If you don't want to use this script, you can also just use `git pull` or |
| 211 other common Git commands to update the repo. | 221 other common Git commands to update the repo. |
| 212 | 222 |
| 213 The second command syncs the subrepositories to the appropriate versions and | 223 The second command syncs the subrepositories to the appropriate versions and |
| 214 re-runs the hooks as needed. | 224 re-runs the hooks as needed. |
| OLD | NEW |