اسکونس

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

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

## ویژگی‌های اصلی
ویژگی‌های اصلی اسکونس عبارت‌اند از:
* فایل‌های پیکربندی اسکریپت‌های پایتون هستند، به این معنی که سازه‌های نوشته‌شده توسط کاربر به یک زبان برنامه‌نویسی کامل همه منظوره دسترسی دارند.
* تجزیه و تحلیل وابستگی خودکار داخلی برای 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 را با استفاده از کامپایلر پیش‌فرض پلت فرم، کامپایل می‌کند:
```python
Program('hello-world.c')
```
مثال زیر یک مثال پیچیده‌تر است که محیطی را برای ساخت برنامه hello استفاده می‌کند:
```python
env = Environment()
env.Append(CPPFLAGS=['-Wall','-g'])
env.Program('hello',
            ['hello.c', 'main.c'])
```


## جستارهای وابسته
* سی‌میک
* ابزارهای خودکار گنو

## منابع

## پیوند به بیرون
* 
* 
* 
رده:نرم‌افزارهای دارای اجازه‌نامه ام‌آی‌تی
رده:نرم‌افزارهای آزاد نوشته‌شده با پایتون
رده:ابزارهای مرتبط با کامپایل کردن
رده:خودکارسازی ساخت
رده:مقاله‌های دارای کد نمونه به زبان پایتون