SCons
SCons هي أداة لتطوير البرمجيات تقوم بتحليل تبعيات شفرة المصدر ومتطلبات التكيف مع نظام التشغيل انطلاقًا من وصف مشروع البرمجيات، وتُنشئ ملفات تنفيذية ثنائية نهائية للتثبيت على منصة نظام التشغيل المستهدف. وتتشابه وظيفتها مع نظام بناء GNU الأكثر شيوعًا .
تقوم الأداة بإنشاء نصوص بايثون لتكوين المشروع ومنطق البناء.
تاريخ
تم إنشاء أداة بناء البرمجيات Cons، المكتوبة بلغة Perl، بواسطة بوب سايدبوثام في عام 1999. [ 3 ] وقد شكلت أساسًا لأداة بناء ScCons ، وهو تصميم فاز بمسابقة مشروع Software Carpentry SC Build في أغسطس 2000. [ 4 ] كانت ScCons هي الأساس لـ SCons.
ألهمت SCons إنشاء Waf ، المعروفة سابقًا باسم SCons/BKsys ، والتي ظهرت في مجتمع KDE . لفترة من الوقت، كانت هناك خطط لاستخدامها كأداة بناء لـ KDE 4 وما بعده، ولكن تم التخلي عن هذا الجهد لصالح CMake . [ 5 ]
من أبرز المشاريع التي تستخدم SCons (أو استخدمتها في وقت ما): معركة ويسنوث ، [ 6 ] باتلفيلد 1942 ، دوم 3 ، [ 7 ] gem5، [ 8 ] gpsd ، [ 9 ] GtkRadiant ، [ 10 ] مدغشقر ، [ 11 ] نظام تثبيت Nullsoft Scriptable ، [ 12 ] OpenNebula ، [ 13 ] VMware ، وولفنشتاين : أرض العدو ، [ 14 ] XORP وMCA2، [ 15 ] أوبن بايلوت ، [ 16 ] وغودو . [ 17 ]
.csig هو تنسيق ملف توقيع محتوى SCons.
سمات
تشمل الميزات الرئيسية ما يلي:
- ملفات التكوين مكتوبة بلغة بايثون؛ ويمكن للبرامج التي يكتبها المستخدم الاستفادة من لغة برمجة عامة الأغراض ومتعددة المنصات
- تحليل التبعيات للغات C و C++ و Fortran
- يمكن توسيع نطاق تحليل التبعيات من خلال الماسحات الضوئية التي يُحددها المستخدم للغات أو أنواع الملفات الأخرى؛ على عكس تحليل التبعيات في مجموعة مترجمات GNU (GCC)، يستخدم SCons فحصًا باستخدام التعبيرات النمطية لملفات المصدر المضمنة.
- دعم مدمج للغات C و C++ و D و Java و Fortran و Objective-C و Yacc و Lex و Qt و SWIG ، بالإضافة إلى مستندات TeX و LaTeX
- دعم لغات أخرى عبر أدوات بناء مخصصة
- البناء انطلاقاً من مستودعات مركزية لشفرة المصدر والأهداف المبنية مسبقاً
- القدرة على استخدام Visual Studio ، بما في ذلك إنشاء ملفات .dsp و .dsw و .sln و .vcproj
- الكشف عن تغييرات محتوى الملفات باستخدام توقيعات MD5 ؛ إمكانية اختيارية وقابلة للتكوين لاستخدام الطوابع الزمنية التقليدية
- القدرة على إجراء عمليات بناء متوازية، مع الحفاظ على تشغيل عدد محدد من المهام في وقت واحد بغض النظر عن التسلسل الهرمي للمجلدات.
- دعم مشابه لـ Autoconf للعثور على ملفات #include والمكتبات والدوال وأنواع البيانات المُعرّفة
- عرض شامل للتبعيات، لذلك لا يلزم إجراء عمليات بناء متعددة أو إعادة ترتيب الأهداف.
- إمكانية مشاركة الملفات المُنشأة في ذاكرة تخزين مؤقتة لتسريع عمليات الإنشاء المتعددة - مثل ccache ولكن لأي نوع من الملفات المستهدفة، وليس فقط تجميع C/C++
- مصمم من الصفر للعمل على أنظمة تشغيل متعددة المنصات؛ ومعروف بتوافقه مع أنظمة POSIX (بما في ذلك Linux و AIX و OS/2 و *BSD Unices و HP-UX و SGI IRIX و Solaris و illumos ) و Windows NT و OS X
أمثلة
فيما يلي ملف SConstruct يقوم بإنشاء برنامج "مرحباً بالعالم " بلغة C باستخدام مترجم النظام الأساسي الافتراضي:
البرنامج ( "hello-world.c" )فيما يلي ملف SConstruct لمشروع يتضمن ملفي مصدر ويحدد خيارات أداة البناء:
env = Environment ( ) env.Append ( CPPFLAGS = [ " - Wall" , " -g" ]) env.Program ( "hello" , [ "hello.c" , "main.c" ])انظر أيضاً
- البناء
- qmake – إطار عمل كائني التوجه لتطوير البرمجيات. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه.
- Qbs (أداة البناء)
- بريميك – أداة بناء متعددة المنصات لتكوين عمليات بناء خاصة بكل منصة
- قائمة برامج أتمتة البناء
مراجع
- ↑ نايت، ستيفن (فبراير 2002). "تصميم وتنفيذ SCons" . مؤرشف من الأصل في 21 مارس 2018. تم الاطلاع عليه في 23 مارس 2024 .
- ↑ "الأرشيف - SCons" .
- ↑ سلبيات (موقع الويب)، DSMit
{{citation}}: CS1 maint: deprecated archiveal service ( link ) . - ↑ صموئيل، أليكس (4 أغسطس 2000). "نتائج الجولة الثانية من مسابقة تصميم البرمجيات كاربنتري: فئات التكوين والبناء والتتبع" . تم الاطلاع عليه بتاريخ 29 أكتوبر 2012 .
- ↑ نيوندورف، ألكسندر (21 يونيو 2006). "لماذا تحوّل مشروع KDE إلى CMake - وكيف (يتبع)" . LWN . تم الاطلاع عليه في 21 يوليو 2009 .
- ↑ "تجميع ويسنوث" . ويكي . ويسنوث . تم الاسترجاع في 11-04-2011 .
- ↑ "README.txt" . شركة آي دي سوفتوير . تم الاطلاع عليه بتاريخ 13-05-2015 .
- ↑ جوهرة 5.
- ↑ "مؤتمر SCons مليء بالانتصارات اليوم" . ESR . iBiblio. 2011-04-05 . تم الاطلاع عليه بتاريخ 2011-04-11 .
- ↑ "وثائق المطورين لـ GtkRadiant 1.6.0 (Zeroradiant)" (Trac) . QE radiant. 30-06-2008 . تم الاطلاع عليه بتاريخ 28-12-2009 .
- ↑ "التثبيت" . ويكي . أهاي. 2011-02-26 . تم الاسترجاع في 2011-04-11 .
- ↑ "تثبيت" . NSIS (شفرة المصدر). سورس فورج. 28-05-2011 . تم الاسترجاع في 11-04-2011 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ "/SConstruct - OpenNebula - صفحات تطوير OpenNebula" . مشروع OpenNebula. مؤرشف من الأصل بتاريخ 9 أغسطس 2018. تم الاطلاع عليه بتاريخ 9 يناير 2016 .
- ↑ "README.txt" . شركة آي دي سوفتوير . تم الاطلاع عليه بتاريخ 25-04-2017 .
- ↑ "بنية وحدة التحكم المعيارية" . مركز أبحاث تكنولوجيا المعلومات (FZI)، معهد كارلسروه للتكنولوجيا (KIT). مؤرشف من الأصل بتاريخ 10 ديسمبر 2020. تم الاطلاع عليه بتاريخ 30 أبريل 2013 .
- ↑ "مستودع Openpilot على GitHub" . comma.ai/ . تم الاطلاع عليه بتاريخ 10-05-2021 .
- ↑ "مقدمة إلى نظام البناء - أحدث وثائق محرك Godot" . docs.godotengine.org . تم الاطلاع عليه بتاريخ 19-08-2019 .
روابط خارجية
- أتمتة البناء
- أدوات التجميع
- برنامج مجاني مكتوب بلغة بايثون
- برنامج مرخص بموجب ترخيص MIT
