CCMAKE(1) CMake CCMAKE(1)

ccmake - مرجع خط فرمان رابط کاربری مبتنی بر Curses برای CMake

ccmake [<options>] -B <path-to-build> [-S <path-to-source>]
ccmake [<options>] <path-to-source | path-to-existing-build>

فایل اجرایی ccmake رابط کاربری متنی مبتنی بر Curses برای CMake است. تنظیمات پیکربندی پروژه را می‌توان به صورت تعاملی از طریق این رابط مشخص کرد. هنگام اجرای برنامه، دستورالعمل‌های مختصری در پایین ترمینال ارائه می‌شود.

سامانه CMake یک تولیدکننده سیستم ساخت چندپلتفرمی است. پروژه‌ها فرایند ساخت خود را با فایل‌های لیست CMake مستقل از پلتفرم که در هر پوشه از درخت منبع با نام CMakeLists.txt قرار دارند، مشخص می‌کنند. کاربران با استفاده از CMake برای ابزار بومی پلتفرم خود یک سیستم ساخت تولید کرده و سپس پروژه را می‌سازند.

مسیر دایرکتوری ریشه پروژه CMake برای ساخت.
مسیر دایرکتوری که CMake به عنوان ریشه دایرکتوری ساخت استفاده خواهد کرد.

اگر دایرکتوری از قبل وجود نداشته باشد، CMake آن را ایجاد می‌کند.

پیش‌بارگذاری یک اسکریپت برای مقداردهی اولیه حافظه موقت (کش).

هنگامی که CMake برای نخستین بار در یک درخت ساخت خالی اجرا می‌شود، یک فایل CMakeCache.txt ایجاد کرده و آن را با تنظیمات قابل سفارشی‌سازی برای پروژه پر می‌کند. این گزینه می‌تواند برای مشخص کردن فایلی استفاده شود که مدخل‌های کش قبل از اولین بررسی فایل‌های لیست CMake پروژه از آن بارگذاری شوند. مدخل‌های بارگذاری‌شده بر مقادیر پیش‌فرض پروژه اولویت دارند. فایل داده‌شده باید یک اسکریپت CMake شامل دستورات set() <#command:set> باشد که از گزینه CACHE استفاده می‌کنند، نه یک فایل با قالب کش.

ارجاعات به CMAKE_SOURCE_DIR <#variable:CMAKE_SOURCE_DIR> و CMAKE_BINARY_DIR <#variable:CMAKE_BINARY_DIR> در داخل اسکریپت به درخت منبع و ساخت سطح بالا ارزیابی می‌شوند.

ایجاد یا به‌روزرسانی یک مدخل CACHE در CMake.

هنگامی که CMake برای نخستین بار در یک درخت ساخت خالی اجرا می‌شود، یک فایل CMakeCache.txt ایجاد کرده و آن را با تنظیمات قابل سفارشی‌سازی برای پروژه پر می‌کند. این گزینه می‌تواند برای مشخص کردن تنظیمی استفاده شود که بر مقدار پیش‌فرض پروژه اولویت دارد. این گزینه می‌تواند برای هر تعداد مدخل CACHE که لازم باشد تکرار شود.

اگر بخش :<type> داده شود، باید یکی از انواعی باشد که توسط مستندات دستور set() <#command:set> برای ساختار CACHE آن مشخص شده است. اگر بخش :<type> حذف شود، در صورتی که مدخل از قبل با نوع مشخصی وجود نداشته باشد، بدون نوع ایجاد خواهد شد. اگر دستوری در پروژه نوع را به PATH یا FILEPATH تنظیم کند، مقدار <value> به یک مسیر مطلق تبدیل خواهد شد.

این گزینه همچنین می‌تواند به صورت یک آرگومان منفرد داده شود: -D<var>:<type>=<value> یا -D<var>=<value>.

رشته راهنمای کش HELPSTRING <#prop_cache:HELPSTRING> به شرح زیر مقداردهی می‌شود:

  • اگر مدخل کش برای CMake شناخته‌شده باشد، رشته راهنمای آن به یک خط توضیح از متغیر تنظیم می‌شود.

    افزوده شده در نسخه 4.4.

  • در غیر این صورت، رشته راهنمای آن روی مقدار پیش‌فرض عمومی تنظیم می‌شود: No help, variable specified on the command line.

توجه به این نکته مهم است که ترتیب آرگومان‌های -C و -D اهمیت دارد. آن‌ها به ترتیبی که فهرست شده‌اند اعمال می‌شوند، به طوری که آخرین آرگومان بر آرگومان‌های قبلی اولویت دارد. به عنوان مثال، اگر -DCMAKE_BUILD_TYPE=Debug را مشخص کنید و سپس یک آرگومان -C با فایلی قرار دهید که دستور زیر را فراخوانی می‌کند:

set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)

آنگاه آرگومان -C اولویت خواهد داشت و CMAKE_BUILD_TYPE روی Release تنظیم می‌شود. با این حال، اگر آرگومان -D پس از آرگومان -C بیاید، مقدار آن روی Debug تنظیم خواهد شد.

اگر یک فراخوانی set(... CACHE ...) در فایل -C از FORCE استفاده نکند و یک آرگومان -D همان متغیر را تنظیم کند، به دلیل ماهیت فراخوانی‌های set(... CACHE ...) بدون FORCE، آرگومان -D بدون توجه به ترتیب اولویت خواهد داشت.

حذف مدخل‌های منطبق از CACHE در CMake.

این گزینه می‌تواند برای حذف یک یا چند متغیر از فایل CMakeCache.txt استفاده شود؛ الگوهای تطبیق با استفاده از * و ? پشتیبانی می‌شوند. این گزینه می‌تواند برای هر تعداد مدخل CACHE که لازم باشد تکرار شود.

با احتیاط استفاده کنید، ممکن است فایل CMakeCache.txt شما را غیرقابل استفاده کند.

مشخص کردن یک تولیدکننده سیستم ساخت (Generator).

سامانه CMake ممکن است در برخی پلتفرم‌ها از چندین سیستم ساخت بومی پشتیبانی کند. یک تولیدکننده مسئول تولید یک سیستم ساخت خاص است. نام‌های مجاز تولیدکننده‌ها در راهنمای cmake-generators(7) <#manual:cmake-generators(7)> مشخص شده است.

در صورت عدم تعیین، CMake متغیر محیطی CMAKE_GENERATOR <#envvar:CMAKE_GENERATOR> را بررسی می‌کند و در غیر این صورت به گزینه پیش‌فرض توکار بازمی‌گردد.

مشخصات مجموعه‌ابزار (Toolset) برای تولیدکننده، در صورت پشتیبانی.

برخی از تولیدکننده‌های CMake از مشخصات مجموعه‌ابزار پشتیبانی می‌کنند تا به سیستم ساخت بومی نحوه انتخاب کامپایلر را اعلام کنند. برای جزئیات به متغیر CMAKE_GENERATOR_TOOLSET <#variable:CMAKE_GENERATOR_TOOLSET> مراجعه کنید.

مشخص کردن نام پلتفرم در صورت پشتیبانی توسط تولیدکننده.

برخی تولیدکننده‌های CMake از تعیین نام پلتفرم برای سیستم ساخت بومی به منظور انتخاب کامپایلر یا SDK پشتیبانی می‌کنند. برای جزئیات به متغیر CMAKE_GENERATOR_PLATFORM <#variable:CMAKE_GENERATOR_PLATFORM> مراجعه کنید.

افزوده شده در نسخه 3.21.

مشخص کردن فایل زنجیره‌ابزار (toolchain) کامپایل متقابل (cross-compiling)، معادل با تنظیم متغیر CMAKE_TOOLCHAIN_FILE <#variable:CMAKE_TOOLCHAIN_FILE>. مسیرهای نسبی نسبت به دایرکتوری ساخت تفسیر می‌شوند، و در صورت پیدا نشدن، نسبت به دایرکتوری منبع سنجیده می‌شوند.

افزوده شده در نسخه 3.21.

مشخص کردن دایرکتوری نصب، مورد استفاده توسط متغیر CMAKE_INSTALL_PREFIX <#variable:CMAKE_INSTALL_PREFIX>. باید یک مسیر مطلق باشد.

افزوده شده در نسخه 4.0.

مشخص کردن نام فایل پروژه جایگزین.

این گزینه فایل سطح بالایی را که توسط CMake هنگام پیکربندی یک پروژه پردازش می‌شود، و همچنین فایل پردازش‌شده توسط add_subdirectory() <#command:add_subdirectory> را تعیین می‌کند.

به طور پیش‌فرض، این مقدار CMakeLists.txt است. در صورت تنظیم روی هر مقدار دیگر، هر زمان که فایل مشخص‌شده در زیردایرکتوری پروژه پیدا نشود، از CMakeLists.txt به عنوان جایگزین استفاده خواهد شد.

نکته:

این ویژگی برای استفاده موقت توسعه‌دهندگان در طول دوره گذار تدریجی در نظر گرفته شده است و برای انتشار محصول نهایی کاربرد ندارد. هر زمان که فایل پروژه چیزی غیر از CMakeLists.txt باشد، CMake همواره یک هشدار صادر می‌کند.
ارتقای دسته عیب‌یابی مشخص‌شده (و زیردسته‌های آن) به حداقل سطح شدت WARN. توجه داشته باشید که این گزینه بر پیام‌های عیب‌یابی که از قبل روی سطح شدت بالاتری تنظیم شده‌اند تاثیری ندارد.

برای فهرستی از مقادیر پذیرفته‌شده برای <category>، به راهنمای cmake-diagnostics(7) <#manual:cmake-diagnostics(7)> مراجعه کنید.

Disable (ignore) all diagnostics of the specified category, including any child categories.
Promote the specified diagnostic category (and any children) to at least SEND_ERROR severity. Note that this has no effect on diagnostics already set to a higher severity.
کاهش دسته عیب‌یابی مشخص‌شده (و تمام زیردسته‌ها) به حداکثر سطح شدت WARN. توجه داشته باشید که این گزینه بر پیام‌های عیب‌یابی که از قبل روی سطح شدت پایین‌تری تنظیم شده‌اند تاثیری ندارد.
منسوخ شده از نسخه 4.4.

مترادف‌های سازگاری برای -Wauthor / -Wno-author.

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

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

چاپ اطلاعات کاربرد و خروج.

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

چاپ راهنما برای یک کلیدواژه 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

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

2000-2026 Kitware, Inc. and Contributors

August 31, 2026 4.4.3