اسکونس

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از Scons)
اسکونس
نویسنده(های)
اصلی
استیون نایت
انتشار پایدار
۴٫۰٫۱[۱]
۱۶ ژوئیه ۲۰۲۰؛ ۳ سال پیش (۲۰۲۰-۱۶}})
مخزن
نوشته‌شده باپایتون
سیستم‌عاملچندسکویی
گونهابزار توسعه نرم‌افزار
پروانهپروانه ام‌آی‌تی
وبگاه

اسکونس (به انگلیسی: SCons) نرم‌افزاری است که وابستگی فایل کد منبع و الزامات سازگاری سیستم عامل را به صورت خودکار از توصیف پروژه نرم‌افزار تجزیه و تحلیل می‌کند و باینری‌های قابل اجرای نهایی را برای نصب بر روی سیستم عامل سیستم عامل تولید می‌کند. کارکرد آن مشابه سامانه ساخت گنو بر اساس ابزارهای ساخت و اوتوکانف است.

اسکونس پیکربندی‌های پروژه را تولید می‌کند و پیاده‌سازی روند را به صورت اسکریپت‌های پایتون می‌سازد.

ویژگی‌های اصلی[ویرایش]

ویژگی‌های اصلی اسکونس عبارت‌اند از:

  • فایل‌های پیکربندی اسکریپت‌های پایتون هستند، به این معنی که سازه‌های نوشته‌شده توسط کاربر به یک زبان برنامه‌نویسی کامل همه منظوره دسترسی دارند.
  • تجزیه و تحلیل وابستگی خودکار داخلی برای C , C ++ و Fortran. تجزیه و تحلیل وابستگی از طریق اسکنرهای وابستگی تعریف شده توسط کاربر برای زبان‌های دیگر یا انواع فایل قابل توسعه است. برخلاف تحلیل وابستگی داخلی (GNU Compiler Collection (GCC، از اسکن عبارت منظم برای فایل‌های منبع مشمول استفاده می‌کند.
  • پشتیبانی داخلی برای C , C ++، D، Java، Fortran، Objective-C، Yacc، Lex، Qt و SWIG و همچنین اسناد TeX و LaTeX. اSCons همچنین می‌تواند از طریق سازندگان تعریف شده توسط کاربر، به زبانها یا انواع دیگر فایل‌ها رسیدگی کند.
  • ساخت از مخازن مرکزی کد منبع و اهداف از پیش ساخته شده.
  • قابلیت داخلی برای واکشی فایلهای منبع از سیستم‌های کنترل تجدید نظر، مانند SCCS , RCS، CVS، Subversion، BitKeeper و Perforce.
  • قابلیت داخلی برای استفاده از Microsoft Visual Studio، شامل تولید فایل‌های dsp , .dsw , .sln و vcproj. .
  • تشخیص تغییرات محتوای فایل با استفاده از امضاهای MD5. قابلیت اختیاری، قابل تنظیم برای استفاده از مهرهای سنتی.
  • قابلیت انجام ساخت‌های موازی، حفظ تعداد مشخصی از امور همزمان در حال اجرا بدون در نظر گرفتن سلسله مراتب فهرست.
  • پشتیبانی یکپارچه مانند Autoconf برای یافتن include# فایل‌ها، کتابخانه‌ها، توابع و حروف تایپ.
  • نمای کلی همه وابستگی‌ها، بنابراین گذرگاه ساخت چندگانه یا تنظیم مجدد اهداف نیازی نیست.
  • امکان به اشتراک گذاری فایل‌های ساخته شده در حافظه پنهان برای سرعت بخشیدن به چندین ساخت - مانند ccache اما برای هر نوع فایل هدف، نه فقط کامپایل C / C ++.
  • از ابتدا برای ساخت کراس-پلتفرم طراحی شده‌است و برای کار بر روی سیستم‌های POSIX (شامل GNU / Linux، IBM AIX و OS / 2، * BSD Unices، HP-UX، SGI IRIX، Solaris Illumos) اMS Windows NT , Apple OS Xشناخته شده‌است.

تاریخچه و پروژه‌های مرتبط[ویرایش]

تاریخچه نرم‌افزار اسکونس با ابزار ساخت نرم‌افزار Cons که توسط Bob Sidebotham در سال ۱۹۹۹ ایجاد شد، آغاز شد.[۲] Cons به زبان پرل نوشته شده بود. این به عنوان پایه برای ابزار ساخت ScCons عمل کرد، طرحی که در اوت ۲۰۰۰ برنده رقابت ساخت نرم‌افزار SC Build شد.[۳] ScCons پایه و اساس اسکونس بود.

اسکونس از ایجاد Waf الهام گرفت که با نام سابق SCons / BKsys شناخته می‌شد و در جامعه KDE ظهور کرد. برای مدتی، برنامه‌هایی برای استفاده از آن به عنوان ابزار ساخت KDE 4 و فراتر از آن وجود داشت، اما این تلاش به نفع CMake کنار گذاشته شد.[۴]

برنامه‌های قابل توجهی که از اسکونس استفاده می‌کنند شامل موارد زیر است: نبرد برای وسنوت،[۵] Battlefield 1942 ،[نیازمند منبع] Doom 3،[۶] FCEUX ,[۷] gem5،[۸] gpsd ,[۹] GtkRadiant ,[۱۰] ماداگاسکار،[۱۱] Mixxx ,[۱۲] MongoDB ,[۱۳] سیستم نصب اسکریپت Nullsoft ,[۱۴] OpenNebula ,[۱۵] VMware ،[نیازمند منبع]، ولفنشتاین: قلمرو دشمن،[۱۶] XORP و MCA2،[۱۷] و گودو.[۱۸]

مثال‌ها[ویرایش]

مثال زیر یک فایل SConstruction بسیار ساده است که فایل hello-world.c برنامه C را با استفاده از کامپایلر پیش‌فرض پلت فرم، کامپایل می‌کند:

Program('hello-world.c')

مثال زیر یک مثال پیچیده‌تر است که محیطی را برای ساخت برنامه hello استفاده می‌کند:

env = Environment()
env.Append(CPPFLAGS=['-Wall','-g'])
env.Program('hello',
            ['hello.c', 'main.c'])

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. https://scons.org/archives.html
  2. Cons (web site), DSMit, archived from the original on 2000-08-15
  3. Samuel, Alex (2000-08-04). "Software Carpentry Design Competition Second Round Results Config, Build, and Track categories". Retrieved 2012-10-29.
  4. Neundorf, Alexander (21 June 2006). "Why the KDE project switched to CMake – and how (continued)". LWN. Retrieved 21 July 2009.
  5. "CompilingWesnoth". Wiki. Wesnoth. Archived from the original on 3 January 2018. Retrieved 2011-04-11.
  6. "README.txt". id Software. Retrieved 2015-05-13.
  7. "Downloads". FCEUX. Retrieved 2017-04-25.
  8. Gem5.
  9. "SCons is full of win today". ESR. iBiblio. 2011-04-05. Retrieved 2011-04-11.
  10. "Developer documentation for GtkRadiant 1.6.0 (Zeroradiant)". QE radiant. 2008-06-30. Archived from the original (Trac) on 28 September 2011. Retrieved 2009-12-28.
  11. "Installation". Wiki. Ahay. 2011-02-26. Retrieved 2011-04-11.
  12. "Mixxx/Compiling". 2014-08-26.
  13. "Building for Linux". MongoDB. 10gen. January 30, 2009. Archived from the original on February 21, 2009. Retrieved February 8, 2011.
  14. "INSTALL". NSIS (source code). Source forge. 2011-05-28. Archived from the original on 2012-07-11. Retrieved 2011-04-11.
  15. "/SConstruct - OpenNebula - OpenNebula Development pages". OpenNebula Project. Archived from the original on 9 August 2018. Retrieved 2016-01-09.
  16. "README.txt". id Software. Retrieved 2017-04-25.
  17. "Modular Controller Architecture". Research Center for Information Technology (FZI), Karlsruhe Institute of Technology (KIT). Archived from the original on 10 December 2020. Retrieved 29 November 2020.
  18. "Introduction to the buildsystem — Godot Engine latest documentation". docs.godotengine.org. Retrieved 2019-08-19.

پیوند به بیرون[ویرایش]