'\" t .\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "CMAKE" "1" "Aug 31, 2026" "4.4.3" "دستورات عمومی کاربر" .SH "نام (NAME)" cmake \- مرجع خط فرمان CMake .SH "خلاصه دستور (SYNOPSIS)" .INDENT 0.0 .INDENT 3.5 .sp .EX تولید یک سیستم ساخت پروژه cmake [] \-B [\-S ] cmake [] ساخت یک پروژه cmake \-\-build [] [\-\- ] نصب یک پروژه cmake \-\-install [] باز کردن یک پروژه cmake \-\-open اجرای یک اسکریپت cmake [\-D =]... \-P اجرای یک ابزار خط فرمان cmake \-E [] اجرای ابزار Find\-Package cmake \-\-find\-package [] اجرای یک پیش‌تنظیم گردش کار cmake \-\-workflow مشاهده راهنما cmake \-\-help[\-] .EE .UNINDENT .UNINDENT .SH "توضیحات (DESCRIPTION)" .sp فایل اجرایی \fBcmake\fP رابط خط فرمان ابزار چندسکویی تولید سیستم ساخت CMake است. بخش خلاصه دستور در بالا، عملیات مختلفی را که این ابزار می‌تواند انجام دهد، همان‌طور که در بخش‌های زیر شرح داده شده است، فهرست می‌کند. .sp برای ساخت یک پروژه نرم‌افزاری با CMake، ابتدا «تولید یک سیستم ساخت پروژه» را انجام دهید\&. در صورت تمایل می‌توانید از \fBcmake\fP برای ساخت یک پروژه، نصب یک پروژه یا صرفاً اجرای مستقیم ابزار ساخت متناظر (مانند \fBmake\fP) استفاده کنید. همچنین \fBcmake\fP می‌تواند برای مشاهده راهنما به کار رود\&. .sp سایر عملیات برای استفاده توسعه‌دهندگان نرم‌افزاری در نظر گرفته شده است که برای پشتیبانی از فرآیند ساخت خود، اسکریپت‌هایی به \fBCMake language\fP \%<#\:manual:cmake-language(7)> می‌نویسند. .sp برای رابط‌های گرافیکی کاربر که می‌توانند به جای \fBcmake\fP استفاده شوند، به \fBccmake\fP \%<#\:manual:ccmake(1)> و \fBcmake\-gui\fP \%<#\:manual:cmake-gui(1)>\& مراجعه کنید. برای رابط‌های خط فرمان مربوط به امکانات آزمایش و بسته‌بندی CMake، به \fBctest\fP \%<#\:manual:ctest(1)> و \fBcpack\fP \%<#\:manual:cpack(1)>\& مراجعه فرمایید. .sp برای اطلاعات بیشتر درباره کلیت CMake، همچنین پیوندهای انتهای این راهنما را ببینید. .SH "مقدمه‌ای بر سیستم‌های ساخت CMAKE (INTRODUCTION TO CMAKE BUILDSYSTEMS)" .sp یک سیستم ساخت (\fIbuildsystem\fP) نحوه ساخت فایل‌های اجرایی و کتابخانه‌های یک پروژه را از کد منبع آن با استفاده از یک ابزار ساخت (\fIbuild tool\fP) برای خودکارسازی فرآیند توصیف می‌کند. به عنوان مثال، یک سیستم ساخت ممکن است یک \fBMakefile\fP برای استفاده با ابزار خط فرمان \fBmake\fP یا یک فایل پروژه برای یک محیط توسعه یکپارچه (IDE) باشد. به منظور جلوگیری از نگهداری چندین سیستم ساخت از این دست، یک پروژه می‌تواند سیستم ساخت خود را به صورت انتزاعی با استفاده از فایل‌های نوشته‌شده به \fBCMake language\fP \%<#\:manual:cmake-language(7)>\& مشخص کند. از این فایل‌ها، CMake از طریق یک بخش پسین به نام تولیدکننده (\fIgenerator\fP)، یک سیستم ساخت ترجیحی را به صورت محلی برای هر کاربر تولید می‌کند\&. .sp برای تولید یک سیستم ساخت با CMake، موارد زیر باید انتخاب شوند: .INDENT 0.0 .TP .B درخت منبع (Source Tree) دایرکتوری سطح بالایی که حاوی فایل‌های منبع ارائه‌شده توسط پروژه است. پروژه سیستم ساخت خود را با استفاده از فایل‌هایی همان‌طور که در راهنمای \fBcmake\-language(7)\fP \%<#\:manual:cmake-language(7)> شرح داده شده است، با شروع از یک فایل سطح بالا به نام \fBCMakeLists.txt\fP\& مشخص می‌کند. این فایل‌ها هدف‌های ساخت و وابستگی‌های آن‌ها را همان‌طور که در راهنمای \fBcmake\-buildsystem(7)\fP \%<#\:manual:cmake-buildsystem(7)> توصیف شده است، تعیین می‌کنند. .TP .B درخت ساخت (Build Tree) دایرکتوری سطح بالایی که فایل‌های سیستم ساخت و مصنوعات خروجی ساخت (مانند فایل‌های اجرایی و کتابخانه‌ها) باید در آن ذخیره شوند. ابزار CMake یک فایل \fBCMakeCache.txt\fP ایجاد می‌کند تا این دایرکتوری را به عنوان یک درخت ساخت شناسایی کرده و اطلاعات ماندگار مانند گزینه‌های پیکربندی سیستم ساخت را ذخیره کند. .sp برای حفظ دست‌نخورده ماندن درخت منبع، با استفاده از یک درخت ساخت اختصاصی و مجزا، یک ساخت خارج از منبع (\fIout\-of\-source\fP) انجام دهید. ساخت درون منبع (\fIin\-source\fP) که در آن درخت ساخت در همان دایرکتوری درخت منبع قرار می‌گیرد نیز پشتیبانی می‌شود، اما توصیه نمی‌شود. .TP .B تولیدکننده (Generator) این گزینه نوع سیستم ساختی را که باید تولید شود انتخاب می‌کند. برای مستندات مربوط به همه تولیدکننده‌ها، به راهنمای \fBcmake\-generators(7)\fP \%<#\:manual:cmake-generators(7)> مراجعه کنید. برای مشاهده فهرستی از تولیدکننده‌های موجود به صورت محلی، دستور \fBcmake \-\-help\fP را اجرا کنید. در صورت تمایل، از گزینه \fB\-G\fP در زیر برای مشخص کردن یک تولیدکننده استفاده نمایید، یا صرفاً پیش‌فرضی را که CMake برای پلتفرم فعلی انتخاب می‌کند بپذیرید. .sp هنگام استفاده از یکی از تولیدکننده‌های ابزار ساخت خط فرمان (Command\-Line Build Tool Generators \%<#\:command-line-build-tool-generators>)، ابزار CMake انتظار دارد که محیط مورد نیاز زنجیره ابزار کامپایلر از قبل در پوسته پیکربندی شده باشد. هنگام استفاده از یکی از تولیدکننده‌های ابزار ساخت محیط توسعه یکپارچه (IDE Build Tool Generators \%<#\:ide-build-tool-generators>)، به محیط خاصی نیاز نیست. .UNINDENT .SH "تولید سیستم ساخت پروژه (GENERATE A PROJECT BUILDSYSTEM)" .sp دستور CMake را با یکی از امضاهای دستوری زیر برای تعیین درخت‌های منبع و ساخت و تولید یک سیستم ساخت اجرا کنید: .sp \fBcmake [] \-B [\-S ]\fP .INDENT 0.0 .INDENT 3.5 اضافه‌شده در نسخه 3.13. .sp از \fB\fP به عنوان درخت ساخت و از \fB\fP به عنوان درخت منبع استفاده می‌کند. مسیرهای مشخص‌شده می‌توانند مطلق یا نسبی نسبت به دایرکتوری کاری فعلی باشند. درخت منبع باید حاوی یک فایل \fBCMakeLists.txt\fP باشد. اگر درخت ساخت از قبل وجود نداشته باشد، به صورت خودکار ایجاد خواهد شد. برای مثال: .INDENT 0.0 .INDENT 3.5 .sp .EX $ cmake \-S src \-B build .EE .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \fBcmake [] \fP از دایرکتوری کاری فعلی به عنوان درخت ساخت و از \fB\fP به عنوان درخت منبع استفاده می‌کند. مسیر مشخص‌شده می‌تواند مطلق یا نسبی نسبت به دایرکتوری کاری فعلی باشد. درخت منبع باید حاوی یک فایل \fBCMakeLists.txt\fP باشد و «نباید» حاوی فایل \fBCMakeCache.txt\fP باشد، زیرا دومی نشان‌دهنده یک درخت ساخت از قبل موجود است. برای مثال: .INDENT 7.0 .INDENT 3.5 .sp .EX $ mkdir build ; cd build $ cmake ../src .EE .UNINDENT .UNINDENT .TP .B \fBcmake [] \fP از \fB\fP به عنوان درخت ساخت استفاده می‌کند و مسیر درخت منبع را از فایل \fBCMakeCache.txt\fP آن بارگذاری می‌نماید که باید از قبل در یک اجرای قبلی CMake ایجاد شده باشد. مسیر مشخص‌شده می‌تواند مطلق یا نسبی نسبت به دایرکتوری کاری فعلی باشد. برای مثال: .INDENT 7.0 .INDENT 3.5 .sp .EX $ cd build $ cmake . .EE .UNINDENT .UNINDENT .UNINDENT .sp در تمام حالات، \fB\fP می‌تواند صفر یا چند مورد از گزینه‌های زیر باشد. .sp شیوه‌های فوق برای تعیین درخت‌های منبع و ساخت را می‌توان با یکدیگر ترکیب کرد. مسیرهای مشخص‌شده با \fB\-S\fP یا \fB\-B\fP همواره به ترتیب به عنوان درخت‌های منبع یا ساخت دسته‌بندی می‌شوند. مسیرهایی که با آرگومان‌های ساده مشخص می‌شوند بر اساس محتوای آن‌ها و نوع مسیرهایی که پیش‌تر ارائه شده‌اند دسته‌بندی می‌گردند. اگر تنها یک نوع مسیر داده شود، دایرکتوری کاری فعلی (cwd) برای دیگری استفاده می‌شود. برای مثال: .TS box center; l|l|l. T{ خط فرمان T} T{ دایرکتوری منبع T} T{ دایرکتوری ساخت T} _ T{ \fBcmake \-B build\fP T} T{ \fIcwd\fP T} T{ \fBbuild\fP T} _ T{ \fBcmake \-B build src\fP T} T{ \fBsrc\fP T} T{ \fBbuild\fP T} _ T{ \fBcmake \-B build \-S src\fP T} T{ \fBsrc\fP T} T{ \fBbuild\fP T} _ T{ \fBcmake src\fP T} T{ \fBsrc\fP T} T{ \fIcwd\fP T} _ T{ \fBcmake build\fP (موجود) T} T{ \fIloaded\fP T} T{ \fBbuild\fP T} _ T{ \fBcmake \-S src\fP T} T{ \fBsrc\fP T} T{ \fIcwd\fP T} _ T{ \fBcmake \-S src build\fP T} T{ \fBsrc\fP T} T{ \fBbuild\fP T} _ T{ \fBcmake \-S src \-B build\fP T} T{ \fBsrc\fP T} T{ \fBbuild\fP T} .TE .sp تغییریافته در نسخه 3.23: ابزار CMake هنگامی که چندین مسیر منبع مشخص شوند، هشدار می‌دهد. این رفتار هرگز به طور رسمی مستندسازی یا پشتیبانی نشده است، اما نسخه‌های قدیمی‌تر به طور تصادفی چندین مسیر منبع را می‌پذیرفتند و از آخرین مسیر مشخص‌شده استفاده می‌کردند. از ارسال چندین آرگومان مسیر منبع خودداری کنید. .sp پس از تولید یک سیستم ساخت، کاربر می‌تواند از ابزار ساخت بومی متناظر برای ساخت پروژه استفاده کند. به عنوان مثال، پس از استفاده از تولیدکننده \fBUnix Makefiles\fP \%<#\:generator:Unix Makefiles> می‌توان \fBmake\fP را مستقیماً اجرا نمود: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .INDENT 3.5 .sp .EX $ make $ make install .EE .UNINDENT .UNINDENT .UNINDENT .UNINDENT .sp به عنوان روش جایگزین، می‌توان از \fBcmake\fP برای «ساخت یک پروژه» با انتخاب و فراخوانی خودکار ابزار ساخت بومی مناسب استفاده کرد. .SS "گزینه‌ها (Options)" .INDENT 0.0 .TP .B \-S مسیر دایرکتوری ریشه پروژه CMake برای ساخت. .UNINDENT .INDENT 0.0 .TP .B \-B مسیر دایرکتوری‌ای که CMake به عنوان ریشه دایرکتوری ساخت استفاده خواهد کرد. .sp اگر دایرکتوری از قبل وجود نداشته باشد، CMake آن را ایجاد خواهد کرد. .UNINDENT .INDENT 0.0 .TP .B \-C پیش‌بارگذاری یک اسکریپت برای مقداردهی حافظه پنهان (کش). .sp هنگامی که CMake برای نخستین بار در یک درخت ساخت خالی اجرا می‌شود، یک فایل \fBCMakeCache.txt\fP ایجاد کرده و آن را با تنظیمات قابل‌سفارشی‌سازی برای پروژه پر می‌کند. از این گزینه می‌توان برای تعیین فایلی استفاده کرد که ورودی‌های کش پیش از نخستین پیمایش فایل‌های CMake پروژه (listfiles)، از آن بارگذاری شوند. ورودی‌های بارگذاری‌شده بر مقادیر پیش‌فرض پروژه اولویت دارند. فایل ارائه‌شده باید یک اسکریپت CMake شامل دستورهای \fBset()\fP \%<#\:command:set> باشد که از گزینه \fBCACHE\fP استفاده می‌کنند، نه یک فایل با قالب کش (cache\-format). .sp ارجاعات به \fBCMAKE_SOURCE_DIR\fP \%<#\:variable:CMAKE_SOURCE_DIR> و \fBCMAKE_BINARY_DIR\fP \%<#\:variable:CMAKE_BINARY_DIR> در داخل اسکریپت به درخت منبع و ساخت در بالاترین سطح (top\-level) ارزیابی می‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-D :=, \-D = ایجاد یا به‌روزرسانی یک ورودی \fBCACHE\fP در CMake. .sp هنگامی که CMake برای نخستین بار در یک درخت ساخت خالی اجرا می‌شود، یک فایل \fBCMakeCache.txt\fP ایجاد کرده و آن را با تنظیمات قابل‌سفارشی‌سازی برای پروژه مقداردهی می‌کند. از این گزینه می‌توان برای تعیین تنظیمی استفاده کرد که نسبت به مقدار پیش‌فرض پروژه اولویت دارد. این گزینه را می‌توان برای هر تعداد ورودی \fBCACHE\fP دلخواه تکرار کرد. .sp اگر بخش \fB:\fP مشخص شود، باید یکی از انواعی باشد که در مستندات دستور \fBset()\fP \%<#\:command:set> برای امضای \fBCACHE\fP آن قید شده است. اگر بخش \fB:\fP حذف شود، در صورتی که ورودی از قبل با نوع مشخصی وجود نداشته باشد، بدون نوع ایجاد خواهد شد. اگر دستوری در پروژه نوع آن را به \fBPATH\fP یا \fBFILEPATH\fP تنظیم کند، مقدار \fB\fP به یک مسیر مطلق تبدیل خواهد شد. .sp این گزینه همچنین می‌تواند به عنوان یک آرگومان واحد ارائه شود: \fB\-D:=\fP یا \fB\-D=\fP\&. .sp ویژگی \fBHELPSTRING\fP \%<#\:prop_cache:HELPSTRING> حافظه پنهان به صورت زیر مقداردهی می‌شود: .INDENT 7.0 .IP \(bu 2 اگر ورودی حافظه پنهان برای CMake شناخته‌شده باشد، رشته راهنمای آن روی یک توضیح تک‌خطی از متغیر تنظیم می‌شود. .sp افزوده‌شده در نسخه 4.4. .IP \(bu 2 در غیر این صورت، رشته راهنمای آن روی مقدار پیش‌فرض عمومی زیر تنظیم می‌شود: \fBNo help, variable specified on the command line.\fP .UNINDENT .sp توجه به این نکته مهم است که ترتیب آرگومان‌های \fB\-C\fP و \fB\-D\fP دارای اهمیت است. آن‌ها به ترتیب درج‌شدن اعمال خواهند شد و آخرین آرگومان نسبت به موارد قبلی اولویت دارد. برای نمونه، اگر \fB\-DCMAKE_BUILD_TYPE=Debug\fP را مشخص کنید و به دنبال آن یک آرگومان \fB\-C\fP با فایلی بیاید که دستور زیر را فراخوانی می‌کند: .INDENT 7.0 .INDENT 3.5 .sp .EX set(CMAKE_BUILD_TYPE \(dqRelease\(dq CACHE STRING \(dq\(dq FORCE) .EE .UNINDENT .UNINDENT .sp آنگاه آرگومان \fB\-C\fP اولویت داشته و \fBCMAKE_BUILD_TYPE\fP روی \fBRelease\fP تنظیم خواهد شد\&. اما اگر آرگومان \fB\-D\fP بعد از آرگومان \fB\-C\fP بیاید، روی \fBDebug\fP تنظیم خواهد شد\&. .sp اگر یک فراخوانی \fBset(... CACHE ...)\fP در فایل \fB\-C\fP از \fBFORCE\fP استفاده نکند و یک آرگومان \fB\-D\fP همان متغیر را تنظیم نماید، آرگومان \fB\-D\fP به دلیل ماهیت فراخوانی‌های بدون \fBFORCE\fP دستور \fBset(... CACHE ...)\fP بدون در نظر گرفتن ترتیب، اولویت خواهد داشت. .UNINDENT .INDENT 0.0 .TP .B \-U حذف ورودی‌های منطبق از \fBCACHE\fP در CMake\&. .sp از این گزینه می‌توان برای حذف یک یا چند متغیر از فایل \fBCMakeCache.txt\fP استفاده کرد؛ عبارت‌های انطباق الگو (globbing) با استفاده از \fB*\fP و \fB?\fP پشتیبانی می‌شوند. این گزینه را می‌توان برای هر تعداد ورودی \fBCACHE\fP دلخواه تکرار نمود. .sp با احتیاط استفاده کنید؛ ممکن است فایل \fBCMakeCache.txt\fP شما را از کار بیندازد. .UNINDENT .INDENT 0.0 .TP .B \-G تعیین یک تولیدکننده سیستم ساخت (generator). .sp سامانه CMake ممکن است در پلتفرم‌های خاص از چندین سیستم ساخت بومی پشتیبانی کند. یک تولیدکننده مسئول تولید یک سیستم ساخت مشخص است. نام‌های مجاز تولیدکننده در راهنمای \fBcmake\-generators(7)\fP \%<#\:manual:cmake-generators(7)> قید شده‌اند. .sp در صورت عدم تعیین، CMake متغیر محیطی \fBCMAKE_GENERATOR\fP \%<#\:envvar:CMAKE_GENERATOR> را بررسی می‌کند و در غیر این صورت به انتخاب پیش‌فرض داخلی بازمی‌گردد. .UNINDENT .INDENT 0.0 .TP .B \-T مشخصات جعبه‌ابزار/مجموعه ابزار (toolset) برای تولیدکننده، در صورت پشتیبانی. .sp برخی تولیدکننده‌های CMake از مشخصات مجموعه ابزار پشتیبانی می‌کنند تا به سیستم ساخت بومی نحوه انتخاب کامپایلر را اعلام کنند. برای جزئیات به متغیر \fBCMAKE_GENERATOR_TOOLSET\fP \%<#\:variable:CMAKE_GENERATOR_TOOLSET> مراجعه فرمایید. .UNINDENT .INDENT 0.0 .TP .B \-A تعیین نام پلتفرم در صورت پشتیبانی توسط تولیدکننده. .sp برخی تولیدکننده‌های CMake از ارائه نام پلتفرم به سیستم ساخت بومی جهت انتخاب کامپایلر یا SDK پشتیبانی می‌کنند. برای جزئیات به متغیر \fBCMAKE_GENERATOR_PLATFORM\fP \%<#\:variable:CMAKE_GENERATOR_PLATFORM> مراجعه فرمایید. .UNINDENT .INDENT 0.0 .TP .B \-\-toolchain افزوده‌شده در نسخه 3.21. .sp تعیین فایل زنجیره ابزار (toolchain) برای کامپایل چندسکویی (cross\-compiling)، معادل با تنظیم متغیر \fBCMAKE_TOOLCHAIN_FILE\fP \%<#\:variable:CMAKE_TOOLCHAIN_FILE>\&. مسیرهای نسبی نسبت به دایرکتوری ساخت تفسیر می‌شوند، و در صورت عدم وجود، نسبت به دایرکتوری منبع سنجیده خواهند شد. .UNINDENT .INDENT 0.0 .TP .B \-\-install\-prefix افزوده‌شده در نسخه 3.21. .sp تعیین دایرکتوری نصب که توسط متغیر \fBCMAKE_INSTALL_PREFIX\fP \%<#\:variable:CMAKE_INSTALL_PREFIX> استفاده می‌شود. باید یک مسیر مطلق باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-project\-file افزوده‌شده در نسخه 4.0. .sp تعیین یک نام جایگزین برای فایل پروژه. .sp این گزینه فایل سطح بالایی را که توسط CMake هنگام پیکربندی یک پروژه پردازش می‌شود، و همچنین فایلی را که توسط \fBadd_subdirectory()\fP \%<#\:command:add_subdirectory> پردازش می‌شود مشخص می‌کند\&. .sp به طور پیش‌فرض، این مقدار \fBCMakeLists.txt\fP است\&. در صورت تنظیم روی هر نام دیگری، هر زمان که فایل مشخص‌شده در زیردایرکتوری یک پروژه یافت نشود، از \fBCMakeLists.txt\fP به عنوان گزینه جایگزین (fallback) استفاده خواهد شد. .sp \fBنکته:\fP .INDENT 7.0 .INDENT 3.5 این ویژگی برای استفاده موقت توسعه‌دهندگان در طول یک گذار تدریجی طراحی شده است و نه برای انتشار یک محصول نهایی. هر زمان که فایل پروژه چیزی غیر از \fBCMakeLists.txt\fP باشد، CMake همواره یک هشدار صادر خواهد کرد\&. .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-W ارتقای دسته‌بندی تشخیصی مشخص‌شده (و تمام زیرمجموعه‌های آن) به حداقل سطح شدت \fBWARN\fP\&. توجه داشته باشید که این گزینه تاثیری بر تشخیص‌هایی که از قبل روی سطح شدت بالاتری تنظیم شده‌اند ندارد. .sp برای مشاهده فهرستی از مقادیر مجاز برای \fB\fP به راهنمای \fBcmake\-diagnostics(7)\fP \%<#\:manual:cmake-diagnostics(7)> مراجعه نمایید\&. .UNINDENT .INDENT 0.0 .TP .B \-Wno\- غیرفعال‌سازی (نادیده گرفتن) تمام تشخیص‌های دسته‌بندی مشخص‌شده، از جمله تمامی دسته‌بندی‌های فرزند (زیرمجموعه). .UNINDENT .INDENT 0.0 .TP .B \-Werror= ارتقای دسته‌بندی تشخیصی مشخص‌شده (و تمام زیرمجموعه‌های آن) به حداقل سطح شدت \fBSEND_ERROR\fP\&. توجه داشته باشید که این گزینه تاثیری بر تشخیص‌هایی که از قبل روی سطح شدت بالاتری تنظیم شده‌اند ندارد. .UNINDENT .INDENT 0.0 .TP .B \-Wno\-error= تنزل دسته‌بندی تشخیصی مشخص‌شده (و تمام زیرمجموعه‌های آن) به حداکثر سطح شدت \fBWARN\fP\&. توجه داشته باشید که این گزینه تاثیری بر تشخیص‌هایی که از قبل روی سطح شدت پایین‌تری تنظیم شده‌اند ندارد. .UNINDENT .INDENT 0.0 .TP .B \-Wdev, \-Wno\-dev منسوخ‌شده از نسخه 4.4. .sp مترادف‌های سازگاری برای گزینه‌های \fB\-Wauthor\fP / \fB\-Wno\-author\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-fresh افزوده‌شده در نسخه 3.24. .sp انجام یک پیکربندی تازه روی درخت ساخت. این گزینه هرگونه فایل \fBCMakeCache.txt\fP موجود و دایرکتوری \fBCMakeFiles/\fP مرتبط را حذف کرده و آن‌ها را از ابتدا دوباره می‌سازد. .sp تغییریافته در نسخه 3.30: برای وابستگی‌هایی که پیش‌تر توسط \fBFetchContent\fP \%<#\:module:FetchContent> با تنظیم \fBNEW\fP برای خط‌مشی \fBCMP0168\fP \%<#\:policy:CMP0168> مقداردهی شده بودند، فایل‌های نشان‌زمانی (stamp) و اسکریپت‌های اجرای قبلی آن‌ها حذف خواهند شد. بنابراین مراحل دانلود، به‌روزرسانی و اعمال وصله مجبور به اجرای مجدد خواهند بود. .UNINDENT .INDENT 0.0 .TP .B \-L[A][H] فهرست کردن متغیرهای غیرپیشرفته ذخیره‌شده در کش (حافظه پنهان). .sp فهرست کردن متغیرهای \fBCACHE\fP موجب اجرای CMake شده و تمام متغیرهایی از \fBCACHE\fP در CMake را که به صورت \fBINTERNAL\fP یا \fBADVANCED\fP \%<#\:prop_cache:ADVANCED> علامت‌گذاری نشده‌اند فهرست می‌کند\&. این امر در عمل تنظیمات جاری CMake را نمایش می‌دهد، که سپس می‌توان آن‌ها را با گزینه \fB\-D\fP تغییر داد. تغییر برخی از این متغیرها ممکن است به ایجاد متغیرهای بیشتری منجر شود. اگر \fBA\fP مشخص شود، متغیرهای پیشرفته را نیز نمایش خواهد داد. اگر \fBH\fP مشخص شود، متن راهنما را نیز برای هر متغیر نمایش خواهد داد. .UNINDENT .INDENT 0.0 .TP .B \-LR[A][H] افزوده‌شده در نسخه 3.31. .sp نمایش متغیرهای غیرپیشرفته مشخص ذخیره‌شده در کش. .sp نمایش متغیرهایی از \fBCACHE\fP در CMake که نه \fBINTERNAL\fP و نه \fBADVANCED\fP \%<#\:prop_cache:ADVANCED> هستند و با عبارت منظم (regex) داده‌شده تطابق دارند. اگر \fBA\fP مشخص شود، متغیرهای پیشرفته را نیز نمایش خواهد داد. اگر \fBH\fP مشخص شود، متن راهنما را نیز برای هر متغیر نمایش خواهد داد. .UNINDENT .INDENT 0.0 .TP .B \-N تنها حالت مشاهده (فقط‌خواندنی). .sp فقط حافظه پنهان (کش) را بارگذاری می‌کند؛ مراحل پیکربندی (configure) و تولید (generate) در عمل اجرا نمی‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-\-graphviz= تولید گراف‌های Graphviz \% از وابستگی‌ها .sp این گزینه یک فایل ورودی graphviz تولید می‌کند که شامل تمام وابستگی‌های کتابخانه‌ای و اجرایی پروژه است و وابستگی‌های بین هدف‌ها (targets) در یک پروژه و همچنین کتابخانه‌های خارجی لینک‌شده را نمایش می‌دهد. .sp هنگام اجرای CMake با گزینه \fB\-\-graphviz=foo.dot\fP، خروجی‌های زیر تولید می‌شوند: .INDENT 7.0 .IP \(bu 2 یک فایل \fBfoo.dot\fP، که تمام وابستگی‌های درون پروژه را نشان می‌دهد .IP \(bu 2 یک فایل \fBfoo.dot.\fP برای هر هدف، که نشان می‌دهد به چه هدف‌های دیگری وابسته است .IP \(bu 2 یک فایل \fBfoo.dot..dependers\fP برای هر هدف، که نشان می‌دهد چه هدف‌های دیگری به آن وابسته هستند .UNINDENT .sp این فایل‌های \fB.dot\fP را می‌توان با استفاده از دستور \fIdot\fP از بسته Graphviz به تصویر تبدیل کرد: .INDENT 7.0 .INDENT 3.5 .sp .EX dot \-Tpng \-o foo.png foo.dot .EE .UNINDENT .UNINDENT .sp اضافه‌شده در نسخه 3.10: انواع مختلف وابستگی شامل \fBPUBLIC\fP، \fBINTERFACE\fP و \fBPRIVATE\fP به‌صورت یال‌های ممتد (solid)، خط‌چین (dashed) و نقطه‌چین (dotted) نمایش داده می‌شوند. .sp متغیرهای اختصاصی پشتیبانی از Graphviz .sp گراف‌های حاصل ممکن است بسیار بزرگ باشند. ظاهر و محتوای گراف‌های تولیدشده را می‌توان با استفاده از فایل \fBCMakeGraphVizOptions.cmake\fP کنترل کرد. این فایل ابتدا در \fBCMAKE_BINARY_DIR\fP \%<#\:variable:CMAKE_BINARY_DIR> و سپس در \fBCMAKE_SOURCE_DIR\fP \%<#\:variable:CMAKE_SOURCE_DIR>\& جستجو می‌شود. در صورت پیدا شدن، متغیرهای تنظیم‌شده در آن برای سفارشی‌سازی گزینه‌های فایل‌های Graphviz تولیدشده به کار می‌روند. .INDENT 7.0 .TP .B GRAPHVIZ_GRAPH_NAME نام گراف. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: مقدار \fBCMAKE_PROJECT_NAME\fP \%<#\:variable:CMAKE_PROJECT_NAME> .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_GRAPH_HEADER هدر نوشته‌شده در بالای فایل‌های Graphviz. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: \(dqnode [ fontsize = \(dq12\(dq ];\(dq .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_NODE_PREFIX پیشوند هر گره (node) در فایل‌های Graphviz. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: \(dqnode\(dq .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_EXECUTABLES تنظیم روی FALSE برای حذف فایل‌های اجرایی از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_STATIC_LIBS تنظیم روی FALSE برای حذف کتابخانه‌های ایستا (static) از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_SHARED_LIBS تنظیم روی FALSE برای حذف کتابخانه‌های اشتراکی (shared) از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_MODULE_LIBS تنظیم روی FALSE برای حذف کتابخانه‌های ماژول (module) از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_INTERFACE_LIBS تنظیم روی FALSE برای حذف کتابخانه‌های رابط (interface) از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_OBJECT_LIBS تنظیم روی FALSE برای حذف کتابخانه‌های شیء (object) از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_UNKNOWN_LIBS تنظیم روی FALSE برای حذف کتابخانه‌های ناشناخته (unknown) از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_EXTERNAL_LIBS تنظیم روی FALSE برای حذف کتابخانه‌های خارجی از گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_CUSTOM_TARGETS تنظیم روی TRUE برای گنجاندن هدف‌های سفارشی (custom targets) در گراف‌های تولیدشده. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: FALSE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_IGNORE_TARGETS فهرستی از عبارات باقاعده برای نام هدف‌هایی که باید از گراف‌های تولیدشده کنار گذاشته شوند. .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: خالی .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_GENERATE_PER_TARGET تنظیم روی FALSE برای عدم تولید گراف‌های مجزا به‌ازای هر هدف (\fBfoo.dot.\fP). .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B GRAPHVIZ_GENERATE_DEPENDERS تنظیم روی FALSE برای عدم تولید گراف‌های وابسته‌دار (\fBfoo.dot..dependers\fP). .INDENT 7.0 .IP \(bu 2 اجباری: خیر .IP \(bu 2 پیش‌فرض: TRUE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-system\-information [file] تخلیه اطلاعات مربوط به این سیستم. .sp مجموعه وسیعی از اطلاعات سیستم فعلی را استخراج و ارائه می‌کند. اگر از بالاترین سطح درخت باینری یک پروژه CMake اجرا شود، اطلاعات بیشتری نظیر حافظه موقت (cache)، فایل‌های گزارش (log) و غیره را نیز تخلیه می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-print\-config\-dir اضافه‌شده در نسخه 3.31. .sp چاپ دایرکتوری پیکربندی CMake برای پرس‌وجوهای FileAPI در سطح کاربر. .sp برای جزئیات بیشتر به \fBCMAKE_CONFIG_DIR\fP \%<#\:envvar:CMAKE_CONFIG_DIR> مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-log\-level= اضافه‌شده در نسخه 3.16. .sp تنظیم سطح لاگ \fB\fP\&. .sp دستور \fBmessage()\fP \%<#\:command:message> تنها پیام‌های مربوط به سطح لاگ مشخص‌شده یا بالاتر را چاپ می‌کند. سطوح معتبر لاگ عبارتند از: \fBERROR\fP، \fBWARNING\fP، \fBNOTICE\fP، \fBSTATUS\fP (پیش‌فرض)، \fBVERBOSE\fP، \fBDEBUG\fP، یا \fBTRACE\fP\&. .sp برای پایدار ماندن سطح لاگ بین دفعات اجرای CMake، متغیر \fBCMAKE_MESSAGE_LOG_LEVEL\fP \%<#\:variable:CMAKE_MESSAGE_LOG_LEVEL> را به عنوان یک متغیر کش (cache variable) تنظیم کنید. در صورت ارائه هم‌زمان گزینه خط فرمان و متغیر، گزینه خط فرمان اولویت دارد. .sp به دلایل سازگاری با نسخه‌های پیشین، \fB\-\-loglevel\fP نیز به عنوان مترادفی برای این گزینه پذیرفته می‌شود. .sp اضافه‌شده در نسخه 3.25: برای روشی جهت استعلام سطح فعلی ثبت لاگ پیام‌ها، دستور \fBcmake_language(GET_MESSAGE_LOG_LEVEL)\fP \%<#\:get-message-log-level> را ببینید. .UNINDENT .INDENT 0.0 .TP .B \-\-log\-context فعال‌سازی نمایش بافتار (context) پیوست‌شده به هر پیام در خروجی دستور \fBmessage()\fP \%<#\:command:message>\&. .sp این گزینه نمایش بافتار را فقط برای اجرای فعلی CMake فعال می‌کند. برای پایدار نگه‌داشتن نمایش بافتار در تمام اجراهای بعدی CMake، به جای آن متغیر \fBCMAKE_MESSAGE_CONTEXT_SHOW\fP \%<#\:variable:CMAKE_MESSAGE_CONTEXT_SHOW> را به عنوان یک متغیر کش تنظیم کنید. در صورت ارائه این گزینه خط فرمان، مقدار متغیر \fBCMAKE_MESSAGE_CONTEXT_SHOW\fP \%<#\:variable:CMAKE_MESSAGE_CONTEXT_SHOW> نادیده گرفته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-sarif\-output= اضافه‌شده در نسخه 4.0. .sp فعال‌سازی ثبت پیام‌های تشخیصی (diagnostic) تولیدشده توسط CMake در قالب SARIF. .sp پیام‌های تشخیصی را در یک فایل SARIF در مسیر مشخص‌شده می‌نویسد. همچنین پروژه‌ها می‌توانند با تنظیم \fBCMAKE_EXPORT_SARIF\fP \%<#\:variable:CMAKE_EXPORT_SARIF> روی \fBON\fP، این قابلیت را برای یک درخت ساخت فعال کنند. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-trycompile عدم حذف فایل‌ها و دایرکتوری‌های ایجادشده برای فراخوانی‌های \fBtry_compile()\fP \%<#\:command:try_compile> / \fBtry_run()\fP \%<#\:command:try_run>\&. این گزینه هنگام اشکال‌زدایی بررسی‌های ناموفق مفید است. .sp توجه داشته باشید که برخی از کاربردهای \fBtry_compile()\fP \%<#\:command:try_compile> ممکن است از درخت ساخت مشترک استفاده کنند، که در صورت اجرای بیش از یک \fBtry_compile()\fP \%<#\:command:try_compile> توسط پروژه، سودمندی این گزینه را محدود می‌سازد. به عنوان مثال، چنین کاربردهایی ممکن است نتایج را تغییر دهند زیرا خروجی‌ها و آثار برجامانده از یک try\-compile قبلی ممکن است باعث شود آزمایشی دیگر به‌اشتباه قبول یا رد شود. بهتر است از این گزینه صرفاً در زمان اشکال‌زدایی استفاده شود. .sp (با توجه به موارد فوق، دستور \fBtry_run()\fP \%<#\:command:try_run> عملاً نوعی \fBtry_compile()\fP \%<#\:command:try_compile> محسوب می‌شود. هرگونه ترکیب این دو مشمول مشکلات احتمالی شرح‌داده‌شده خواهد بود.) .sp اضافه‌شده در نسخه 3.25: هنگامی که این گزینه فعال باشد، در هر بررسی try\-compile یک پیام لاگ چاپ می‌شود که دایرکتوری محل اجرای بررسی را گزارش می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-output قرار دادن cmake در حالت اشکال‌زدایی (debug mode). .sp چاپ اطلاعات تکمیلی در طول اجرای cmake مانند ردگیری پشته (stack traces) با فراخوانی‌های \fBmessage(SEND_ERROR)\fP \%<#\:command:message>\&. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-find اضافه‌شده در نسخه 3.17. .sp قرار دادن دستورات find در cmake در حالت اشکال‌زدایی. .sp چاپ اطلاعات تکمیلی فراخوانی‌های find در طول اجرای cmake روی خروجی استاندارد خطا. خروجی برای خوانده شدن توسط انسان طراحی شده است و نه برای پردازش خودکار (parsing). همچنین برای اشکال‌زدایی بخش محدودتری از پروژه، به متغیر \fBCMAKE_FIND_DEBUG_MODE\fP \%<#\:variable:CMAKE_FIND_DEBUG_MODE> مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-find\-pkg=[,...] اضافه‌شده در نسخه 3.23. .sp قرار دادن دستورات find در cmake در حالت اشکال‌زدایی در هنگام اجرا تحت فراخوانی‌های \fBfind_package()\fP \%<#\:command:find_package>، که در آن \fB\fP مدخلی در فهرست ارائه‌شده از نام بسته‌های حساس به بزرگی و کوچکی حروف (جداشده با کاما) است. .sp مشابه \fB\-\-debug\-find\fP، اما دامنه اشکال‌زدایی را به بسته‌های مشخص‌شده محدود می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-find\-var=[,...] اضافه‌شده در نسخه 3.23. .sp قرار دادن دستورات find در cmake در حالت اشکال‌زدایی هنگام فراخوانی با \fB\fP به عنوان متغیر نتیجه، که در آن \fB\fP مدخلی در فهرست ارائه‌شده (جداشده با کاما) است. .sp مشابه \fB\-\-debug\-find\fP، اما دامنه اشکال‌زدایی را به نام‌های متغیر مشخص‌شده محدود می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-trace قرار دادن cmake در حالت ردگیری (trace). .sp چاپ ردگیری از تمام فراخوانی‌های انجام‌شده و مبدأ آن‌ها. .UNINDENT .INDENT 0.0 .TP .B \-\-trace\-expand قرار دادن cmake در حالت ردگیری (trace). .sp مشابه \fB\-\-trace\fP، اما با متغیرهای بسط‌یافته (مقداردهی‌شده). .UNINDENT .INDENT 0.0 .TP .B \-\-trace\-format= اضافه‌شده در نسخه 3.17. .sp قرار دادن cmake در حالت ردگیری و تنظیم قالب خروجی ردگیری. .sp مقدار \fB\fP می‌تواند یکی از مقادیر زیر باشد: .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fBhuman\fP چاپ هر خط ردگیری در قالبی خوانا برای انسان (human\-readable). این قالب پیش‌فرض است. .TP .B \fBjson\-v1\fP چاپ هر خط به عنوان یک سند JSON مجزا. هر سند با یک خط جدید (\fB\en\fP) جدا می‌شود. تضمین می‌شود که هیچ نویسه خط جدیدی در درون یک سند JSON وجود نخواهد داشت. .sp قالب ردگیری JSON .INDENT 7.0 .INDENT 3.5 .sp .EX { \(dqfile\(dq: \(dq/full/path/to/the/CMake/file.txt\(dq, \(dqline\(dq: 0, \(dqcmd\(dq: \(dqadd_executable\(dq, \(dqargs\(dq: [\(dqfoo\(dq, \(dqbar\(dq], \(dqtime\(dq: 1579512535.9687231, \(dqframe\(dq: 2, \(dqglobal_frame\(dq: 4 } .EE .UNINDENT .UNINDENT .sp عضوها عبارتند از: .INDENT 7.0 .TP .B \fBfile\fP مسیر کامل به فایل منبع CMake که تابع در آن فراخوانی شده است. .TP .B \fBline\fP شماره خط در \fBfile\fP که فراخوانی تابع از آن آغاز می‌شود. .TP .B \fBline_end\fP اگر فراخوانی تابع چندین خط را در بر بگیرد، این فیلد برابر با خطی تنظیم می‌شود که فراخوانی تابع در آن پایان می‌یابد. اگر فراخوانی تابع تنها شامل یک خط باشد، این فیلد تنظیم نخواهد شد. این فیلد در نسخه فرعی ۲ از قالب \fBjson\-v1\fP اضافه شد. .TP .B \fBdefer\fP عضو اختیاری که در صورت به تعویق افتادن فراخوانی تابع توسط \fBcmake_language(DEFER)\fP \%<#\:defer>\& وجود دارد. در صورت وجود، مقدار آن یک رشته شامل شناسه فراخوانی به تعویق افتاده \fB\fP است\&. .TP .B \fBcmd\fP نام تابعی که فراخوانی شده است. .TP .B \fBargs\fP یک فهرست رشته‌ای از تمام پارامترهای تابع. .TP .B \fBtime\fP برچسب زمانی (ثانیه‌های سپری‌شده از epoch) برای فراخوانی تابع. .TP .B \fBframe\fP عمق فریم پشته (stack frame) برای تابعی که فراخوانی شده، در بستر فایل \fBCMakeLists.txt\fP که در حال حاضر در حال پردازش است. .TP .B \fBglobal_frame\fP عمق فریم پشته برای تابعی که فراخوانی شده، که به‌صورت سراسری در تمام فایل‌های \fBCMakeLists.txt\fP درگیر در فرآیند ردگیری دنبال می‌شود. این فیلد در نسخه فرعی ۲ از قالب \fBjson\-v1\fP اضافه شد. .UNINDENT .sp علاوه بر این، نخستین سند JSON ارائه‌شده در خروجی شامل کلید \fBversion\fP برای نسخه‌های اصلی و فرعی فعلی است: .sp قالب نسخه JSON .INDENT 7.0 .INDENT 3.5 .sp .EX { \(dqversion\(dq: { \(dqmajor\(dq: 1, \(dqminor\(dq: 2 } } .EE .UNINDENT .UNINDENT .sp عضوها عبارتند از: .INDENT 7.0 .TP .B \fBversion\fP نشان‌دهنده نسخه قالب JSON است. این نسخه دارای مولفه‌های اصلی (major) و فرعی (minor) طبق قراردادهای نسخه‌گذاری معنایی است. .UNINDENT .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-trace\-source= قرار دادن cmake در حالت ردگیری، اما خروجی دادن تنها به خطوط یک فایل مشخص‌شده محدود می‌شود. .sp استفاده از چندین گزینه از این نوع مجاز است. .UNINDENT .INDENT 0.0 .TP .B \-\-trace\-redirect= قرار دادن cmake در حالت ردگیری و تغییر مسیر خروجی ردگیری به یک فایل به‌جای stderr. .UNINDENT .INDENT 0.0 .TP .B \-\-warn\-uninitialized منسوخ‌شده از نسخه 4.4. .sp مترادف سازگاری برای \fB\-Wuninitialized\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-warn\-unused\-vars منسوخ‌شده از نسخه 3.19. .sp هیچ کاری انجام نمی‌دهد. در نسخه‌های 3.2 و پایین‌تر CMake این گزینه هشدارهای مربوط به متغیرهای استفاده‌نشده را فعال می‌کرد. در نسخه‌های 3.3 تا 3.18 از CMake این گزینه دچار اشکال بود. در CMake نسخه 3.19 و بالاتر این گزینه حذف شده است. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-warn\-unused\-cli منسوخ‌شده از نسخه 4.4. .sp مترادف سازگاری برای \fB\-Wno\-unused\-cli\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-check\-system\-vars یافتن مشکلات در نحوه استفاده از متغیرها در فایل‌های سیستم. .sp به‌طور معمول، متغیرهای استفاده‌نشده و مقداردهی‌نشده تنها در \fBCMAKE_SOURCE_DIR\fP \%<#\:variable:CMAKE_SOURCE_DIR> و \fBCMAKE_BINARY_DIR\fP \%<#\:variable:CMAKE_BINARY_DIR>\& جستجو می‌شوند. این فلگ به CMake اعلام می‌کند که در مورد سایر فایل‌ها نیز هشدار دهد. .UNINDENT .INDENT 0.0 .TP .B \-\-compile\-no\-warning\-as\-error اضافه‌شده در نسخه 3.24. .sp نادیده گرفتن ویژگی هدف \fBCOMPILE_WARNING_AS_ERROR\fP \%<#\:prop_tgt:COMPILE_WARNING_AS_ERROR> و متغیر \fBCMAKE_COMPILE_WARNING_AS_ERROR\fP \%<#\:variable:CMAKE_COMPILE_WARNING_AS_ERROR>، که مانع از برخورد با هشدارها به‌عنوان خطا در زمان کامپایل می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-link\-no\-warning\-as\-error اضافه‌شده در نسخه 4.0. .sp نادیده گرفتن ویژگی هدف \fBLINK_WARNING_AS_ERROR\fP \%<#\:prop_tgt:LINK_WARNING_AS_ERROR> و متغیر \fBCMAKE_LINK_WARNING_AS_ERROR\fP \%<#\:variable:CMAKE_LINK_WARNING_AS_ERROR>، که مانع از برخورد با هشدارها به‌عنوان خطا در زمان پیوند (link) می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-profiling\-output= اضافه‌شده در نسخه 3.18. .sp در ترکیب با \fB\-\-profiling\-format\fP برای نوشتن خروجی در یک مسیر مشخص به‌کار می‌رود. .UNINDENT .INDENT 0.0 .TP .B \-\-profiling\-format= فعال‌سازی خروجی داده‌های پروفایل‌سازی اسکریپت CMake در قالب داده‌شده. .sp این گزینه می‌تواند به تحلیل کارایی اسکریپت‌های اجراشده‌ی CMake کمک کند. برای تبدیل خروجی به قالبی خوانا برای انسان باید از برنامه‌های شخص ثالث استفاده شود. .sp مقادیر پشتیبانی‌شده در حال حاضر عبارتند از: \fBgoogle\-trace\fP خروجی در قالب ردگیری گوگل (Google Trace Format)، که می‌تواند توسط برگه \% در مرورگر Google Chrome یا با استفاده از یک افزونه برای ابزاری مانند Trace Compass تجزیه و تحلیل شود. .UNINDENT .INDENT 0.0 .TP .B \-\-preset , \-\-preset= یک \fBپیش‌تنظیم (preset)\fP \%<#\:manual:cmake-presets(7)> را از فایل‌های پیش‌تنظیم CMake می‌خواند. فایل‌های \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP فایل‌های پیش‌فرض هستند که باید در همان دایرکتوریِ فایل سطح‌بالای \fBCMakeLists.txt\fP قرار داشته باشند. همچنین می‌توان یک فایل را با \fB\-\-presets\-file\fP\& مشخص نمود. .sp پیش‌تنظیم ممکن است تولیدکننده، دایرکتوری ساخت، فهرستی از متغیرها و سایر آرگومان‌ها را برای ارسال به CMake مشخص کند. .sp رابط کاربری گرافیکی \fBCMake GUI\fP \%<#\:manual:cmake-gui(1)> نیز فایل‌های \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP را تشخیص داده و پشتیبانی می‌کند. برای جزئیات کامل در مورد این فایل‌ها، \fBcmake\-presets(7)\fP \%<#\:manual:cmake-presets(7)>\& را ببینید. .sp پیش‌تنظیم‌ها قبل از تمام گزینه‌های دیگر خط فرمان خوانده می‌شوند، اگرچه از گزینه \fB\-S\fP می‌توان برای مشخص کردن دایرکتوری منبع حاوی فایل‌های \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP استفاده کرد. اگر نه \fB\-S\fP و نه \fB\-\-presets\-file\fP داده نشده باشند، دایرکتوری کاری فعلی به عنوان دایرکتوری منبع سطح‌بالا فرض می‌شود و باید حاوی \fBCMakePresets.json\fP و/یا \fBCMakeUserPresets.json\fP باشد\&. .sp گزینه‌های مشخص‌شده توسط پیش‌تنظیم انتخاب‌شده (متغیرها، تولیدکننده و غیره) همگی می‌توانند با مشخص کردن دستی آن‌ها در خط فرمان بازنویسی (override) شوند. برای نمونه، اگر پیش‌تنظیم متغیری به نام \fBMYVAR\fP را روی \fB1\fP تنظیم کند، اما کاربر آن را با استفاده از آرگومان \fB\-D\fP روی \fB2\fP تنظیم نماید، مقدار \fB2\fP اولویت خواهد داشت. .sp اضافه‌شده در نسخه 3.21: گزینه \fB\-B\fP می‌تواند به‌صورت اختیاری با یک دایرکتوری باینری متفاوت از دایرکتوری مشخص‌شده توسط فیلد \fBbinaryDir\fP \%<#\:cmakepresets-configurepresets-binarydir> تعیین شود. .sp تغییریافته در نسخه 4.4: در صورت مشخص شدن \fB\-\-presets\-file\fP، نیازی به حضور هیچ‌یک از فایل‌های \fBCMakePresets.json\fP یا \fBCMakeUserPresets.json\fP نیست. در نسخه‌های پیشین، وجود این فایل‌ها در دایرکتوری منبع سطح‌بالا (خواه از طریق \fB\-S\fP یا دایرکتوری کاری فعلی) اکیداً الزامی بود. .UNINDENT .INDENT 0.0 .TP .B \-\-presets\-file , \-\-presets\-file= اضافه‌شده در نسخه 4.4. .sp خواندن \fBپیش‌تنظیم‌ها (presets)\fP \%<#\:manual:cmake-presets(7)> از \fB\fP داده‌شده\&. مسیر مشخص‌شده می‌تواند مطلق یا نسبت به دایرکتوری کاری فعلی باشد. اگر \fB\-\-presets\-file\fP داده شود، پیش‌تنظیم‌های تعریف‌شده در \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP نادیده گرفته خواهند شد. .UNINDENT .INDENT 0.0 .TP .B \-\-list\-presets[=] فهرست کردن پیش‌تنظیم‌های موجود برای \fB\fP مشخص‌شده\&. مقادیر معتبر برای \fB\fP عبارتند از \fBconfigure\fP، \fBbuild\fP، \fBtest\fP، \fBpackage\fP یا \fBall\fP\&. اگر \fB\fP حذف شود، مقدار \fBconfigure\fP فرض می‌شود. .sp تغییریافته در نسخه 4.4: اگر \fB\-\-presets\-file\fP مشخص شود، پیش‌تنظیم‌های تعریف‌شده در \fB\fP ارائه‌شده فهرست خواهند شد. در غیر این صورت، دایرکتوری منبع سطح‌بالا (خواه از طریق \fB\-S\fP یا دایرکتوری کاری فعلی) باید حاوی \fBCMakePresets.json\fP و/یا \fBCMakeUserPresets.json\fP باشد\&. در نسخه‌های پیشین، مورد دوم اکیداً الزامی بود. .UNINDENT .INDENT 0.0 .TP .B \-\-debugger اشکال‌زدایی تعاملی (interactive debugging) زبان CMake را فعال می‌کند. CMake یک رابط اشکال‌زدایی را روی لوله (pipe) تعیین‌شده توسط \fB\-\-debugger\-pipe\fP ارائه می‌دهد که با مشخصات Debug Adapter Protocol \% با تغییرات زیر مطابقت دارد: .sp پاسخ \fBinitialize\fP شامل یک فیلد اضافی به نام \fBcmakeVersion\fP است که نسخه CMake در حال اشکال‌زدایی را مشخص می‌کند. .sp پاسخ initialize اشکال‌زدا .INDENT 7.0 .INDENT 3.5 .sp .EX { \(dqcmakeVersion\(dq: { \(dqmajor\(dq: 3, \(dqminor\(dq: 27, \(dqpatch\(dq: 0, \(dqfull\(dq: \(dq3.27.0\(dq } } .EE .UNINDENT .UNINDENT .sp عضوها عبارتند از: .INDENT 7.0 .TP .B \fBmajor\fP یک عدد صحیح که شماره نسخه اصلی (major) را مشخص می‌کند. .TP .B \fBminor\fP یک عدد صحیح که شماره نسخه فرعی (minor) را مشخص می‌کند. .TP .B \fBpatch\fP یک عدد صحیح که شماره نسخه وصله (patch) را مشخص می‌کند. .TP .B \fBfull\fP یک رشته که نسخه کامل CMake را مشخص می‌کند. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-debugger\-pipe , \-\-debugger\-pipe= نام لوله (در ویندوز) یا سوکت دامنه (در یونیکس) مورد استفاده برای ارتباط با اشکال‌زدا. .UNINDENT .INDENT 0.0 .TP .B \-\-debugger\-dap\-log , \-\-debugger\-dap\-log= ثبت تمامی ارتباطات اشکال‌زدا در فایل مشخص‌شده. .UNINDENT .SH "ساخت یک پروژه (BUILD A PROJECT)" .sp ابزار CMake یک ساختار خط فرمانی برای ساخت درخت باینری یک پروژه که از قبل تولید شده است ارائه می‌دهد: .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-\-build [] [\-\- ] cmake \-\-build [] \-\-preset [] [\-\- ] .EE .UNINDENT .UNINDENT .sp این دستور رابط خط فرمان یک ابزار ساخت بومی را با گزینه‌های زیر انتزاع می‌کند: .INDENT 0.0 .TP .B \-\-build دایرکتوری باینری پروژه‌ای که باید ساخته شود. این گزینه الزامی است (مگر اینکه یک پیش‌تنظیم مشخص شده باشد) و باید در ابتدا قرار گیرد. .UNINDENT .INDENT 0.0 .TP .B \-\-preset , \-\-preset= استفاده از یک \fBپیش‌تنظیم (preset)\fP ساخت \%<#\:manual:cmake-presets(7)> برای مشخص کردن گزینه‌های ساخت. دایرکتوری باینری پروژه از کلید \fBconfigurePreset\fP \%<#\:cmakepresets-buildpresets-configurepreset> استنتاج می‌شود، مگر اینکه یک دایرکتوری پس از \fB\-\-build\fP مشخص شده باشد. .sp اضافه‌شده در نگارش 4.3: دستور \fBcmake \-\-build\fP اکنون از مشخص کردن هم‌زمان دایرکتوری ساخت و پیش‌تنظیم پشتیبانی می‌کند. .sp تغییریافته در نگارش 4.4: دیگر نیازی نیست \fBcmake \-\-build \-\-preset\fP از دایرکتوری حاوی \fBCMakePresets.json\fP یا \fBCMakeUserPresets.json\fP فراخوانی شود. اگر \fB\-\-presets\-file\fP مشخص شده باشد، CMake از آن فایل استفاده خواهد کرد؛ در غیر این صورت، فایل(های) پیش‌تنظیم را می‌توان از \fBCMakeCache.txt\fP دایرکتوری ساخت فعلی استنتاج کرد. .UNINDENT .INDENT 0.0 .TP .B \-\-presets\-file , \-\-presets\-file= اضافه‌شده در نگارش 4.4. .sp خواندن \fBپیش‌تنظیمات\fP \%<#\:manual:cmake-presets(7)> از \fB\fP مشخص‌شده. مسیر مشخص‌شده می‌تواند مطلق یا نسبت به دایرکتوری کاری فعلی باشد. اگر \fB\-\-presets\-file\fP داده شود، پیش‌تنظیمات تعریف‌شده در \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP نادیده گرفته خواهند شد. .UNINDENT .INDENT 0.0 .TP .B \-\-list\-presets فهرست کردن پیش‌تنظیمات ساخت موجود. .sp تغییریافته در نگارش 4.4: دیگر نیازی نیست \fBcmake \-\-build \-\-list\-presets\fP از دایرکتوری حاوی \fBCMakePresets.json\fP یا \fBCMakeUserPresets.json\fP فراخوانی شود. اگر \fB\-\-presets\-file\fP مشخص شده باشد، تنها پیش‌تنظیمات تعریف‌شده در \fB\fP داده‌شده فهرست خواهند شد؛ در غیر این صورت، فایل(های) پیش‌تنظیم از \fBCMakeCache.txt\fP دایرکتوری ساخت فعلی استنتاج می‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-j [], \-\-parallel [] اضافه‌شده در نگارش 3.12. .sp حداکثر تعداد فرآیندهای هم‌زمان برای استفاده در هنگام ساخت. اگر \fB\fP حذف شود، تعداد پیش‌فرض ابزار ساخت بومی استفاده می‌شود. .sp متغیر محیطی \fBCMAKE_BUILD_PARALLEL_LEVEL\fP \%<#\:envvar:CMAKE_BUILD_PARALLEL_LEVEL> در صورت تنظیم، سطح موازی‌سازی پیش‌فرض را در صورت ارائه نشدن این گزینه مشخص می‌کند. .sp برخی از ابزارهای ساخت بومی همیشه به صورت موازی می‌سازند. استفاده از مقدار \fB1\fP برای \fB\fP می‌تواند برای محدود کردن به یک فرآیند منفرد استفاده شود. .UNINDENT .INDENT 0.0 .TP .B \-t ..., \-\-target ... ساخت \fB\fP به‌جای هدف پیش‌فرض. می‌توان چندین هدف را با فاصله از یکدیگر مشخص کرد. .UNINDENT .INDENT 0.0 .TP .B \-\-config برای ابزارهای چندپیکربندی (multi\-configuration)، پیکربندی \fB\fP را انتخاب می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-clean\-first ابتدا هدف \fBclean\fP را ساخته و سپس اقدام به ساخت می‌کند. (تنها برای پاکسازی، از \fB\-\-target clean\fP استفاده کنید.) .UNINDENT .INDENT 0.0 .TP .B \-\-resolve\-package\-references= اضافه‌شده در نگارش 3.23. .sp حل ارجاعات بسته‌های راه دور از مدیران بسته خارجی (مانند NuGet) قبل از ساخت. هنگامی که \fB\fP روی \fBon\fP تنظیم شود (پیش‌فرض)، بسته‌ها پیش از ساخت یک هدف بازیابی خواهند شد. هنگامی که \fB\fP روی \fBonly\fP تنظیم شود، بسته‌ها بازیابی می‌شوند اما هیچ ساختی انجام نخواهد شد. هنگامی که \fB\fP روی \fBoff\fP تنظیم شود، هیچ بسته‌ای بازیابی نخواهد شد. .sp اگر هدف هیچ ارجاع بسته‌ای تعریف نکرده باشد، این گزینه هیچ کاری انجام نمی‌دهد. .sp این تنظیم را می‌توان در یک پیش‌تنظیم ساخت (با استفاده از \fBresolvePackageReferences\fP) مشخص کرد. در صورت مشخص شدن این گزینه خط فرمان، تنظیم پیش‌تنظیم نادیده گرفته خواهد شد. .sp اگر هیچ پارامتر خط فرمان یا گزینه پیش‌تنظیمی ارائه نشود، یک متغیر کَش ویژه محیط ارزیابی می‌شود تا تصمیم گرفته شود که آیا بازیابی بسته باید انجام گیرد یا خیر. .sp هنگام استفاده از \fBتولیدکننده‌های ویژوال استودیو (Visual Studio Generators)\fP \%<#\:visual-studio-generators>، ارجاعات بسته با استفاده از ویژگی \fBVS_PACKAGE_REFERENCES\fP \%<#\:prop_tgt:VS_PACKAGE_REFERENCES> تعریف می‌شوند. ارجاعات بسته با استفاده از NuGet بازیابی می‌شوند. این ویژگی را می‌توان با تنظیم متغیر \fBCMAKE_VS_NUGET_PACKAGE_RESTORE\fP روی \fBOFF\fP غیرفعال کرد. .UNINDENT .INDENT 0.0 .TP .B \-\-use\-stderr نادیده گرفته می‌شود. این رفتار در CMake >= 3.0 پیش‌فرض است. .UNINDENT .INDENT 0.0 .TP .B \-v, \-\-verbose فعال‌سازی خروجی پرجزئیات \- در صورت پشتیبانی \- شامل دستورات ساختی که باید اجرا شوند. .sp در صورتی که متغیر محیطی \fBVERBOSE\fP \%<#\:envvar:VERBOSE> یا متغیر کَش‌شده‌ی \fBCMAKE_VERBOSE_MAKEFILE\fP \%<#\:variable:CMAKE_VERBOSE_MAKEFILE> تنظیم شده باشد، می‌توان این گزینه را نادیده گرفت. .UNINDENT .INDENT 0.0 .TP .B \-\- انتقال گزینه‌های باقی‌مانده به ابزار بومی ساخت. .UNINDENT .sp برای راهنمای سریع، دستور \fBcmake \-\-build\fP را بدون هیچ گزینه‌ای اجرا کنید. .SS "رفتار ابزار ساخت وابسته به تولیدکننده (Generator-Specific Build Tool Behavior)" .sp دستور \fBcmake \-\-build\fP در برخی از تولیدکننده‌ها رفتار خاصی دارد: .sp \fBXcode\fP \%<#\:generator:Xcode> .INDENT 0.0 .INDENT 3.5 اضافه‌شده در نگارش 4.1: اگر یک ابزار شخص ثالث فایلی با پسوند \fB\&.xcworkspace\fP در کنار \fB\&.xcodeproj\fP تولیدشده توسط CMake ایجاد کرده باشد، \fBcmake \-\-build\fP در عوض ساخت را از طریق workspace هدایت می‌کند. .UNINDENT .UNINDENT .SH "نصب یک پروژه (INSTALL A PROJECT)" .sp ابزار CMake یک ساختار خط فرمانی برای نصب درخت باینری یک پروژه که از قبل تولید شده است فراهم می‌کند: .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-\-install [] .EE .UNINDENT .UNINDENT .sp می‌توان از این دستور پس از ساخت یک پروژه برای اجرای نصب بدون استفاده از سیستم ساخت تولیدشده یا ابزار ساخت بومی استفاده کرد. گزینه‌ها عبارتند از: .INDENT 0.0 .TP .B \-\-install دایرکتوری باینری پروژه برای نصب. این گزینه الزامی است و باید در ابتدا قرار گیرد. .UNINDENT .INDENT 0.0 .TP .B \-\-config برای تولیدکننده‌های چندپیکربندی (multi\-configuration)، پیکربندی \fB\fP را انتخاب می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-component نصب مبتنی بر مؤلفه (Component). تنها مؤلفه \fB\fP را نصب می‌کند. .sp اضافه‌شده در نگارش 4.4: از نصب بیش از یک مؤلفه پشتیبانی می‌کند: .INDENT 7.0 .IP \(bu 2 \fB\-\-component \fP .IP \(bu 2 \fB\-\-component \-\-component \fP .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-default\-directory\-permissions مجوزهای پیش‌فرض دایرکتوری در هنگام نصب. مجوزها در قالب \fB\fP هستند. .UNINDENT .INDENT 0.0 .TP .B \-\-prefix یک پیشوند (prefix) نصب جایگزین را مشخص می‌کند، و مقدار متغیر \fBCMAKE_INSTALL_PREFIX\fP \%<#\:variable:CMAKE_INSTALL_PREFIX> را به طور موقت در مرحله نصب جایگزین می‌نماید. .sp هدف اصلی این گزینه این است که اجازه دهد نصب در یک مکان دلخواه انجام شود. این گزینه معمولاً در گردش‌های کاری خاص نصب و بسته‌بندی استفاده می‌شود. این عمل مشابه انتخاب دایرکتوری نصب در طول مرحله نصب است؛ به عنوان مثال در ویندوز، که کاربر ممکن است پوشه مقصد را برای پروژه انتخاب کند. .sp \fBتوجه:\fP .INDENT 7.0 .INDENT 3.5 هنگامی که پروژه از ماژول \fBGNUInstallDirs\fP \%<#\:module:GNUInstallDirs> استفاده می‌کند، موارد خاصی \%<#\:gnuinstalldirs-special-cases> وجود دارند که بر اساس مقدار متغیر \fBCMAKE_INSTALL_PREFIX\fP \%<#\:variable:CMAKE_INSTALL_PREFIX> در فاز پیکربندی ارزیابی می‌شوند. نتایج این ارزیابی حتی در صورتی که در حین نصب از یک پیشوند جایگزین استفاده شود، همچنان پابرجا خواهند ماند. .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-strip حذف نمادهای اشکال‌زدایی (strip) پیش از نصب. .UNINDENT .INDENT 0.0 .TP .B \-v, \-\-verbose فعال‌سازی خروجی پرجزئیات. .sp در صورتی که متغیر محیطی \fBVERBOSE\fP \%<#\:envvar:VERBOSE> تنظیم شده باشد، می‌توان از این گزینه صرف‌نظر کرد. .UNINDENT .INDENT 0.0 .TP .B \-j , \-\-parallel اضافه‌شده در نگارش 3.31. .sp نصب به صورت موازی با استفاده از تعداد کارهای مشخص‌شده. تنها در صورتی در دسترس است که ویژگی \fBINSTALL_PARALLEL\fP \%<#\:prop_gbl:INSTALL_PARALLEL> فعال باشد. متغیر محیطی \fBCMAKE_INSTALL_PARALLEL_LEVEL\fP \%<#\:envvar:CMAKE_INSTALL_PARALLEL_LEVEL> در صورت مشخص نشدن این گزینه، سطح موازی‌سازی پیش‌فرض را تعیین می‌کند. .UNINDENT .sp برای راهنمای سریع، \fBcmake \-\-install\fP را بدون هیچ گزینه‌ای اجرا کنید. .SH "باز کردن یک پروژه (OPEN A PROJECT)" .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-\-open .EE .UNINDENT .UNINDENT .sp باز کردن پروژه تولیدشده در برنامه مرتبط با آن. این ویژگی تنها توسط برخی از تولیدکننده‌ها پشتیبانی می‌شود. .SH "اجرای یک اسکریپت (RUN A SCRIPT)" .INDENT 0.0 .INDENT 3.5 .sp .EX cmake [\-D =]... \-P [\-\- ...] .EE .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-D = تعریف یک متغیر برای حالت اسکریپت. .UNINDENT .INDENT 0.0 .TP .B \-P پردازش فایل cmake داده‌شده به عنوان یک اسکریپت نوشته‌شده به زبان CMake. هیچ مرحله پیکربندی یا تولیدی انجام نمی‌شود و کَش تغییر نمی‌کند. اگر متغیرها با استفاده از \fB\-D\fP تعریف می‌شوند، این کار باید قبل از آرگومان \fB\-P\fP انجام شود. .UNINDENT .sp هر گزینه‌ای پس از \fB\-\-\fP توسط CMake تجزیه نمی‌شود، اما همچنان در مجموعه متغیرهای \fBCMAKE_ARGV\fP \%<#\:variable:CMAKE_ARGV0> ارسالی به اسکریپت گنجانده می‌شود (شامل خود \fB\-\-\fP). .SH "اجرای یک ابزار خط فرمان (RUN A COMMAND-LINE TOOL)" .sp ابزار CMake ابزارهای خط فرمان داخلی را از طریق ساختار (signature) زیر فراهم می‌کند: .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-E [] .EE .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-E [help] برای مشاهده خلاصه‌ای از دستورها، \fBcmake \-E\fP یا \fBcmake \-E help\fP را اجرا کنید. .UNINDENT .sp دستورهای موجود عبارتند از: .INDENT 0.0 .TP .B bin2c [...] [\-\-] [ []] اضافه‌شده در نسخه 4.3. .sp یک فایل باینری را به یک آرایه C تبدیل می‌کند. اگر فایل ورودی مشخص نشده باشد یا \fB\-\fP باشد، به جای فایل از ورودی استاندارد خوانده می‌شود. اگر فایل خروجی مشخص نشده باشد یا \fB\-\fP باشد، به جای فایل در خروجی استاندارد نوشته می‌شود. .sp به‌طور پیش‌فرض، این دستور فقط بایت‌ها را چاپ می‌کند. متن دربرگیرنده را می‌توان با آرگومان \fB\-\-template\-file\fP اضافه کرد. همچنین می‌توانید بایت‌ها را از یک فایل دیگر \fB#include\fP کنید که به عنوان جایگزین مستقیم (drop\-in replacement) برای دستورالعمل \fB#embed\fP در C23 و C++26 عمل می‌کند: .INDENT 7.0 .INDENT 3.5 .sp .EX unsigned char my_bytes[] = { /* #embed \(dqbin2c_input.bin\(dq */ #include \(dqbin2c_output.c.txt\(dq }; .EE .UNINDENT .UNINDENT .INDENT 7.0 .TP .B \-\-signed بایت‌ها را به جای اعداد صحیح بدون علامت (unsigned)، به صورت اعداد صحیح علامت‌دار (signed) چاپ می‌کند. .UNINDENT .INDENT 7.0 .TP .B \-\-decimal بایت‌ها را به جای هگزادسیمال، به صورت ده‌دهی (decimal) چاپ می‌کند. .UNINDENT .INDENT 7.0 .TP .B \-\-trailing\-comma یک کامای انتهایی پس از آخرین بایت اضافه می‌کند (به‌طور پیش‌فرض اضافه نمی‌شود). .UNINDENT .INDENT 7.0 .TP .B \-\-template\-file قالب‌بندی بر اساس یک فایل الگو (template). فایل الگو شامل جانگهدارها (placeholders) برای آرایه و به صورت اختیاری برای طول آن (که یک عدد صحیح ده‌دهی غیرمنفی خواهد بود) است. این جانگهدارها در ابتدا و انتهای خود توسط \fB@\fP محصور می‌شوند. این قابلیت مشابه \fBconfigure_file()\fP \%<#\:command:configure_file> است که با آرگومان \fB@ONLY\fP فراخوانی شده باشد، اما تنها جانگهدار‌های آرایه و طول جایگزین خواهند شد و هر جانگهدار دیگری بدون تغییر باقی می‌ماند. .sp نمونه‌ای از یک فایل الگوی بالقوه: .INDENT 7.0 .INDENT 3.5 .sp .EX unsigned char my_bytes[] = {@array@}; size_t length = @length@; .EE .UNINDENT .UNINDENT .sp جانگهدار آرایه حداکثر یک بار می‌تواند در فایل الگو بیاید. جانگهدار طول می‌تواند صفر یا چند بار بعد از جانگهدار آرایه بیاید، اما قبل از آن نمی‌تواند قرار گیرد. .sp توجه داشته باشید که طول برابر با تعداد عناصر چاپ‌شده است، و در صورتی که نوعی غیر از \fBunsigned char\fP استفاده شود، ممکن است با \fBsizeof\fP آرایه حاصل مطابقت نداشته باشد. .UNINDENT .INDENT 7.0 .TP .B \-\-template\-array\-placeholder یک نام برای جانگهدار آرایه در فایل الگو تعیین می‌کند. به‌طور پیش‌فرض روی \fBarray\fP تنظیم است. .UNINDENT .INDENT 7.0 .TP .B \-\-template\-length\-placeholder یک نام برای جانگهدار طول در فایل الگو تعیین می‌کند. به‌طور پیش‌فرض روی \fBlength\fP تنظیم است. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B capabilities اضافه‌شده در نسخه 3.7. .sp قابلیت‌های cmake را در قالب JSON گزارش می‌دهد. خروجی یک شیء JSON با کلیدهای زیر است: .INDENT 7.0 .TP .B \fBversion\fP یک شیء JSON حاوی اطلاعات نسخه. کلیدها عبارتند از: .INDENT 7.0 .TP .B \fBstring\fP رشته کامل نسخه همان‌طور که توسط \fBcmake \-\-version\fP نمایش داده می‌شود. .TP .B \fBmajor\fP شماره نسخه اصلی (major) در قالب عدد صحیح. .TP .B \fBminor\fP شماره نسخه فرعی (minor) در قالب عدد صحیح. .TP .B \fBpatch\fP سطح وصله (patch) در قالب عدد صحیح. .TP .B \fBsuffix\fP رشته پسوند نسخه cmake. .TP .B \fBisDirty\fP یک مقدار بولی (bool) که اگر ساخت cmake از یک درخت کاری تغییریافته (dirty tree) باشد تنظیم می‌شود. .UNINDENT .TP .B \fBgenerators\fP فهرستی از تولیدکننده‌های موجود. هر تولیدکننده یک شیء JSON با کلیدهای زیر است: .INDENT 7.0 .TP .B \fBname\fP رشته‌ای شامل نام تولیدکننده. .TP .B \fBtoolsetSupport\fP اگر تولیدکننده از مجموعه‌ابزارها (toolsets) پشتیبانی کند مقدار \fBtrue\fP و در غیر این صورت \fBfalse\fP است. .TP .B \fBplatformSupport\fP اگر تولیدکننده از پلتفرم‌ها پشتیبانی کند مقدار \fBtrue\fP و در غیر این صورت \fBfalse\fP است. .TP .B \fBsupportedPlatforms\fP اضافه‌شده در نسخه 3.21. .sp عضو اختیاری که ممکن است در صورت پشتیبانی تولیدکننده از مشخص‌سازی پلتفرم از طریق \fBCMAKE_GENERATOR_PLATFORM\fP \%<#\:variable:CMAKE_GENERATOR_PLATFORM> (\fB\-A ...\fP) وجود داشته باشد. مقدار آن فهرستی از پلتفرم‌هایی است که پشتیبانی از آن‌ها شناخته شده است. .TP .B \fBextraGenerators\fP فهرستی از رشته‌ها شامل تمام Extra Generators \%<#\:extra-generators> سازگار با تولیدکننده. .UNINDENT .TP .B \fBfileApi\fP عضو اختیاری که در صورت در دسترس بودن \fBcmake\-file\-api(7)\fP \%<#\:manual:cmake-file-api(7)> حضور دارد. مقدار آن یک شیء JSON با یک عضو است: .INDENT 7.0 .TP .B \fBrequests\fP یک آرایه JSON شامل صفر یا چند درخواست پشتیبانی‌شده file\-api. هر درخواست یک شیء JSON با اعضای زیر است: .INDENT 7.0 .TP .B \fBkind\fP یکی از انواع شیء Object Kinds \%<#\:file-api-object-kinds> پشتیبانی‌شده را مشخص می‌کند. .TP .B \fBversion\fP یک آرایه JSON که هر یک از عناصر آن یک شیء JSON شامل اعضای \fBmajor\fP و \fBminor\fP است که مؤلفه‌های نسخه را به صورت عدد صحیح غیرمنفی مشخص می‌کنند. .UNINDENT .UNINDENT .TP .B \fBserverMode\fP اگر cmake از حالت کارساز (server\-mode) پشتیبانی کند \fBtrue\fP و در غیر این صورت \fBfalse\fP است. از زمان CMake 3.20 همیشه false است. .TP .B \fBtls\fP اضافه‌شده در نسخه 3.25. .sp اگر پشتیبانی از TLS فعال باشد \fBtrue\fP و در غیر این صورت \fBfalse\fP است. .TP .B \fBdebugger\fP اضافه‌شده در نسخه 3.27. .sp اگر حالت \fB\-\-debugger\fP پشتیبانی شود مقدار \fBtrue\fP و در غیر این صورت \fBfalse\fP است. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B cat [\-\-] ... اضافه‌شده در نسخه 3.18. .sp فایل‌ها را به هم پیوند می‌دهد (concatenate) و در خروجی استاندارد چاپ می‌کند. .INDENT 7.0 .TP .B \-\- اضافه‌شده در نسخه 3.24. .sp پشتیبانی از آرگومان خط‌تیره دوگانه \fB\-\-\fP اضافه شد. این پیاده‌سازی پایه‌ای از \fBcat\fP از هیچ گزینه‌ای پشتیبانی نمی‌کند، بنابراین استفاده از گزینه‌ای که با \fB\-\fP آغاز شود منجر به خطا خواهد شد. در صورتی که نام فایلی با \fB\-\fP آغاز می‌شود، از \fB\-\-\fP برای مشخص کردن پایان گزینه‌ها استفاده کنید. .UNINDENT .sp اضافه‌شده در نسخه 3.29: دستور \fBcat\fP اکنون می‌تواند با ارسال آرگومان \fB\-\fP ورودی استاندارد را چاپ کند. .sp اضافه‌شده در نسخه 4.4: در صورتی که هیچ آرگومانی ارسال نشود، \fBcat\fP ورودی استاندارد را چاپ خواهد کرد. .UNINDENT .INDENT 0.0 .TP .B chdir [...] دایرکتوری کاری فعلی را تغییر می‌دهد و یک دستور را اجرا می‌کند. .UNINDENT .INDENT 0.0 .TP .B compare_files [\-\-ignore\-eol] بررسی می‌کند که آیا \fB\fP با \fB\fP یکسان است یا خیر. اگر فایل‌ها یکسان باشند، مقدار \fB0\fP و در غیر این صورت مقدار \fB1\fP را برمی‌گرداند. در صورت وجود آرگومان‌های نامعتبر، مقدار 2 را برمی‌گرداند. .INDENT 7.0 .TP .B \-\-ignore\-eol اضافه‌شده در نسخه 3.14. .sp این گزینه مقایسه خط‌به‌خط را اعمال کرده و تفاوت‌های LF/CRLF را نادیده می‌گیرد. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B copy ... , .TP .B copy \-t ... فایل‌ها را در \fB\fP (چه فایل و چه دایرکتوری) کپی می‌کند. اگر چندین فایل مشخص شده باشد، یا اگر \fB\-t\fP تعیین شده باشد، \fB\fP باید یک دایرکتوری باشد و باید از قبل وجود داشته باشد. اگر \fB\-t\fP مشخص نشده باشد، آرگومان آخر به عنوان \fB\fP در نظر گرفته می‌شود. نویسه‌های عام (wildcards) پشتیبانی نمی‌شوند. دستور \fBcopy\fP پیوندهای نمادین (symlinks) را دنبال می‌کند؛ این بدان معناست که خود پیوندهای نمادین را کپی نمی‌کند، بلکه فایل‌ها یا دایرکتوری‌هایی را که به آن‌ها اشاره می‌کنند کپی می‌کند. .sp اضافه‌شده در نسخه 3.5: پشتیبانی از چندین فایل ورودی. .sp اضافه‌شده در نسخه 3.26: پشتیبانی از آرگومان \fB\-t\fP. .UNINDENT .INDENT 0.0 .TP .B copy_directory ... , .TP .B copy_directory \-t ... محتوای دایرکتوری‌های \fB...\fP را درون دایرکتوری \fB\fP کپی می‌کند. اگر دایرکتوری \fB\fP وجود نداشته باشد، ایجاد خواهد شد. اگر \fB\-t\fP مشخص نشده باشد، آرگومان آخر به عنوان \fB\fP در نظر گرفته می‌شود. دستور \fBcopy_directory\fP پیوندهای نمادین را دنبال می‌کند. .sp اضافه‌شده در نسخه 3.5: پشتیبانی از چندین دایرکتوری ورودی. .sp اضافه‌شده در نسخه 3.15: در صورتی که دایرکتوری مبدأ وجود نداشته باشد، این دستور اکنون با شکست مواجه می‌شود. پیش از این با ایجاد یک دایرکتوری مقصد خالی با موفقیت انجام می‌شد. .sp اضافه‌شده در نسخه 4.4: پشتیبانی از آرگومان \fB\-t\fP. .UNINDENT .INDENT 0.0 .TP .B copy_directory_if_different ... , .TP .B copy_directory_if_different \-t ... اضافه‌شده در نسخه 3.26. .sp محتوای تغییریافته دایرکتوری‌های \fB...\fP را درون دایرکتوری \fB\fP کپی می‌کند. اگر دایرکتوری \fB\fP وجود نداشته باشد، ایجاد خواهد شد. اگر \fB\-t\fP مشخص نشده باشد، آرگومان آخر به عنوان \fB\fP در نظر گرفته می‌شود. .sp دستور \fBcopy_directory_if_different\fP پیوندهای نمادین را دنبال می‌کند. در صورتی که دایرکتوری مبدأ وجود نداشته باشد، این دستور با شکست مواجه می‌شود. .sp اضافه‌شده در نسخه 4.4: پشتیبانی از آرگومان \fB\-t\fP. .UNINDENT .INDENT 0.0 .TP .B copy_directory_if_newer ... , .TP .B copy_directory_if_newer \-t ... اضافه‌شده در نسخه 4.2. .sp در صورتی که فایل‌های مبدأ جدیدتر از فایل‌های مقصد باشند (بر اساس برچسب زمانی فایل‌ها)، محتوای دایرکتوری‌های \fB...\fP را درون یک دایرکتوری \fB\fP کپی می‌کند. اگر دایرکتوری \fB\fP وجود نداشته باشد، ایجاد خواهد شد. اگر \fB\-t\fP مشخص نشده باشد، آرگومان آخر به عنوان \fB\fP در نظر گرفته می‌شود. .sp دستور \fBcopy_directory_if_newer\fP پیوندهای نمادین را دنبال می‌کند. در صورتی که دایرکتوری مبدأ وجود نداشته باشد، این دستور با شکست مواجه می‌شود. این دستور سریع‌تر از \fBcopy_directory_if_different\fP است زیرا به جای مقایسه محتوای فایل‌ها، تنها برچسب زمانی (timestamp) فایل‌ها را با یکدیگر مقایسه می‌کند. .sp اضافه‌شده در نسخه 4.4: پشتیبانی از آرگومان \fB\-t\fP. .UNINDENT .INDENT 0.0 .TP .B copy_if_different ... , .TP .B copy_if_different \-t ... فایل‌ها را در صورتی که تغییر کرده باشند در \fB\fP (چه فایل و چه دایرکتوری) کپی می‌کند. اگر چندین فایل مشخص شده باشد، یا اگر \fB\-t\fP مشخص شده باشد، \fB\fP باید یک دایرکتوری باشد و باید از قبل وجود داشته باشد. دستور \fBcopy_if_different\fP پیوندهای نمادین را دنبال می‌کند. .sp اضافه‌شده در نسخه 3.5: پشتیبانی از چندین فایل ورودی. .sp اضافه‌شده در نسخه 4.4: پشتیبانی از آرگومان \fB\-t\fP. .UNINDENT .INDENT 0.0 .TP .B copy_if_newer ... , .TP .B copy_if_newer \-t ... اضافه‌شده در نسخه 4.2. .sp فایل‌ها را در صورتی که فایل‌های مبدأ جدیدتر از فایل‌های مقصد باشند (بر اساس برچسب زمانی فایل‌ها) در \fB\fP (چه فایل و چه دایرکتوری) کپی می‌کند. اگر چندین فایل مشخص شده باشد، یا اگر \fB\-t\fP مشخص شده باشد، \fB\fP باید یک دایرکتوری باشد و باید از قبل وجود داشته باشد. دستور \fBcopy_if_newer\fP پیوندهای نمادین را دنبال می‌کند. این دستور سریع‌تر از \fBcopy_if_different\fP است زیرا به جای مقایسه محتوای فایل‌ها، تنها برچسب زمانی فایل‌ها را مقایسه می‌کند. .sp اضافه‌شده در نسخه 4.4: پشتیبانی از آرگومان \fB\-t\fP. .UNINDENT .INDENT 0.0 .TP .B create_symlink یک پیوند نمادین (symbolic link) با نام \fB\fP ایجاد می‌کند که به \fB\fP اشاره دارد. .sp اضافه‌شده در نسخه 3.13: پشتیبانی از ایجاد پیوندهای نمادین در ویندوز. .sp \fBنکته:\fP .INDENT 7.0 .INDENT 3.5 مسیری که پیوند نمادین \fB\fP در آن ایجاد خواهد شد باید از قبل وجود داشته باشد. .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B create_hardlink اضافه‌شده در نسخه 3.19. .sp یک پیوند سخت (hard link) با نام \fB\fP ایجاد می‌کند که به \fB\fP پیوند می‌یابد. .sp \fBنکته:\fP .INDENT 7.0 .INDENT 3.5 مسیری که پیوند سخت \fB\fP در آن ایجاد خواهد شد باید از قبل وجود داشته باشد. همچنین \fB\fP باید از قبل وجود داشته باشد. .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B echo [...] آرگومان‌ها را به‌صورت متن نمایش می‌دهد\&. .UNINDENT .INDENT 0.0 .TP .B echo_append [...] آرگومان‌ها را به‌صورت متن اما بدون رفتن به سطر جدید نمایش می‌دهد\&. .UNINDENT .INDENT 0.0 .TP .B env [] [\-\-] [...] اضافه‌شده در نسخه 3.1\&. .sp دستور را در یک محیط تغییریافته اجرا می‌کند. گزینه‌ها عبارتند از: .INDENT 7.0 .TP .B NAME=VALUE مقدار فعلی \fBNAME\fP را با \fBVALUE\fP جایگزین می‌کند\&. .UNINDENT .INDENT 7.0 .TP .B \-\-unset=NAME مقدار فعلی \fBNAME\fP را لغو تنظیم (unset) می‌کند\&. .UNINDENT .INDENT 7.0 .TP .B \-\-modify ENVIRONMENT_MODIFICATION اضافه‌شده در نسخه 3.25\&. .sp یک عملیات تکی \fBENVIRONMENT_MODIFICATION\fP \%<#\:prop_test:ENVIRONMENT_MODIFICATION> را روی محیط تغییریافته اعمال می‌کند\&. .sp گزینه‌های \fBNAME=VALUE\fP و \fB\-\-unset=NAME\fP به ترتیب معادل \fB\-\-modify NAME=set:VALUE\fP و \fB\-\-modify NAME=unset:\fP هستند\&. توجه داشته باشید که \fB\-\-modify NAME=reset:\fP مقدار \fBNAME\fP را به مقداری که در هنگام راه‌اندازی \fBcmake\fP داشت بازنشانی می‌کند (یا آن را لغو تنظیم می‌کند)، نه به مقدار آخرین گزینه \fBNAME=VALUE\fP\&. .UNINDENT .INDENT 7.0 .TP .B \-\- اضافه‌شده در نسخه 3.24\&. .sp پشتیبانی از آرگومان دو خط تیره \fB\-\-\fP اضافه شد\&. از \fB\-\-\fP برای توقف تفسیر گزینه‌ها/متغیرهای محیطی و در نظر گرفتن آرگومان بعدی به عنوان دستور استفاده کنید، حتی اگر با \fB\-\fP شروع شود یا شامل یک \fB=\fP باشد\&. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B environment متغیرهای محیطی فعلی را نمایش می‌دهد\&. .UNINDENT .INDENT 0.0 .TP .B false اضافه‌شده در نسخه 3.16\&. .sp هیچ کاری انجام نمی‌دهد، با کد خروج 1\&. .UNINDENT .INDENT 0.0 .TP .B make_directory ... دایرکتوری‌های \fB\fP را ایجاد می‌کند\&. در صورت لزوم، دایرکتوری‌های والد را نیز ایجاد می‌کند\&. اگر دایرکتوری از قبل وجود داشته باشد، بدون اعلام خطا نادیده گرفته می‌شود\&. .sp اضافه‌شده در نسخه 3.5: پشتیبانی از چندین دایرکتوری ورودی\&. .UNINDENT .INDENT 0.0 .TP .B md5sum ... ایجاد چک‌سام MD5 فایل‌ها در قالبی سازگار با \fBmd5sum\fP: .INDENT 7.0 .INDENT 3.5 .sp .EX 351abe79cd3800b38cdfb25d45015a15 file1.txt 052f86c15bbde68af55c7f7b340ab639 file2.txt .EE .UNINDENT .UNINDENT .sp تغییریافته در نسخه 4.3: ارسال \fB\-\fP از ورودی استاندارد می‌خواند\&. .UNINDENT .INDENT 0.0 .TP .B sha1sum ... اضافه‌شده در نسخه 3.10\&. .sp ایجاد چک‌سام SHA1 فایل‌ها در قالبی سازگار با \fBsha1sum\fP: .INDENT 7.0 .INDENT 3.5 .sp .EX 4bb7932a29e6f73c97bb9272f2bdc393122f86e0 file1.txt 1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt .EE .UNINDENT .UNINDENT .sp تغییریافته در نسخه 4.3: ارسال \fB\-\fP از ورودی استاندارد می‌خواند\&. .UNINDENT .INDENT 0.0 .TP .B sha224sum ... اضافه‌شده در نسخه 3.10\&. .sp ایجاد چک‌سام SHA224 فایل‌ها در قالبی سازگار با \fBsha224sum\fP: .INDENT 7.0 .INDENT 3.5 .sp .EX b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930 file1.txt 6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24 file2.txt .EE .UNINDENT .UNINDENT .sp تغییریافته در نسخه 4.3: ارسال \fB\-\fP از ورودی استاندارد می‌خواند\&. .UNINDENT .INDENT 0.0 .TP .B sha256sum ... اضافه‌شده در نسخه 3.10\&. .sp ایجاد چک‌سام SHA256 فایل‌ها در قالبی سازگار با \fBsha256sum\fP: .INDENT 7.0 .INDENT 3.5 .sp .EX 76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc file1.txt 15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea file2.txt .EE .UNINDENT .UNINDENT .sp تغییریافته در نسخه 4.3: ارسال \fB\-\fP از ورودی استاندارد می‌خواند\&. .UNINDENT .INDENT 0.0 .TP .B sha384sum ... اضافه‌شده در نسخه 3.10\&. .sp ایجاد چک‌سام SHA384 فایل‌ها در قالبی سازگار با \fBsha384sum\fP: .INDENT 7.0 .INDENT 3.5 .sp .EX acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434 file1.txt 668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d file2.txt .EE .UNINDENT .UNINDENT .sp تغییریافته در نسخه 4.3: ارسال \fB\-\fP از ورودی استاندارد می‌خواند\&. .UNINDENT .INDENT 0.0 .TP .B sha512sum ... اضافه‌شده در نسخه 3.10\&. .sp ایجاد چک‌سام SHA512 فایل‌ها در قالبی سازگار با \fBsha512sum\fP: .INDENT 7.0 .INDENT 3.5 .sp .EX 2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89 file1.txt 7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d file2.txt .EE .UNINDENT .UNINDENT .sp تغییریافته در نسخه 4.3: ارسال \fB\-\fP از ورودی استاندارد می‌خواند\&. .UNINDENT .INDENT 0.0 .TP .B remove [\-f] ... منسوخ‌شده از نسخه 3.17\&. .sp حذف فایل(ها)\&. رفتار مورد انتظار این بود که اگر هر یک از فایل‌های فهرست‌شده از قبل وجود نداشته باشند، دستور یک کد خروج غیرصفر بازگرداند، اما هیچ پیامی ثبت نشود\&. گزینه \fB\-f\fP رفتار را تغییر می‌دهد تا در عوض در چنین مواقعی یک کد خروج صفر (یعنی موفقیت) بازگرداند\&. دستور \fBremove\fP پیوندهای نمادین را دنبال نمی‌کند\&. این بدان معناست که تنها خود پیوندهای نمادین را حذف می‌کند و نه فایل‌هایی را که به آن‌ها اشاره دارد\&. .sp پیاده‌سازی آن دارای ایراد (باگ) بود و همواره 0 بازمی‌گرداند\&. این مورد را نمی‌توان بدون شکستن سازگاری رو به عقب (backwards compatibility) اصلاح کرد\&. به جای آن از \fBrm\fP استفاده کنید\&. .UNINDENT .INDENT 0.0 .TP .B remove_directory ... منسوخ‌شده از نسخه 3.17\&. .sp دایرکتوری‌های \fB\fP و محتویات آن‌ها را حذف می‌کند\&. اگر دایرکتوری‌ای وجود نداشته باشد، بدون هیچ پیامی نادیده گرفته می‌شود\&. به جای آن از \fBrm\fP استفاده کنید\&. .sp اضافه‌شده در نسخه 3.15: پشتیبانی از چندین دایرکتوری\&. .sp اضافه‌شده در نسخه 3.16: اگر \fB\fP یک پیوند نمادین به یک دایرکتوری باشد، فقط خود پیوند نمادین حذف خواهد شد\&. .UNINDENT .INDENT 0.0 .TP .B rename تغییر نام یک فایل یا دایرکتوری (روی یک درایو یا حجم واحد)\&. اگر فایلی با نام \fB\fP از قبل وجود داشته باشد، بدون هیچ پیامی جایگزین خواهد شد\&. .UNINDENT .INDENT 0.0 .TP .B rm [\-rRf] [\-\-] ... اضافه‌شده در نسخه 3.17\&. .sp فایل‌های \fB\fP یا دایرکتوری‌های \fB\fP را حذف می‌کند\&. از \fB\-r\fP یا \fB\-R\fP برای حذف بازگشتی دایرکتوری‌ها و محتویات آن‌ها استفاده کنید\&. اگر هر یک از فایل‌ها/دایرکتوری‌های فهرست‌شده وجود نداشته باشند، دستور یک کد خروج غیرصفر بازمی‌گرداند، اما هیچ پیامی ثبت نمی‌شود\&. گزینه \fB\-f\fP رفتار را تغییر می‌دهد تا در چنین شرایطی در عوض یک کد خروج صفر (یعنی موفقیت) بازگرداند\&. از \fB\-\-\fP برای توقف تفسیر گزینه‌ها و تلقی کردن تمام آرگومان‌های باقی‌مانده به عنوان مسیر استفاده کنید، حتی اگر با \fB\-\fP شروع شوند\&. .UNINDENT .INDENT 0.0 .TP .B sleep اضافه‌شده در نسخه 3.0\&. .sp به مدت \fB\fP ثانیه متوقف می‌شود (به خواب می‌رود)\&. \fB\fP می‌تواند یک عدد ممیز شناور باشد\&. حداقل عملی به دلیل بار سربارِ راه‌اندازی/متوقف‌سازی فایل اجرایی CMake در حدود 0.1 ثانیه است\&. این امر می‌تواند در یک اسکریپت CMake برای ایجاد وقفه مفید باشد: .INDENT 7.0 .INDENT 3.5 .sp .EX # Sleep for about 0.5 seconds execute_process(COMMAND ${CMAKE_COMMAND} \-E sleep 0.5) .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B tar [cxt][vf][zjJ] file.tar [] [\-\-] [...] یک بایگانی tar یا zip ایجاد یا استخراج می‌کند\&. گزینه‌ها عبارتند از: .INDENT 7.0 .TP .B c یک بایگانی جدید حاوی فایل‌های مشخص‌شده ایجاد می‌کند\&. در صورت استفاده، آرگومان \fB...\fP الزامی است\&. .UNINDENT .INDENT 7.0 .TP .B x استخراج از بایگانی بر روی دیسک\&. .sp اضافه‌شده در نسخه 3.15: آرگومان \fB...\fP می‌تواند برای استخراج صرفاً فایل‌ها یا دایرکتوری‌های انتخاب‌شده استفاده شود\&. هنگام استخراج فایل‌ها یا دایرکتوری‌های انتخاب‌شده، باید نام‌های دقیق آن‌ها شامل مسیر را دقیقاً همان‌گونه که توسط لیست (\fB\-t\fP) چاپ می‌شود، ارائه دهید\&. .sp تغییریافته در نسخه 4.3: ورودی‌های بایگانی حاوی توالی‌های پیمایش مسیر (\fB\&..\fP)، یا مسیرهای مطلق، به دلایل امنیتی رد می‌شوند\&. .UNINDENT .INDENT 7.0 .TP .B t فهرست کردن محتویات بایگانی\&. .sp اضافه‌شده در نسخه 3.15: آرگومان \fB...\fP می‌تواند برای فهرست کردن صرفاً فایل‌ها یا دایرکتوری‌های انتخاب‌شده استفاده شود\&. .UNINDENT .INDENT 7.0 .TP .B v تولید خروجی پرجزئیات (verbose)\&. .UNINDENT .INDENT 7.0 .TP .B z فشرده‌سازی بایگانی حاصل با gzip (Deflate)\&. .UNINDENT .INDENT 7.0 .TP .B j فشرده‌سازی بایگانی حاصل با bzip2\&. .UNINDENT .INDENT 7.0 .TP .B J اضافه‌شده در نسخه 3.1\&. .sp فشرده‌سازی بایگانی حاصل با XZ (LZMA2)\&. .UNINDENT .INDENT 7.0 .TP .B \-\-zstd اضافه‌شده در نسخه 3.15\&. .sp فشرده‌سازی بایگانی حاصل با Zstandard\&. .UNINDENT .INDENT 7.0 .TP .B \-\-lzma اضافه‌شده در نسخه 4.3. .sp آرشیو حاصل را با الگوریتم LZMA فشرده‌سازی می‌کند. .UNINDENT .INDENT 7.0 .TP .B \-\-files\-from= اضافه‌شده در نسخه 3.1. .sp نام‌های فایل را از فایل داده‌شده می‌خواند، در هر خط یک نام. خطوط خالی نادیده گرفته می‌شوند. خطوط نباید با \fB\-\fP شروع شوند، به‌جز \fB\-\-add\-file=\fP برای افزودن فایل‌هایی که نام آن‌ها با \fB\-\fP شروع می‌شود\&. .UNINDENT .INDENT 7.0 .TP .B \-\-format= اضافه‌شده در نسخه 3.3. .sp قالب (فرمت) آرشیو ایجادشونده را مشخص می‌کند. قالب‌های پشتیبانی‌شده عبارتند از: .INDENT 7.0 .IP \(bu 2 \fB7zip\fP .IP \(bu 2 \fBgnutar\fP .IP \(bu 2 \fBpax\fP .IP \(bu 2 \fBpaxr\fP (pax محدودشده، پیش‌فرض) .IP \(bu 2 \fBraw\fP .sp اضافه‌شده در نسخه 4.3. .sp اگر از این قالب استفاده شود، تنها یک فایل با نوع فشرده‌سازی مشخص‌شده توسط \fB\-\-cmake\-tar\-compression\-method\fP فشرده خواهد شد\&. .IP \(bu 2 \fBzip\fP .UNINDENT .sp اگر روش فشرده‌سازی مشخص نشود، روش فشرده‌سازی به قالب بستگی دارد: .INDENT 7.0 .IP \(bu 2 \fB7zip\fP از فشرده‌سازی \fBLZMA\fP استفاده می‌کند .IP \(bu 2 \fBzip\fP از فشرده‌سازی \fBDeflate\fP استفاده می‌کند .IP \(bu 2 سایر موارد به‌طور پیش‌فرض از هیچ فشرده‌سازی استفاده نمی‌کنند .UNINDENT .sp اضافه‌شده در نسخه 4.3: قالب‌های \fB7zip\fP و \fBzip\fP از تغییر روش و سطح فشرده‌سازی پیش‌فرض پشتیبانی می‌کنند. .UNINDENT .INDENT 7.0 .TP .B \-\-mtime= اضافه‌شده در نسخه 3.1. .sp زمان تغییر ثبت‌شده در مدخل‌های tarball را مشخص می‌کند. .UNINDENT .INDENT 7.0 .TP .B \-\-cmake\-tar\-compression\-method= اضافه‌شده در نسخه 4.3. .sp مقدار \fB\fP باید یکی از موارد زیر باشد: .INDENT 7.0 .IP \(bu 2 \fBnone\fP یا \fBstore\fP \- هیچ فشرده‌سازی استفاده نمی‌شود .IP \(bu 2 \fBdeflate\fP یا \fBgzip\fP \- مبتنی بر Deflate .IP \(bu 2 \fBbzip2\fP \- مبتنی بر BZip2 .IP \(bu 2 \fBlzma\fP \- مبتنی بر LZMA .IP \(bu 2 \fBlzma2\fP یا \fBxz\fP \- مبتنی بر LZMA2 .IP \(bu 2 \fBppmd\fP \- مبتنی بر PPMd .sp این روش فشرده‌سازی فقط توسط قالب آرشیو \fB7zip\fP پشتیبانی می‌شود. .IP \(bu 2 \fBzstd\fP \- مبتنی بر Zstandard .UNINDENT .sp این دومین حالت برای انتخاب روش فشرده‌سازی است. این گزینه روش‌های فشرده‌سازی بیشتری نسبت به رابط کلاسیک مشابه \fBtar\fP ارائه می‌دهد. می‌توانید از هر یک از آن‌ها استفاده کنید. .sp مقدار پیش‌فرض به مقدار گزینه \fB\-\-format\fP بستگی دارد و در بخش مربوطه توضیح داده شده است. .UNINDENT .INDENT 7.0 .TP .B \-\-cmake\-tar\-compression\-level= اضافه‌شده در نسخه 4.3. .sp مقدار \fB\fP باید بین \fB0\fP و \fB9\fP باشد که مقدار پیش‌فرض آن \fB0\fP است\&. هنگامی که گزینه \fB\-\-cmake\-tar\-compression\-level\fP داده می‌شود، الگوریتم فشرده‌سازی باید انتخاب شده باشد. .sp مقدار \fB\fP برای الگوریتم \fBZstd\fP را می‌توان بین \fB0\fP و \fB19\fP تنظیم کرد، به‌جز برای قالب \fBzip\fP\&. .sp مقدار \fB0\fP برای مشخص کردن سطح فشرده‌سازی پیش‌فرض استفاده می‌شود. این مقدار به‌طور خودکار توسط بک‌اند کتابخانه آرشیو انتخاب می‌شود و مستقیماً توسط خود CMake تنظیم نمی‌گردد. سطح فشرده‌سازی پیش‌فرض ممکن است بین قالب‌های آرشیو، پلتفرم‌ها و غیره متفاوت باشد. .UNINDENT .INDENT 7.0 .TP .B \-\-cmake\-tar\-encoding= اضافه‌شده در نسخه 4.4. .sp رمزگذاری (کدگذاری) نویسه‌های مسیر فایل استفاده‌شده در آرشیو را مشخص می‌کند. .sp مقدار \fB\fP می‌تواند یکی از موارد زیر باشد: .INDENT 7.0 .TP .B \fBUTF\-8\fP مسیرهای آرشیو با کدگذاری UTF\-8 رمزگذاری می‌شوند. .sp این مقدار از CMake 4.4 به بعد پیش‌فرض است. .TP .B \fBOEM\fP در پلتفرم‌های ویندوز، مسیرها با استفاده از صفحه کد سازنده اصلی تجهیزات (OEM) رمزگذاری می‌شوند. در پلتفرم‌های غیرویندوزی، مسیرها طبق لوکال (locale) فعلی رمزگذاری می‌شوند. .sp در CMake 4.3 و نسخه‌های پیشین، رمزگذاری \fBOEM\fP (لوکال فعلی) همیشه استفاده می‌شد. .TP .B \fBUTF\-16LE\fP, \fBUTF\-16BE\fP مسیرهای آرشیو به‌صورت UTF\-16 little\-endian یا big\-endian رمزگذاری می‌شوند. .TP .B \fB\&...\fP هر نام رمزگذاری که توسط \fBiconv\fP روی پلتفرم فعلی پشتیبانی شود. در ویندوز، می‌توان نام‌های صفحه کد را مشخص کرد. .UNINDENT .sp \fBنکته:\fP .INDENT 7.0 .INDENT 3.5 آرشیوهای \fB7zip\fP همیشه مسیرها را با \fBUTF\-16LE\fP رمزگذاری می‌کنند، بنابراین این گزینه برای آن قالب بدون هشدار نادیده گرفته می‌شود. .UNINDENT .UNINDENT .UNINDENT .INDENT 7.0 .TP .B \-\-cmake\-tar\-threads= اضافه‌شده در نسخه 4.3. .sp از \fB\fP نخ (thread) برای انجام عملیات روی آرشیو استفاده می‌کند. در حال حاضر فقط فشرده‌سازی چندنخی پشتیبانی می‌شود. .sp اگر روی \fB0\fP تنظیم شود، تعداد هسته‌های موجود روی ماشین به‌جای آن استفاده خواهد شد. توجه داشته باشید که تمام حالت‌های فشرده‌سازی از چندنخی در همه محیط‌ها پشتیبانی نمی‌کنند. .UNINDENT .INDENT 7.0 .TP .B \-\-touch اضافه‌شده در نسخه 3.24. .sp به‌جای استخراج برچسب‌های زمانی فایل از آرشیو، از برچسب زمانی محلی فعلی استفاده می‌کند. .UNINDENT .INDENT 7.0 .TP .B \-\- اضافه‌شده در نسخه 3.1. .sp تفسیر گزینه‌ها را متوقف کرده و با تمام آرگومان‌های باقیمانده به عنوان نام فایل رفتار می‌کند، حتی اگر با \fB\-\fP شروع شوند\&. .UNINDENT .sp اضافه‌شده در نسخه 3.1: پشتیبانی از LZMA (7zip). .sp اضافه‌شده در نسخه 3.15: دستور اکنون به افزودن فایل‌ها به یک آرشیو ادامه می‌دهد حتی اگر برخی از فایل‌ها قابل خواندن نباشند. این رفتار با ابزار کلاسیک \fBtar\fP سازگارتر است. این دستور اکنون تمام پرچم‌ها را نیز تجزیه می‌کند، و اگر پرچم نامعتبری ارائه شده باشد، یک هشدار صادر می‌شود. .UNINDENT .INDENT 0.0 .TP .B time [...] دستور \fB\fP را اجرا کرده و زمان سپری‌شده را نمایش می‌دهد (شامل سربار فرانت‌اند CMake). .sp اضافه‌شده در نسخه 3.5: این دستور اکنون آرگومان‌های حاوی فاصله یا نویسه‌های خاص را به‌درستی به فرایند فرزند منتقل می‌کند. این تغییر ممکن است اسکریپت‌هایی را که با نقل‌قول یا گریز دادن اضافی این باگ را دور می‌زدند، دچار شکست کند. .UNINDENT .INDENT 0.0 .TP .B touch ... در صورتی که فایل وجود نداشته باشد \fB\fP را ایجاد می‌کند. اگر \fB\fP وجود داشته باشد، زمان‌های دسترسی و تغییر \fB\fP را تغییر می‌دهد. .UNINDENT .INDENT 0.0 .TP .B touch_nocreate ... در صورت وجود فایل، زمان‌های آن را به‌روزرسانی می‌کند اما آن را ایجاد نمی‌کند. اگر فایلی وجود نداشته باشد، بدون هیچ پیامی نادیده گرفته خواهد شد. .UNINDENT .INDENT 0.0 .TP .B true اضافه‌شده در نسخه 3.16. .sp هیچ کاری انجام نمی‌دهد، با کد خروج 0. .UNINDENT .SS "ابزارهای خط فرمان مخصوص ویندوز (Windows-specific Command-Line Tools)" .sp دستورات \fBcmake \-E\fP زیر تنها در ویندوز در دسترس هستند: .INDENT 0.0 .TP .B delete_regv مقدار رجیستری ویندوز را حذف می‌کند. .UNINDENT .INDENT 0.0 .TP .B env_vs8_wince اضافه‌شده در نسخه 3.2. .sp یک فایل دسته‌ای (batch file) را نمایش می‌دهد که محیط را برای SDK ارائه‌شده Windows CE نصب‌شده در VS2005 تنظیم می‌کند. .UNINDENT .INDENT 0.0 .TP .B env_vs9_wince اضافه‌شده در نسخه 3.2. .sp یک فایل دسته‌ای (batch file) را نمایش می‌دهد که محیط را برای SDK ارائه‌شده Windows CE نصب‌شده در VS2008 تنظیم می‌کند. .UNINDENT .INDENT 0.0 .TP .B write_regv مقدار رجیستری ویندوز را می‌نویسد. .UNINDENT .SH "اجرای ابزار FIND-PACKAGE (RUN THE FIND-PACKAGE TOOL)" .sp برنامه CMake یک ابزار کمکی مشابه pkg\-config را برای پروژه‌های مبتنی بر Makefile ارائه می‌دهد: .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-\-find\-package [] .EE .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 این حالت به دلیل برخی محدودیت‌های فنی به خوبی پشتیبانی نمی‌شود. این ویژگی صرفاً برای سازگاری با نسخه‌های پیشین حفظ شده است و نباید در پروژه‌های جدید استفاده شود. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-find\-package یک بسته را با استفاده از دستور \fBfind_package()\fP \%<#\:command:find_package> جستجو می‌کند و فلگ‌های حاصل را در stdout چاپ می‌نماید. این گزینه می‌تواند به‌جای pkg\-config برای یافتن کتابخانه‌های نصب‌شده در پروژه‌های ساده مبتنی بر Makefile یا در پروژه‌های مبتنی بر Autoconf، با استفاده از ماکروهای کمکی نصب‌شده در \fBshare/aclocal/cmake.m4\fP بر روی سیستم استفاده شود. .sp هنگام استفاده از این گزینه، متغیرهای زیر مورد انتظار هستند: .INDENT 7.0 .TP .B \fBNAME\fP نام بسته، همان‌گونه که در \fBfind_package()\fP\& فراخوانی می‌شود. .TP .B \fBCOMPILER_ID\fP شناسه کامپایلر (\fBCompiler ID\fP \%<#\:variable:CMAKE__COMPILER_ID>) مورد استفاده برای جستجوی بسته، به عنوان مثال GNU/Intel/Clang/MSVC و غیره. .TP .B \fBLANGUAGE\fP زبان مورد استفاده برای جستجوی بسته، به عنوان مثال C/CXX/Fortran/ASM و غیره. .TP .B \fBMODE\fP حالت جستجوی بسته. مقدار می‌تواند یکی از موارد زیر باشد: .INDENT 7.0 .TP .B \fBEXIST\fP تنها وجود بسته داده‌شده را بررسی می‌کند. .TP .B \fBCOMPILE\fP فلگ‌های مورد نیاز برای کامپایل یک فایل شیء (object file) که از بسته داده‌شده استفاده می‌کند را چاپ می‌نماید. .TP .B \fBLINK\fP فلگ‌های مورد نیاز برای پیونددهی (linking) هنگام استفاده از بسته داده‌شده را چاپ می‌کند. .UNINDENT .TP .B \fBSILENT\fP (اختیاری) اگر TRUE باشد، پیام نتیجه جستجو چاپ نمی‌شود. .UNINDENT .sp برای مثال: .INDENT 7.0 .INDENT 3.5 .sp .EX cmake \-\-find\-package \-DNAME=CURL \-DCOMPILER_ID=GNU \-DLANGUAGE=C \-DMODE=LINK .EE .UNINDENT .UNINDENT .UNINDENT .SH "اجرای یک پیش‌تنظیم گردش کار (RUN A WORKFLOW PRESET)" .sp افزوده‌شده در نسخه 3.25. .sp قابلیت \fBCMake Presets\fP \%<#\:manual:cmake-presets(7)> روشی را برای اجرای چندین مرحله ساخت به ترتیب مشخص فراهم می‌کند: .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-\-workflow .EE .UNINDENT .UNINDENT .sp گزینه‌ها عبارتند از: .INDENT 0.0 .TP .B \-\-workflow انتخاب یک پیش‌تنظیم گردش کار (Workflow Preset \%<#\:workflow-preset>) با استفاده از یکی از گزینه‌های زیر. .UNINDENT .INDENT 0.0 .TP .B \-\-preset , \-\-preset= استفاده از یک پیش‌تنظیم (\fBpreset\fP \%<#\:manual:cmake-presets(7)>) گردش کار برای تعیین یک گردش کار. دایرکتوری باینری پروژه از پیش‌تنظیم اولیه پیکربندی استنباط می‌شود. .sp تغییریافته در نسخه 3.31: هنگامی که بلافاصله پس از گزینه \fB\-\-workflow\fP بیاید، آرگومان \fB\-\-preset\fP می‌تواند حذف شود و تنها نام \fB\fP داده شود. این بدان معناست که نحو دستوری زیر معتبر است: .INDENT 7.0 .INDENT 3.5 .sp .EX $ cmake \-\-workflow my\-preset .EE .UNINDENT .UNINDENT .sp تغییریافته در نسخه 4.4: اگر \fB\-\-presets\-file\fP مشخص شده باشد، حضور هیچ‌یک از فایل‌های \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP الزامی نیست. در غیر این صورت، حضور آن‌ها در بالاترین سطح دایرکتوری سورس الزامی است. در نسخه‌های پیشین، این مورد به صورت اکید الزامی بود. .UNINDENT .INDENT 0.0 .TP .B \-\-presets\-file , \-\-presets\-file= افزوده‌شده در نسخه 4.4. .sp پیش‌تنظیم‌ها (\fBpresets\fP \%<#\:manual:cmake-presets(7)>) را از \fB\fP داده‌شده می‌خواند. مسیر مشخص‌شده می‌تواند مطلق یا نسبت به دایرکتوری کاری جاری باشد. اگر \fB\-\-presets\-file\fP مشخص شود، پیش‌تنظیم‌های تعریف‌شده در \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP نادیده گرفته خواهند شد. .UNINDENT .INDENT 0.0 .TP .B \-\-list\-presets پیش‌تنظیم‌های گردش کار موجود را فهرست می‌کند. .sp تغییریافته در نسخه 4.4: اگر \fB\-\-presets\-file\fP مشخص شده باشد، حضور هیچ‌یک از فایل‌های \fBCMakePresets.json\fP و \fBCMakeUserPresets.json\fP الزامی نیست و تنها پیش‌تنظیم‌های تعریف‌شده در \fB\fP مشخص‌شده فهرست می‌شوند. در غیر این صورت، حضور آن‌ها در بالاترین سطح دایرکتوری سورس الزامی است. در نسخه‌های پیشین، این موضوع به صورت اکید الزامی بود. .UNINDENT .INDENT 0.0 .TP .B \-\-fresh انجام یک پیکربندی تازه از درخت ساخت، که اثری مشابه با \fBcmake \-\-fresh\fP\& دارد. .UNINDENT .SH "مشاهده راهنما (VIEW HELP)" .sp برای چاپ صفحات منتخب از مستندات CMake، از دستور: .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-\-help[\-] .EE .UNINDENT .UNINDENT .sp به همراه یکی از گزینه‌های زیر استفاده کنید: .INDENT 0.0 .TP .B \-version[=json\-v1] [], \-\-version[=json\-v1] [], /V[=json\-v1] [], /version[=json\-v1] [] بنر نام و نسخه برنامه را نمایش داده و خارج می‌شود. اگر \fBjson\-v1\fP مشخص شده باشد، اطلاعات تفصیلی نسخه را در قالب JSON چاپ می‌کند. خروجی JSON حاوی نسخه‌های CMake و وابستگی‌های آن است. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .sp قالب خروجی JSON به شکل خوانا برای ماشین در \fBthis JSON schema\fP\& توصیف شده است. .UNINDENT .INDENT 0.0 .TP .B \-h, \-H, \-\-help, \-help, \-usage, /? اطلاعات نحوه استفاده را چاپ کرده و خارج می‌شود. .sp نحوه استفاده، رابط خط فرمان پایه و گزینه‌های آن را شرح می‌دهد. .UNINDENT .INDENT 0.0 .TP .B \-\-help [] راهنما را برای یک کلیدواژه CMake چاپ می‌کند. .sp کلیدواژه \fB\fP می‌تواند یک ویژگی (property)، متغیر، دستور، خط‌مشی (policy)، تولیدکننده (generator) یا ماژول باشد. .sp مدخل مربوطه در کتابچه راهنما برای \fB\fP در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .sp تغییریافته در نسخه 3.28: پیش از CMake 3.28، این گزینه تنها از نام دستورات پشتیبانی می‌کرد. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-full [] تمام کتابچه‌های راهنما را چاپ کرده و خارج می‌شود. .sp تمام کتابچه‌های راهنما در یک قالب متنی خوانا برای انسان چاپ می‌شوند. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-manual [] یک کتابچه راهنما را چاپ کرده و خارج می‌شود. .sp کتابچه راهنمای مشخص‌شده در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-manual\-list [] کتابچه‌های راهنمای موجود را فهرست کرده و خارج می‌شود. .sp این فهرست شامل تمام کتابچه‌های راهنمایی است که می‌توان با استفاده از گزینه \fB\-\-help\-manual\fP همراه با نام کتابچه به راهنمای آن‌ها دست یافت. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-command [] راهنما را برای یک دستور چاپ کرده و خارج می‌شود. .sp مدخل کتابچه راهنمای \fBcmake\-commands(7)\fP \%<#\:manual:cmake-commands(7)> برای \fB\fP در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-command\-list [] دستوراتی را که راهنمای آن‌ها موجود است فهرست کرده و خارج می‌شود. .sp این فهرست شامل تمام دستوراتی است که می‌توان با استفاده از گزینه \fB\-\-help\-command\fP همراه با نام دستور به راهنمای آن‌ها دست یافت. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-commands [] کتابچه راهنمای cmake\-commands را چاپ کرده و خارج می‌شود. .sp کتابچه راهنمای \fBcmake\-commands(7)\fP \%<#\:manual:cmake-commands(7)> در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-module [] راهنما را برای یک ماژول چاپ کرده و خارج می‌شود. .sp مدخل کتابچه راهنمای \fBcmake\-modules(7)\fP \%<#\:manual:cmake-modules(7)> برای \fB\fP در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-module\-list [] ماژول‌هایی را که راهنمای آن‌ها موجود است فهرست کرده و خارج می‌شود. .sp این فهرست شامل تمام ماژول‌هایی است که می‌توان با استفاده از گزینه \fB\-\-help\-module\fP همراه با نام ماژول به راهنمای آن‌ها دست یافت. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-modules [] کتابچه راهنمای cmake\-modules را چاپ کرده و خارج می‌شود. .sp کتابچه راهنمای \fBcmake\-modules(7)\fP \%<#\:manual:cmake-modules(7)> در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-policy [] راهنما را برای یک خط‌مشی چاپ کرده و خارج می‌شود. .sp مدخل کتابچه راهنمای \fBcmake\-policies(7)\fP \%<#\:manual:cmake-policies(7)> برای \fB\fP در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-policy\-list [] خط‌مشی‌هایی را که راهنمای آن‌ها موجود است فهرست کرده و خارج می‌شود. .sp این فهرست شامل تمام خط‌مشی‌هایی است که می‌توان با استفاده از گزینه \fB\-\-help\-policy\fP همراه با نام خط‌مشی به راهنمای آن‌ها دست یافت. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-policies [] کتابچه راهنمای cmake\-policies را چاپ کرده و خارج می‌شود. .sp کتابچه راهنمای \fBcmake\-policies(7)\fP \%<#\:manual:cmake-policies(7)> در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-property [] راهنما را برای یک ویژگی چاپ کرده و خارج می‌شود. .sp مدخل‌های کتابچه راهنمای \fBcmake\-properties(7)\fP \%<#\:manual:cmake-properties(7)> برای \fB\fP در یک قالب متنی خوانا برای انسان چاپ می‌شوند. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-property\-list [] ویژگی‌هایی را که راهنمای آن‌ها موجود است فهرست کرده و خارج می‌شود. .sp این فهرست شامل تمام ویژگی‌هایی است که می‌توان با استفاده از گزینه \fB\-\-help\-property\fP همراه با نام ویژگی به راهنمای آن‌ها دست یافت. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-properties [] کتابچه راهنمای cmake\-properties را چاپ کرده و خارج می‌شود. .sp کتابچه راهنمای \fBcmake\-properties(7)\fP \%<#\:manual:cmake-properties(7)> در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-variable [] راهنما را برای یک متغیر چاپ کرده و خارج می‌شود. .sp مدخل کتابچه راهنمای \fBcmake\-variables(7)\fP \%<#\:manual:cmake-variables(7)> برای \fB\fP در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-variable\-list [] متغیرهایی را که راهنمای آن‌ها موجود است فهرست کرده و خارج می‌شود. .sp این فهرست شامل تمام متغیرهایی است که می‌توان با استفاده از گزینه \fB\-\-help\-variable\fP همراه با نام متغیر به راهنمای آن‌ها دست یافت. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-variables [] کتابچه راهنمای cmake\-variables را چاپ کرده و خارج می‌شود. .sp کتابچه راهنمای \fBcmake\-variables(7)\fP \%<#\:manual:cmake-variables(7)> در یک قالب متنی خوانا برای انسان چاپ می‌شود. در صورت ارائه نام \fB\fP، خروجی در آن نوشته می‌شود. .UNINDENT .sp برای مشاهده پیش‌تنظیم‌های موجود برای یک پروژه، از دستور زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX cmake \-\-list\-presets .EE .UNINDENT .UNINDENT .SH "کد خروج (RETURN VALUE / EXIT CODE)" .sp در صورت خاتمه عادی، فایل اجرایی \fBcmake\fP کد خروج \fB0\fP\& را بازمی‌گرداند. .sp اگر خاتمه بر اثر دستور \fBmessage(FATAL_ERROR)\fP \%<#\:command:message>، یا شرایط خطای دیگری رخ داده باشد، یک کد خروج غیرصفر بازگردانده می‌شود. .SH "همچنین ببینید (SEE ALSO)" .sp منابع زیر برای دریافت راهنما در استفاده از CMake در دسترس هستند: .INDENT 0.0 .TP .B Home Page \% .sp نقطه شروع اصلی برای یادگیری درباره CMake. .TP .B Online Documentation and Community Resources \% .sp پیوندهای مربوط به مستندات موجود و منابع انجمن را می‌توان در این صفحه وب یافت. .TP .B Discourse Forum \% .sp تالار گفتگوی Discourse میزبان گفتگوها و پرسش‌ها پیرامون CMake است. .UNINDENT .SH "حق نشر (Copyright)" 2000-2026 Kitware, Inc. and Contributors .\" End of generated man page.