نصب ساز رومیزی gui/webview/bundle
آنچه salam bundle برای ساختن نصبکننده اجرا میکند.
واردسازی رابط گرافیکی.نمایش وب.نصب ساز رومیزی
این بسته همان چیزی است که با فرمان salam bundle اجرا میشود. جدول [app] در salam.toml را میخواند، برنامه را میسازد، داراییها را فشرده میکند و نصبکننده میسازد. برای استفاده از آن ساختن نصبکننده را ببینید.
جدول [app]
هر چه salam bundle لازم دارد در جدول [app] پروندهی salam.toml است. فقط شناسه و نام مهماند: نگارش پیشفرض ۰٫۱٫۰ است، ورودی main.salam و دسته Utility. نام کوتاه از نام برای نام پروندهها ساخته میشود. اگر جدولی نباشد خواندن شناسنامه نادرست برمیگرداند.
واردسازی رابط گرافیکی.نمایش وب.نصب ساز رومیزی
واردسازی ورودی خروجی
تابع ریشه:
متن := "[app]\nid = \"com.example.notes\"\nname = \"Notes\"\nversion = \"1.2.0\"\nassets = \"www\"\ncategory = \"Utility\"\n"
ورودی خروجی.نوشتن پرونده("salam.toml"، متن)
ناپایا ش := نصب ساز رومیزی.شناسنامه {}
اگر وارونه نصب ساز رومیزی.خواندن شناسنامه("salam.toml"، ش):
سرچاپ "جدول [app] نیست"
برگشت ۱
پایان
سرچاپ ش.شناسه
سرچاپ ش.نام، ش.نگارش
سرچاپ "پروندهی اصلی:"، ش.ورودی
سرچاپ "داراییها:"، ش.دارایی ها
سرچاپ "نام کوتاه:"، ش.نام کوتاه
پایانقالبها و هدفها
قالبهای پیشفرض در لینوکس tar و deb، در ویندوز zip و در مک app و tar هستند. بقیه را با --format بنویسید؛ هر کدام ابزارش را روی PATH میخواهد.
$ salam bundle --format=rpm,appimage # rpmbuild, appimagetool
$ salam bundle --target=x86_64-w64-windows-gnu --format=nsis # makensis
$ salam bundle --target=arm64-apple-macos --format=app,dmg # hdiutil
$ salam bundle --output=dist
ساخت برای سیستم دیگر به نرمافزار اضافه نیاز ندارد، چون خود کامپایلر برنامههای ویندوز و مک را پیوند میدهد. نماد PNG به .ico و .icns تبدیل میشود. چیزی امضا نمیشود، پس پیش از دادن برنامه به دیگران خودتان امضا و تایید کنید.
موتور وب هم بخشی از جدول [app] است. بهطور پیشفرض برنامه از وبویوی خود سیستمعامل استفاده میکند. با engine = "chromium" یا --engine=chromium برنامه با Chromium Embedded Framework ساخته میشود و باید runtime (یا --runtime=DIR یا متغیر محیطی SALAM_CEF_DIR) را به پوشهای بدهید که کتابخانهی ساختهشدهی salam_webview_cef، برنامهی salam_cef_helper و پروندههای اجرایی CEF در آن است. این پوشه کنار برنامه کپی میشود، آن هم فقط برای tar در لینوکس و zip در ویندوز. اینکه موتور کرومیوم امروز چه کارهایی را میتواند ببینید در انتخاب موتور وب.
ساخت نصبکننده در CI
همین فرمان را روی یک رانکنندهی لینوکس برای هر سیستم با --target و --output جدا اجرا کنید و نتیجهها را بارگذاری کنید. جریان desktop.yml در مخزن سلام همین کار را میکند و بعد هر نتیجه را روی ویندوز، مک و لینوکس واقعی اجرا میکند.
گونهها
شناسنامه Manifest
ساختار شناسنامه[app] در salam.toml.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| شناسه | id | رشته = "" | شناسهی برنامه. |
| نام | name | رشته = "" | نامی که کاربر میبیند. |
| نگارش | version | رشته = "0.1.0" | نگارش. |
| ورودی | main | رشته = "main.salam" | پروندهی ورودی؛ پیشفرض main.salam. |
| دارایی ها | assets | رشته = "" | پوشهای که در برنامه بسته میشود. |
| نماد | icon | رشته = "" | نماد PNG که برای هر سیستم تبدیل میشود. |
| توضیح | description | رشته = "" | یک خط دربارهی برنامه. |
| ناشر | publisher | رشته = "" | ناشر برنامه. |
| دسته | category | رشته = "Utility" | دستهی منوی میزکار. |
| نام کوتاه | slug | رشته = "" | نام پرونده که از نام برنامه ساخته میشود. |
| موتور | engine | رشته = "system" | موتور وب برنامه: system (وبویوی خود سیستمعامل، پیشفرض) یا chromium. |
| پوشه موتور | runtime | رشته = "" | پوشهی پروندههای اجرایی کرومیوم که با موتور chromium به کار میرود. |
واردسازی رابط گرافیکی.نمایش وب.نصب ساز رومیزی
واردسازی سیستم عامل
تابع ریشه:
ناپایا م := نصب ساز رومیزی.شناسنامه {
شناسه = "com.example.app"، نام = "برنامه"، نگارش = "1.0"، ورودی = "main.salam"، دارایی ها = "www"، نماد = "icon.png"، توضیح = "یک برنامه"، ناشر = "نمونه"، دسته = "Utility"، نام کوتاه = "app"، موتور = "system"، پوشه موتور = ""
}
سرچاپ نصب ساز رومیزی.خواندن شناسنامه("salam.toml"، م)، م.نام
برگشت نصب ساز رومیزی.اجرا(سیستم عامل.آرگومان ها())
پایانتابعها
خواندن شناسنامه ReadManifest
تابع خواندن شناسنامه(path: رشته، out &: شناسنامه): منطقی[app] یک پرونده را میخواند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-webview-bundle-Main.salam
اجرا Main
تابع اجرا(args: وکتور<رشته>): صحیحsalam bundle اجرا میکند. کد خروج را برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-webview-bundle-Main.salam