WebKit — всемирно признанное превосходное ядро браузера с открытым исходным кодом. Его преимущества заключаются в высокой скорости рендеринга, гибкости и настройке, а также поддержке нескольких платформ. Известные отечественные компании Maxthon и UCWeb выбрали в качестве ядра браузера WebKit. Google и Apple создали только браузер Chrome и браузер Safari соответственно на основе WebKit.
Хотя WebKit все чаще принимается программистами, процесс его компиляции очень болезненный. Ниже я поделюсь с вами своим опытом компиляции кода WebKit.
1) Получите исходный код WebKit.
Исходный код WebKit управляется с помощью инструмента Subversion. Таким образом, любой, у кого есть клиент Subversion, может получить исходный код по адресу http://svn.webkit.org/repository/webkit/trunk . Однако это не лучший способ. Код, полученный через svn в самом процессе компиляции, может доставить вам массу неприятностей. Поэтому я рекомендую загрузить архив исходного кода WebKit непосредственно из сборки WebKit Nightly. Конкретный адрес: http://nightly.webkit.org/builds/trunk/src/1 Удивительно, что такой большой проект, как WebKit, все еще следует принципу Daily Build.
На момент написания этой статьи версия исходного кода WebKit — r52221, но мне не удалось успешно скомпилировать эту версию WebKit в течение последних двух дней. Причина в том, что после нескольких минут открытия проекта с помощью Visual Studio 2005 Visual Studio 2005 перестает отвечать на запросы. Я протестировал версию r50006, которая является первой версией, начиная с 5, и такой проблемы нет. Чем больше номер версии, тем новее исходный код, и наоборот.
2) Создание среды компиляции WebKit.
На веб-сайте WebKit есть статья, в которой объясняется построение среды WebKit под платформой Windows: http://webkit.org/building/tools.html Но эта статья слишком проста. Именно здесь WebKit больше всего опустошает людей. После десятков неудач я наконец нашел кратчайший путь к своей цели.
Аппаратное обеспечение
Лучше всего найти компьютер с объемом памяти более 2 ГБ. Поскольку проект WebKit слишком велик, будут созданы сотни файлов .obj. Для выполнения операции соединения потребуется примерно 1,6 ГБ памяти. Если на вашем компьютере установлена операционная система, требующая большого объема памяти, такая как Vista, подождите, пока link.exe не сообщит вам «Недостаточно памяти». Памяти машины, на которой я установил Vista, было всего 2G, и я несколько раз пытался ее подключить, но безуспешно. Наконец, мне пришлось скомпилировать в безопасном режиме (я даже не осмелился загрузить драйвер сетевой карты), и наконец-то прошел тест, когда пиковая память достигла 1,99 ГБ, это так интересно, так захватывающе.
Конечно, чем больше жесткий диск, тем лучше, поскольку исходный код WebKit после расширения занимает 160–190 МБ дискового пространства, а промежуточные файлы, созданные в процессе компиляции, требуют около 4 ГБ дискового пространства. Помимо дискового пространства, занимаемого Cygwin Visual Studio и т. д., они довольно велики. Самое главное — зарезервировать около 4G места на системном диске.
Фактически, использование многоядерного процессора также полезно для компиляции WebKit. Сценарий компиляции может одновременно вызывать cl.exe для параллельной компиляции WebKit, что значительно сокращает время компиляции.
Программное обеспечение
Сначала вам необходимо установить Visual Studio 2005 SP1. Если это Vista или Windows 7, вам необходимо установить обновление SP1 для Vista. Visual C++ 2005 Express также может компилировать WebKit, но Platform SDK необходимо устанавливать отдельно. Практика доказала, что WebKit можно скомпилировать и передать на Платформе 5.0 и 6.0.
Здесь также возникает вопрос, а что, если на вашем компьютере уже установлена Visual Studio 2008? Не волнуйтесь, Visual Studio 2005 и Visual Studio 2008 могут сосуществовать, а Visual Studio 2005 можно установить после Viusal Studio 2008. Однако следует отметить, что если Visual Studio 2005 установлена после Visual Studio 2008, Perl-скрипт WebKit будет обращаться только к «Системный дискProgram FilesMicrosoft Visual Studio», чтобы найти папку bin VC (то есть cl.exe). папка). Если установленная вами VS 2005 отсутствует на системном диске, вам необходимо скопировать папку VC bin в каталог на системном диске.
После установки Visual Studio 2005 вам необходимо установить еще одну большую часть Cygwin. Cygwin фактически имитирует среду Unix в Windows. Лучше не использовать напрямую файл setup.exe, указанный на веб-сайте Cygwin, при установке Cygwin. Вместо этого используйте инструмент cygwin-downloader, представленный на веб-сайте WebKit.org. cygwin-downloader загрузит 101 инструмент, необходимый для компиляции WebKit (сейчас их может быть еще несколько), таких как perl, zlib, bash и т. д. После завершения загрузки запустите инструмент установки Cygwin Setup.exe и выберите установку из локального каталога. Пожалуйста, обратите внимание! Cygwin необходимо установить в раздел системного диска. Если диск C является системным диском, Cygwin необходимо установить в раздел C:cygwin. После завершения установки он будет занимать примерно несколько сотен мегабайт места.
Далее, что еще необходимо установить, это QuickTime SDK. Некоторые говорят, что вам не нужно устанавливать QuickTime SDK, но я обнаружил, что если вы его не установите, проект QTMovie в решении WebKit не будет успешно скомпилирован. QuickTime необходимо установить в папку:Program FilesQucikTime SDK на системном диске. Не меняйте путь установки.
Наконец, после распаковки файла исходного кода WebKit вам необходимо перейти на сайт webKit.org и загрузить файл WebKitSupportLibrary.zip. Этот файл представляет собой предварительно скомпилированную версию некоторых сторонних библиотек на платформе Windows. Для использования при ссылке на WebKit. После загрузки zip-файл не нужно распаковывать, его можно поместить непосредственно в корневой каталог WebKit.
Этапы компиляции
1) Установите переменные среды. Установите WEBKITLIBRARIESDIR в каталог исходного кода WebKitWebKitLibrarieswin; установите WEBKITOUTPUTDIR в выходную папку, в которой вы планируете хранить obj и dll. Конечно, в разделе, где находится эта папка, должно быть не менее 4 ГБ свободного места.
2) Выполните скрипт обновления. Запустите окно командной строки cygwin на рабочем столе, а затем используйте команду CD (такую же, как команда DOS CD), чтобы перейти в папку исходного кода WebKitWebKitToolsScripts. Например, мой исходный код WebKit помещен на диск F, то есть cd F:/WebKit/WebKitTools/Scripts/, и в этом каталоге запускаются два сценария Update-WebKit и Update-WebKit-Support-libs. Этот шаг не упоминается во многих блогах. Фактически, этот шаг является ключом к успешной компиляции.
3) После успешного выполнения двух вышеуказанных шагов вы можете использовать Visual Studio 2005, чтобы открыть решение WebKit.sln, расположенное в каталоге исходного кода WebKit WebKitwinWebKit.vcproj. Этот sln по умолчанию поставляется с шестью конфигурациями компиляции Debug, Debug_all, Debug_Cairo, Release, Debug_Internal и Release_Cairo. Версия, скомпилированная с Release, использует собственный механизм рендеринга Apple, аналогичный Safari. Версия, скомпилированная с помощью Release_Cairo, поддерживает механизм рендеринга Cairo. Эту версию можно запускать независимо от среды Apple, но ее нельзя запускать в среде Apple Safari. Чтобы отслеживать успешность компиляции, вы можете использовать приложение WinLauncher.exe для загрузки WebKit для тестирования.
Сейчас напишу здесь, а потом добавлю, если что-нибудь придумаю.