aboutsummaryrefslogtreecommitdiff
path: root/content/blog/getting-source-code-of-chromium.md
blob: 8dc98fb36a973704605640cbba359028554dd148 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
+++
title = "Получение исходного кода \"Chromium Projects\""
authors = ["Valentin Popov"]
date = 2012-01-30
+++

> Перенос [оригинальной статьи](http://adeptus-mechanicus.blogspot.com/2012/01/chromium-projects.html) 2012 года из моего [старого блога](http://adeptus-mechanicus.blogspot.com/) ([зеркало](https://web.archive.org/web/20160217052148/http://adeptus-mechanicus.blogspot.com/)).

__Добрый день, уважаемые читатели!__

В последние дни выдалось свободное время, и я решил изучить исходные коды "[The Chromium Projects](http://www.chromium.org/)".
Чтобы посмотреть исходники, оказалось недостаточным просто скачать архив с исходным кодом и начать работать с ним в "Visual Studio 2010".
Я был крайне опечален отсутствием нормальной русской документации для начинающих, поэтому восполню пробел и переведу всю инструкцию по получению исходных кодов.

___P.S.__ Chromium является быстроразвивающимся Open Sources проектом._
_Данная инструкция актуальна на январь-февраль 2012 года._

Для начала немного введения.
Весь процесс от подготовки системы, до работы с исходными кодами я условно разделю на четыре пункта, это:

- Подготовка операционной системы, установка стандартных программных комплектов разработчика;
- Установка и настройка программы "Cygwin";
- Установка и настройка пакета "depot\_tools";
- Получение и подготовка для работы исходных кодов "Chromium";

## Подготовка начального набора программ

Ниже приведу список и краткое описание программного обеспечения, которое требуется установить перед работой с исходными кодами:

- "__Microsoft Visual Studio 2010__" — Среда разработки, требуется для работы с исходным кодом. Имеется возможность использовать Microsoft Visual Studio 2008 и Microsoft Visual C++ Express 2010'го и 2008'го годов соответственно. Бесплатные Express версии продуктов можно взять на [официальном сайте](http://www.microsoft.com/express) Microsoft.

- "__Microsoft Windows SDK__" — Пакет для предоставления заголовочных файлов, библиотек, компиляторов и пр. для разработчиков программного обеспечения под операционную систему Windows. Требуется для успешной сборки и компиляции проекта под Windows систему. Бесплатно можно скачать с [официальной страницы](https://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b).

- "__Microsoft DirectX SDK__" — Пакет с библиотеками мультимедийной подсистемы DirectX. Требуется для успешной сборки и компиляции проекта. Бесплатно доступен на [официальном сайте](http://msdn.microsoft.com/en-us/directx/default.aspx).

- "__Python 2.x__" — Высокоуровневый язык программирования. Требуется для начальной подготовки исходных кодов. Установка не обязательная, но желательная. Про третью версию Python официальной информации нет, у меня установлены обе версии для опытов и "Path" системы направлен на вторую версию. Установку Python коротко разберу ниже. Python бесплатно можно взять на [официальном сайте](http://python.org/).

- "__Cygwin__" — Unix-подобная среда и интерфейс командной строки для систем Microsoft Windows. Требуется для работы с исходными кодами, их подготовки, обновлением и проверки на ошибки. Сам инструмент бесплатно доступен на [официальной странице](http://www.cygwin.com/). Его установку я распишу в следующих пунктах.

- "__TortoiseSVN__" — Клиент Subversion под систему Windows. Установка не обязательная, но желательная. Требуется для более простого обновления пакета "depot\_tools" из официального репозитория SVN от корпорации Google. Бесплатно доступен на [официальной странице](http://tortoisesvn.net/).

Над установкой Microsoft Visual Studio, Microsoft Windows SDK и Microsoft DirectX SDK я подробно останавливаться не буду.
Установка данных программных комплектов проста, и особой сложности вызывать не должна.
В случае возникновения каких-либо проблем, имеются огромные сообщества разработчиков, которые помогут с установкой.

__На установке пакета Python'а я остановлюсь поподробнее:__

Во-первых, путь установки Python'а не должен содержать русскоязычный текст, это может вызвать много ошибок.

Во-вторых, после установки основного пакета, не забудьте добавить имя каталога в список путей, по которому операционная система ищет исполняемые файлы.
Чтобы это сделать, требуется:

1. Запустите "_Панель Управления_" и выберите пиктограмму "_Система_";
2. Выберите "_Дополнительные настройки системы_";
3. Перейдите во вкладку "_Дополнительно_" и щёлкните на кнопке "_Переменные среды_";
4. В содержимом окна "_Системные переменные_" найдите строку "_Path_";
5. Добавьте туда путь до вашего каталога Python.

В моём случае этот путь выглядел так:
`C:\Program Files (x86)\Python2`.
Пути каталогов должны разделяться знаком `;`, по этому не забудьте перед последним записанным каталогом дописать `;` (без кавычек);

Чтобы проверить работоспособность языка Python в Вашей системе сразу после установки, откройте командную строку Windows и введите команду:

```bash
python --version
```

На экране должно появиться сообщение с версией Python, которая используется в Вашей системе по-умолчанию.

__Теперь подготовим каталоги.__
Каталог исходных кодов в моём случае располагается на диске `C:\`, потому что желательно не использовать пробелы в пути адреса до исходных кодов и мой пользователь в операционной системе состоит из русскоязычных символов.

На диске `C:\` я создал каталог `OpenSource`, в нём я создал каталог `ChromiumProjects`, в котором появилось два подкаталога `depot_tools` и `trunk`.
Т.е. система каталогов выглядит так:

- `C:\OpenSource\ChromiumProjects\depot_tools` — Пакет для работы с исходным кодом;
- `C:\OpenSource\ChromiumProjects\trunk` — Место хранения исходных кодов;

В случае использование других каталогов в вашей системе, используйте собственные пути, подставляя их в мои примеры.

Так же крайне рекомендуется отключить индексирование системы в данных каталогах, потому что это вызовет фатальные ошибки работы пакета "depot\_tools".
Чтобы это сделать, откройте "_Панель управления_", выберите пиктограмму "_Параметры индексирования_", нажмите на кнопку "_Изменить_" и снимите галочку с каталога, содержащий утилиту "depot\_tools".

Первоначальную установку и настройку системы можно считать оконченной.
Переходим к следующему шагу.

## Установка программы "Cygwin"

Первым делом получите установочный файл последней версии по этой [ссылке](http://cygwin.com/setup.exe).
Установочный файл во время установки скачивает необходимые пакеты из интернета.
Когда запустите файл, следуйте инструкциям.
После выбор зеркала пакетов, Вам покажут список доступных пакетов с зеркала.
Требуется найти и отметить для установки следующие пакеты:

- `apache`;
- `bc`;
- `bison`;
- `curl`;
- `diffutils`;
- `e2fsprogs`;
- `emacs`;
- `flex`;
- `gcc`;
- `gperf`;
- `keychain`;
- `make`;
- `nano`;
- `openssh`;
- `patch`;
- `perl`;
- `perl-libwin32`;
- `python`;
- `rebase`;
- `rsync`;
- `ruby`;
- `subversion`;
- `unzip`;
- `vim`;
- `zip`;

Имена пакетов должны полностью совпадать.
Воспользуйтесь поиском по пакетам, включённым в саму программу установки.
Это должно сильно облегчить задачу.

Актуальный список пакетов, требующихся для установки, Вы всегда можете найти в [официальном скрипте](http://trac.webkit.org/browser/trunk/Tools/CygwinDownloader/cygwin-downloader.py) установки, в поле `required_packages`.

После установки приложения, требуется внести путь до папки с исполняемыми файлами в переменную "Path".
Сделать это можно в точности, как после установки пакета Python'а, описанного чуть выше в данной статье.
Только в отличии от Python'а, требуется указать путь до папки `bin`, находящейся в корневом каталоге приложения "Cygwin".
В моём случае этот путь выглядел так:
`C:\Program Files (x86)\Cygwin\bin`.

После установки и проверки приложения "Cygwin", можно переходить к следующему шагу, настройке и установки пакета "depot\_tools".

## Установка пакета "depot\_tools"

1. Перейдите в каталог, который Вы определили для хранения пакета "depot\_tools";
2. Находясь в папке, нажмите правую кнопку мыши в любом свободном месте и контекстном меню выберите пункт "_SVN Checkout_";
3. В пути URL репозитория, указывайте путь: `http://src.chromium.org/svn/trunk/tools/depot_tools`;

Если проблем не возникнет, пойдёт установка последней ревизии данного пакета.
По окончанию скачивания пакета, путь до исполняемых файлов пакета следует указать в переменной "Path", по аналогии с программой "Cygwin" и пакетом "Python".
В моём случае, путь выглядел так:
`C:\OpenSource\ChromiumProjects\depot_tools`.

Если всё прошло успешно, можно перейти к заключительной части статьи, получения и подготовка исходных кодов браузера "Chromium".

## Получение и подготовка исходных кодов

Перейдите по данной [ссылке](http://chromium-browser-source.commondatastorage.googleapis.com/chromium_tarball.html) и скачайте архив с исходными кодами.
Вы получите архив с именем "_chromium.r**XXXXX**.tgz_", где __XXXXX__ — номер стабильной последней версии.

Распакуйте из архива папку `src` в наш каталог `trunk`.
Процесс займёт продолжительное время, потому что объём исходных кодов ~4 Гб.
По окончанию распаковки, откройте терминал "Cygwin".

В открытом терминале теперь необходимо пройти в каталог `src`, который получится после распаковки исходных кодов.
Переход по каталогам в терминале осуществляется программой `cd`.
Чтобы попасть на диск `C:\`, требуется в терминале набрать команду:

```bash
cd "C:/"
```

Чтобы вернуться на каталог выше, требуется набрать команду:

```bash
cd ..
```

В Unix-терминалах для работы с каталогами используется обратная косая черта.
По этому, чтобы перейти в требуемый каталог, на моём примере, команда будет выглядеть так:

```bash
cd "C:/OpenSource/ChromiumProjects/trunk/src"
```

Теперь, когда мы в требуемой папке, надо применить команду для первоначальной настройки исходных кодов.
Для этого ведите команду:

```bash
gclient sync --force
```

После выполнения данной команды, требуется подготовить исходные коды для работы с "_Visual Studio 2010_".
Для этого вводим команду:

```bash
gclient runhooks --force
```

По окончанию выполнения данной команды, мы получаем готовые к работе исходные коды.
Чтобы начать с ними работу, откройте Вашу "Visual Studio", выберите "_Открыть проект_" и откройте файл `chrome.sln`, который находится в папке `chrome`, находящейся в папке исходных кодов.
В моём случае, полный путь до файла выглядит так:
`C:\OpenSource\ChromiumProjects\trunk\src\chrome\chrome.sln`.

На этом работу можно считать законченной.

## Обновление

Чтобы обновить пакет "depot\_tools", требуется зайти в каталог, содержащий данный пакет, щёлкнуть правой кнопкой мыши и в контекстном меню выбрать "_SVN Update_".
"TortoiseSVN" обновит данные каталога до последней ревизии пакета.

Для обновления исходных кодов "Chromium", требуется открыть терминал "Cygwin", перейти в каталог с исходными кодами и ввести команду:

```bash
gclient sync
```

## Заключение

Спасибо, что прочитали и большое спасибо, если воспользовались моей инструкцией.
Я всегда рад Вашим комментариям с вопросами, уточнениями и предложениями.

## Полезные ссылки

- [http://dev.chromium.org/Home](http://dev.chromium.org/Home) — Официальная страница проекта "The Chromium Projects";
- [http://dev.chromium.org/developers/how-tos/build-instructions-windows](http://dev.chromium.org/developers/how-tos/build-instructions-windows) — Официальная страница по подготовке операционной системы Windows, перед работой с исходными кодами;
- [http://dev.chromium.org/developers/how-tos/get-the-code](http://dev.chromium.org/developers/how-tos/get-the-code) — Официальная инструкция по получению, настройке и подготовке исходных кодов проекта "The Chromium Projects";
- [http://dev.chromium.org/developers/how-tos/install-depot-tools](http://dev.chromium.org/developers/how-tos/install-depot-tools) — Официальная инструкция по установке и настройке пакета "depot\_tools";
- [http://dev.chromium.org/developers/how-tos/cygwin](http://dev.chromium.org/developers/how-tos/cygwin) — Страница по установки и настройке терминала "Cygwin";
- [http://groups.google.com/a/chromium.org/group/chromium-discuss/topics](http://groups.google.com/a/chromium.org/group/chromium-discuss/topics) — Официальная дискуссия разработчиков браузера "Chromium";