البناء في ويندوز باستخدام Cygwin و MSVCExpress

From The Document Foundation Wiki
Jump to: navigation, search

هذه الملاحظات تستند على بناء الـ "master" في ويندوز XP. بالنسبة للبناء في ويندوز 7 فقد يختلف قليلاً. يجب عليك تكييف المسارات عند البناء.

الهدف من هذه الملاحظات، هو اختبار أي المعطيات التي نحتاجها فعلاً عند البناء في ويندوز باستخدام Cygwin و Visual Studio Express وكذلك بالنسبة للملفات.

عند البناء لأول مرة، يُفضل أن تُسجل مخرجات الأوامر. بالإضافة إلى ذلك، المشاكل الناتجة عند استخدام معطيات ./autogen.sh تُسجل في الملف config.log. وتُسجل توقفات البناء في الملف build_error.log. في كلا الملفين سيتم الكتابة فوق البيانات السابقة عند محاولة البناء التالية، لذلك سجل نسخة احتياطية من الملفات قبل استخدام الأمر التالي.

انظر إلى Development/Windows Build Dependencies/ar.


الملخص

معطيات

./autogen.sh \
 --disable-build-mozilla \
 --with-mozilla-build="/cygdrive/c/mozillabuild" \
 --with-ant-home=/ant \
 --without-junit \
 --disable-activex \

ملفات إضافية

ضع الملفات التالية يدوياً:

  • gdiplus.dll في external\gdiplus
  • WNTMSCIinc.zip، WNTMSCIlib.zip و WNTMSCIruntime.zip في moz\zipped
  • msvcp80.dll، msvcr80.dll و Microsoft.VC80.CRT.manifest في external\msvcp80

ccache

في config.log قد تجد التحذير التالي:
configure:6733: WARNING: ccache's cache size is less than 1GB using it is counter-producive: Disabling auto-ccache detection

لا شيء يدعو للقلق، فقط لا يمكن استخدام ccache في ويندوز. المرجع: http://lists.freedesktop.org/archives/libreoffice/2011-September/017728.html

midl.exe

في config.log
configure:10218: checking for midl.exe
configure:10251: result: no

و في مُخرج ./autogen.sh
checking for midl.exe... no

لا نعلم عن نتائج ذلك. عملية البناء تجري كما يجب. و يمكنك تحديد المسار باستخدام المُعطى --with-midl-path="/cygdrive/c/Programme/Microsoft SDKs/Windows/v6.0A/bin"
يبدو أن المسار غير مستخدم أو غير معروف.



csc.exe

في config.log
configure:10289: checking for csc.exe
configure:10322: result: no

و في مُخرج ./autogen.sh
checking for csc.exe... no

لا نعلم عن نتائج ذلك. عملية البناء تجري كما يجب. و يمكنك تحديد المسار باستخدام المُعطى --with-csc-path="/cygdrive/c/Windows/Microsoft.NET/Framework/v3.5"
يبدو أن المسار غير مستخدم أو غير معروف.

valgrind

في config.log قد تجد التحذير التالي:
conftest.c(42) : fatal error C1083: Cannot open include file: 'valgrind.h': No such file or directory

و في مُخرج ./autogen.sh
checking valgrind.h usability... no
checking valgrind.h presence... no
checking for valgrind.h... no

لا شيء يدعو للقلق. كل ما في الأمر، وكما يتضح من خلال المخرجات، أن Valgrind غير موجود في ويندوز. وذلك لا يعيق البناء. المرجع: http://lists.freedesktop.org/archives/libreoffice/2011-September/017730.html

nss

في مُخرج ./autogen.sh
checking whether to build provided NSS module... yes
checking for Mozilla build tooling... configure: error: Mozilla build tooling not found.
Use the --with-mozilla-build option after installing the tools obtained
from http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32
Error running configure at ./autogen.sh line 157.

من غير الممكن تعطيل وحدة nss، ليس فقط لأنها تُستخدم من قبل موزيلا، انظر [1]، فهي مطلوبة لتوقيع xml و تشفير المستندات . لذلك تحتاج إلى أدوات بناء موزيلا "mozilla build tools". اتبع نصائح الضبط.

اذهب إلى [2]، قم بتنزيل وتثبيت MozillaBuildSetup-Latest.exe، في C:/mozillabuild على سبيل المثال.
اضف المُعطى --with-mozilla-build="/cygdrive/c/mozillabuild" إلى استدعاء autogen.sh.

mozilla

في مُخرج ./autogen.sh
checking which Mozilla to use... internal
checking for toolkit Mozilla should use... checking whether to build Mozilla/SeaMonkey... yes
configure: error: Building SeaMonkey is supported with Microsoft Visual Studio 2005 only.

لا يمكن بناء موزيلا باستخدام Cygwin و MSVC Express. إذا أردت تجربة ذلك انظر إلى readme.txt في الوحدة nss ، إذا نجح البناء قم بالتبليغ.
استخدم المُعطى --disable-mozilla لتعطيل استخدام موزيلا. أو استخدم المعطى --disable-build-mozilla لاستخدام الملفات التنفيذية المترجمة مسبقاً (precompiled binaries)، انظر Development/Windows Build Dependencies/ar.
إذا استخدمت المُعطى --disable-build-mozilla فأنت بحاجة إلى ملفات اضافية، انظر إلى القسم msvcp80.
هناك حاجة حالياً (LibreOffice 3.5 سبتمبر 2011) لموزيلا في دفتر العناوين وميزات ldap.


ant

في مُخرج ./autogen.sh
configure: error: Ant not found - Make sure it's in the path or use --with-ant-home

configure: error: لم يتم العثور على Ant - تأكد من أنه في المسار أو استخدم --with-ant-home=/ant

اتبع النصيحة. المُعطى --with-ant-home=/ant يعمل لـant، والذي تم تثبيته كمجلد فرعي في Cygwin. المسار بالنسبة إلى دليل cygwin، وليس إلى مخزن LibreOffice للشفرة المصدرية الخاص بك.
انظر إلى الدليل AntOnWindows، لتثبيت Ant في ويندوز.
في الأنظمة ذات الـ 64 بت، لا تقم بالتثبيت الافتراضي لأن المسار سيصبح بهذا الشكل C:\Program Files (x86)\WinAnt والأقواس تسبب بعض الارتباك. الأفضل أن يكون هكذا C:\win-ant أو مايشابهه ومن ثم استخدم --with-ant-home=/cygdrive/c/win-ant.


junit

في مُخرج ./autogen.sh
checking for JUnit 4... no
configure: error: cannot find JUnit 4 jar; please install one in the default
location (/usr/share/java), specify its pathname via
--with-junit=..., or disable it via --without-junit

استخدم المُعطى --without-junit. وكنتيجة لذلك بعض الاختبارت المبنية على الجافا لن تُستخدم.


atl, activex

تعطيل ATL

إذا كنت تستخدم فيجوال ستوديو اكسبرس، فالملف atlbase.h سوف يكون مفقود. استخدم المُعطى --disable-atl، وإلا فالبناء سوف يتوقف عند embedserv. وبالاضافة استخدم المعُطى --disable-activex، إذا كان البناء يتوقف عند extensions\source\activex\.


استخدام ATL مع فيجوال ستوديو اكسبرس

يُستخدم ATL لكائنات OLE من التطبيقات الخارجية، على سبيل المثال لاستخدام الصيغ الرياضية " Math Type formulas".

قم بتنزيل "Windows Driver Kit Version 7.1.0" [3] (آخر زيارة للرابط 13-11-2011)
احرق الملف على قرص مضغوط، وثم قم بتثبيت البرنامج. باستخدام الإعدادات الإفتراضية ستحصل على المجلد "C:\WinDDK".

لا توجد حالياً (نوفمبر 2011) معطيات لتحديد مسار مجلدات ATL خلال الضبط. تحتاج تحديد المسار بشكل يدوي. اتبع الخطوات التالية:

شغل autogen.sh بدون استخدام المفتاح "--disable-atl".
افتح الملف "Env.Host.sh" الموجود في المجلد الجذر للمصدر في المحرر. ابحث عن السطر الذي يبدأ بـ ATL_LIB، ATL_INCLUDE، MFC_LIB، و MFC_INCLUDE.
غير المسارات إلى دليل WinDDK كالتالي.
 
ATL_LIB="C:/WinDDK/7600.16385.1/lib/ATL/i386"
ATL_INCLUDE="C:/WinDDK/7600.16385.1/inc/atl71"
MFC_LIB="C:/WinDDK/7600.16385.1/lib/Mfc/i386"
MFC_INCLUDE="C:/WinDDK/7600.16385.1/inc/mfc42"
واصل البناء باستخدام ./bootstrap.

--with-max-jobs / --with-num-cpus

اصدار make الافتراضي في Cygwin هو 3.81. هذه الاصدار يتعطل عند محاولة التوازي " parallelism". لذلك دعك من هذا المُعطى واستخدم الإعدادت الافتراضية. تحلى بالصبر، فأول بناء قد يستغرق 18 ساعة.

أو استخدم الإصدار 3.82، والذي هو مصحح خصيصاً لLibreOffice.

git clone git://anongit.freedesktop.org/libreoffice/contrib/dev-tools

بدلاً من استخدام make الافتراضي، يجب عليك الآن استخدام:

/opt/lo/bin/make

سيتم الكشف تلقائياً عن LibreOffice dev-tools وسيظهر لك بعد ضبط الأمر أعلاه.

msvcp80

إذا كنت تستخدم ثنائيات موزيلا ماقبل البناء والتي تمت ترجمتها باستخدام فيجوال ستوديو 2005، سوف تحتاج إلى بعض الملفات من ذلك المترجم، انظر إلى ملف readme في المجلد msvcp80. وإلا سوف يتوقف البناء عند الوحدة instsetoo_native.

قد تجد هذه الملفات بالفعل في جهازك، وذلك لأن تطبيق آخر قام بتثبيتها. ابحث في المجلد الفرعي Windows\winsxs الاسم الذي يبدأ بـ x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b.

هناك طريقة أخرى وهي استخدام 'Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)'، انظر http://www.microsoft.com/download/en/details.aspx?id=5638.

gdiplus

يتم تحميل الكثير من الأشياء الإضافية مع make fetch، من بينها مثبت gdiplus.dll. سوف يُنشأ المسار \asms\10\msft\windows\gdiplus تحت المسار المحدد خلال التثبيت. وهنا الملف gdiplus.dll غير موجود، ويجب عليك نسخه يدوياً إلى external/gdiplus.