CPACK(1) CMake CPACK(1)

cpack - مرجع خط فرمان ابزار بسته‌بندی CPack

cpack [<options>]

برنامه اجرایی cpack ابزار بسته‌بندی CMake است. این برنامه نصاب‌ها (installers) و بسته‌های سورس‌کد را در قالب‌های متنوعی تولید می‌کند.

برای هر قالب نصاب یا بسته، cpack یک بک‌اند (backend) مشخص دارد که «تولیدکننده» ("generator") نامیده می‌شود. یک تولیدکننده وظیفه ایجاد ورودی‌های موردنیاز و فراخوانی ابزارهای ویژه ساخت بسته را بر عهده دارد. این تولیدکننده‌های بسته یا نصاب نباید با تولیدکننده‌های میک‌فایل (makefile) دستور cmake <#manual:cmake(1)> اشتباه گرفته شوند.

تمام تولیدکننده‌های پشتیبانی‌شده در راهنمای cpack-generators <#manual:cpack-generators(7)> مشخص شده‌اند. دستور cpack --help فهرستی از تولیدکننده‌های پشتیبانی‌شده برای پلتفرم مقصد را چاپ می‌کند. انتخاب تولیدکننده موردنظر می‌تواند از طریق متغیر CPACK_GENERATOR <#variable:CPACK_GENERATOR> یا از طریق گزینه خط فرمان -G انجام شود.

برنامه cpack توسط یک فایل پیکربندی که به زبان CMake language <#manual:cmake-language(7)> نوشته شده است هدایت می‌شود. مگر اینکه با گزینه خط فرمان --config فایل دیگری انتخاب شده باشد، فایل CPackConfig.cmake در پوشه جاری استفاده خواهد شد.

در جریان کاری استاندارد CMake، در صورتی که ماژول CPack <#module:CPack> در فایل CMakeLists.txt پروژه گنجانده شده باشد، فایل CPackConfig.cmake توسط برنامه اجرایی cmake <#manual:cmake(1)> تولید می‌گردد.

مقدار <generators> فهرستی از نام‌های تولیدکننده است که با نقطه-ویرگول جدا شده‌اند <#cmake-language-lists>. ابزار cpack این فهرست را پیمایش کرده و بسته(ها) را بر اساس قالب آن تولیدکننده و مطابق با جزئیات ارائه‌شده در فایل پیکربندی CPackConfig.cmake تولید می‌کند. اگر این گزینه ارائه نشود، متغیر CPACK_GENERATOR <#variable:CPACK_GENERATOR> مجموعه پیش‌فرض تولیدکننده‌هایی را که استفاده خواهند شد مشخص می‌نماید.
پیکربندی(های) پروژه‌ای را که باید بسته‌بندی شوند مشخص می‌کند (مانند Debug، Release و غیره)، که در آن <configurations> فهرستی از پیکربندی‌هاست که با نقطه-ویرگول جدا شده‌اند <#cmake-language-lists>. زمانی که پروژه CMake از یک تولیدکننده چندپیکربندی مانند Xcode <#generator:Xcode> یا Visual Studio <#visual-studio-generators> استفاده می‌کند، این گزینه برای اعلام اینکه کدام برنامه‌های اجرایی ساخته‌شده باید در بسته گنجانده شوند به cpack نیاز است. کاربر موظف است اطمینان حاصل کند پیکربندی(های) فهرست‌شده، پیش از فراخوانی cpack ساخته شده باشند.
تنظیم یک متغیر CPack. این گزینه هر مقداری را که در فایل ورودی خوانده‌شده توسط cpack برای <var> تنظیم شده باشد، بازنویسی (override) می‌کند.
تعیین فایل پیکربندی که cpack برای دریافت جزئیات بسته‌بندی می‌خواند. به‌طور پیش‌فرض، فایل CPackConfig.cmake در پوشه جاری استفاده خواهد شد.
اجرای cpack با خروجی پرجزئیات (verbose). این گزینه می‌تواند برای نمایش جزئیات بیشتر از ابزارهای تولید بسته استفاده شود و برای توسعه‌دهندگان پروژه مناسب است.
اجرای cpack با خروجی اشکال‌زدایی (debug). این گزینه عمدتاً برای توسعه‌دهندگان خود cpack در نظر گرفته شده است و معمولاً موردنیاز توسعه‌دهندگان پروژه نیست.
قرار دادن اسکریپت‌های زیربنایی cmake در حالت ردیابی (trace mode).
--trace-expand
قرار دادن اسکریپت‌های زیربنایی cmake در حالت ردیابی بسط‌یافته (expanded trace mode).
بازنویسی/تعریف مقدار متغیر CPACK_PACKAGE_NAME <#variable:CPACK_PACKAGE_NAME> مورد استفاده برای بسته‌بندی. هر مقداری که برای این متغیر در فایل CPackConfig.cmake تنظیم شده باشد پس از آن نادیده گرفته خواهد شد.
بازنویسی/تعریف مقدار متغیر CPACK_PACKAGE_VERSION <#variable:CPACK_PACKAGE_VERSION> مورد استفاده برای بسته‌بندی. این گزینه مقداری را که در فایل CPackConfig.cmake تنظیم شده یا مقداری را که به‌صورت خودکار از CPACK_PACKAGE_VERSION_MAJOR <#variable:CPACK_PACKAGE_VERSION_MAJOR>، CPACK_PACKAGE_VERSION_MINOR <#variable:CPACK_PACKAGE_VERSION_MINOR> و CPACK_PACKAGE_VERSION_PATCH <#variable:CPACK_PACKAGE_VERSION_PATCH> محاسبه شده است، بازنویسی می‌کند.
بازنویسی/تعریف متغیر CPACK_PACKAGE_DIRECTORY <#variable:CPACK_PACKAGE_DIRECTORY>، که پوشه‌ای را که CPack عملیات بسته‌بندی را در آن انجام می‌دهد کنترل می‌کند. بسته(های) نهایی به‌طور پیش‌فرض در این مکان ایجاد خواهند شد و یک زیرپوشه با نام _CPack_Packages نیز در زیر این پوشه ایجاد می‌شود تا در طول فرایند ساخت بسته به‌عنوان فضای کاری استفاده گردد.
بازنویسی/تعریف CPACK_PACKAGE_VENDOR <#variable:CPACK_PACKAGE_VENDOR>.
استفاده از یک پیش‌تنظیم بسته (preset <#manual:cmake-presets(7)>) برای تعیین گزینه‌های بسته. پوشه باینری پروژه از کلید configurePreset <#cmakepresets-packagepresets-configurepreset> استنتاج می‌شود.

تغییر یافته در نسخه 4.4: اگر --presets-file مشخص شده باشد، وجود هیچ‌یک از فایل‌های CMakePresets.json یا CMakeUserPresets.json الزامی نیست. در غیر این صورت، حضور آن‌ها در پوشه ریشه سورس‌کد الزامی است. در نسخه‌های قبلی، این مورد اکیداً الزامی بود.

اضافه شده در نسخه 4.4.

پیش‌تنظیم‌ها (presets <#manual:cmake-presets(7)>) را از <file> مشخص‌شده می‌خواند. مسیر مشخص‌شده می‌تواند مطلق یا نسبت به پوشه کاری جاری باشد. اگر --presets-file داده شود، پیش‌تنظیم‌های تعریف‌شده در CMakePresets.json و CMakeUserPresets.json نادیده گرفته خواهند شد.

فهرست کردن پیش‌تنظیم‌های بسته در دسترس.

تغییر یافته در نسخه 4.4: اگر --presets-file مشخص شده باشد، وجود هیچ‌یک از فایل‌های CMakePresets.json یا CMakeUserPresets.json الزامی نیست و تنها پیش‌تنظیم‌های تعریف‌شده در <file> داده‌شده فهرست خواهند شد. در غیر این صورت، حضور آن‌ها در پوشه سطح بالای سورس‌کد الزامی است. در نسخه‌های پیشین، این مورد اکیداً الزامی بود.

نمایش نام برنامه/نسخه و خروج. اگر json-v1 مشخص شود، اطلاعات تفصیلی نسخه را در قالب JSON چاپ می‌کند. خروجی JSON حاوی اطلاعات نسخه‌های CMake و وابستگی‌های آن است. در صورت ارائه <file>، خروجی در فایل مشخص‌شده چاپ خواهد شد.

قالب خروجی JSON به‌صورت ماشین‌خوان توسط this JSON schema شرح داده شده است.

چاپ اطلاعات راهنمای استفاده و خروج.

بخش راهنما رابط خط فرمان پایه و گزینه‌های آن را توصیف می‌کند.

چاپ راهنما برای یک کلیدواژه CMake.

مقدار <keyword> می‌تواند یک ویژگی (property)، متغیر، دستور، خط‌مشی (policy)، تولیدکننده یا ماژول باشد.

مدخل راهنمای مربوطه برای <keyword> در قالب متن خوانا برای انسان چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

تغییر یافته در نسخه 3.28: پیش از CMake 3.28، این گزینه تنها از نام‌های دستورات پشتیبانی می‌کرد.

چاپ تمام راهنماها و خروج.

تمامی صفحات راهنما در یک قالب متنی خوانا چاپ می‌شوند. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ یک صفحه راهنما و خروج.

راهنمای مشخص‌شده در یک قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

فهرست کردن راهنماهای در دسترس و خروج.

این فهرست شامل تمامی راهنماهایی است که می‌توان با استفاده از گزینه --help-manual و به‌دنبال آن نام راهنما به آن‌ها دسترسی پیدا کرد. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنما برای یک دستور و خروج.

مدخل راهنمای cmake-commands(7) <#manual:cmake-commands(7)> برای <cmd> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

فهرست کردن دستورات دارای راهنما و خروج.

این فهرست شامل تمامی دستوراتی است که می‌توان با استفاده از گزینه --help-command و به‌دنبال آن نام دستور به راهنمای آن‌ها دست یافت. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنمای cmake-commands و خروج.

راهنمای cmake-commands(7) <#manual:cmake-commands(7)> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنما برای یک ماژول و خروج.

مدخل راهنمای cmake-modules(7) <#manual:cmake-modules(7)> برای <mod> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

فهرست کردن ماژول‌های دارای راهنما و خروج.

این فهرست شامل تمامی ماژول‌هایی است که می‌توان با استفاده از گزینه --help-module و به‌دنبال آن نام ماژول به راهنمای آن‌ها دست یافت. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنمای cmake-modules و خروج.

راهنمای cmake-modules(7) <#manual:cmake-modules(7)> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنما برای یک خط‌مشی (policy) و خروج.

مدخل راهنمای cmake-policies(7) <#manual:cmake-policies(7)> برای <cmp> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

فهرست کردن خط‌مشی‌های دارای راهنما و خروج.

این فهرست شامل تمامی خط‌مشی‌هایی است که می‌توان با استفاده از گزینه --help-policy و به‌دنبال آن نام خط‌مشی به راهنمای آن‌ها دسترسی پیدا کرد. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنمای cmake-policies و خروج.

راهنمای cmake-policies(7) <#manual:cmake-policies(7)> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنما برای یک ویژگی (property) و خروج.

مدخل راهنمای cmake-properties(7) <#manual:cmake-properties(7)> برای <prop> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

فهرست کردن ویژگی‌های دارای راهنما و خروج.

این فهرست شامل تمامی ویژگی‌هایی است که می‌توان با استفاده از گزینه --help-property و به‌دنبال آن نام ویژگی به راهنمای آن‌ها دست یافت. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنمای cmake-properties و خروج.

راهنمای cmake-properties(7) <#manual:cmake-properties(7)> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنما برای یک متغیر و خروج.

مدخل راهنمای cmake-variables(7) <#manual:cmake-variables(7)> برای <var> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

فهرست کردن متغیرهای دارای راهنما و خروج.

این فهرست شامل تمامی متغیرهایی است که می‌توان با استفاده از گزینه --help-variable و به‌دنبال آن نام متغیر به راهنمای آن‌ها دسترسی پیدا کرد. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

چاپ راهنمای cmake-variables و خروج.

راهنمای cmake-variables(7) <#manual:cmake-variables(7)> در قالب متنی خوانا چاپ می‌شود. در صورت ارائه نام <file>، خروجی در آن فایل چاپ خواهد شد.

منابع زیر برای دریافت راهنما در خصوص استفاده از CMake در دسترس هستند:

صفحه اصلی
https://cmake.org

نقطه آغاز اصلی برای یادگیری در مورد CMake.

مستندات آنلاین و منابع جامعه کاربری
https://cmake.org/documentation

پیوندها به مستندات و منابع جامعه کاربری موجود را می‌توان در این صفحه وب یافت.

تالار گفتگوی Discourse
https://discourse.cmake.org

تالار گفتگوی Discourse میزبان بحث‌ها و پرسش‌ها پیرامون CMake است.

2000-2026 Kitware, Inc. and Contributors

August 31, 2026 4.4.3