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's 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 أو Window 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 فقط إلى "System DiskProgram FilesMicrosoft Visual Studio" للعثور على مجلد VC bin (أي، 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. بعد التنزيل، لا يلزم فك ضغط الملف المضغوط ويمكن وضعه مباشرة في الدليل الجذر لـ WebKit.
خطوات التجميع
1) تعيين متغيرات البيئة. قم بتعيين WEBKITLIBRARIESDIR على مسار رمز مصدر WebKitWebKitLibrarieswin؛ وقم بتعيين WEBKITOUTPUTDIR على مجلد الإخراج حيث تخطط لتخزين obj وdll. بالطبع، يجب أن يحتوي القسم الذي يوجد به هذا المجلد على 4 جيجا بايت من المساحة المتبقية.
2) تنفيذ البرنامج النصي للتحديث. الرجاء تشغيل نافذة سطر أوامر cygwin على سطح المكتب، ثم استخدام أمر القرص المضغوط (مثل أمر القرص المضغوط لـ DOS) للانتقال إلى المجلد DirectoryWebKitToolsScripts الخاص بكود مصدر WebKit. على سبيل المثال، يتم وضع كود مصدر 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 بشكل افتراضي. يستخدم الإصدار الذي تم تجميعه مع الإصدار محرك العرض الخاص بشركة Apple، والذي يتوافق مع محرك Safari. الإصدار المترجم مع Release_Cairo يدعم محرك عرض القاهرة. يمكن تشغيل هذا الإصدار بشكل مستقل عن بيئة Apple، ولكن لا يمكن تشغيله في بيئة Safari الخاصة بشركة Apple. لمراقبة ما إذا كان التجميع ناجحًا، يمكنك استخدام تطبيق WinLauncher.exe لتحميل WebKit للاختبار.
سأكتبه هنا الآن، وسأضيف المزيد لاحقًا إذا فكرت في أي شيء.