Articles

cmake(1)¶

Optionen¶

-S <path-to-source>

Pfad zum Stammverzeichnis des zu erstellenden CMake-Projekts.

-B <path-to-build>

Pfad zum Verzeichnis, das CMake als Stammverzeichnis des Build-Verzeichnisses verwendet.

Wenn das Verzeichnis noch nicht existiert, erstellt CMake es.

-C <initial-cache>

Laden Sie ein Skript vor, um den Cache zu füllen.

Wenn CMake zum ersten Mal in einem leeren Build-Baum ausgeführt wird, erstellt es eineCMakeCache.txt Datei und füllt sie mit anpassbaren Einstellungen fürdas Projekt. Diese Option kann verwendet werden, um eine Datei anzugeben, aus der Cache-Einträge geladen werden sollen, bevor die Scmake-Listendateien des Projekts zum ersten Mal durchlaufen werden. Die geladenen Einträge haben Vorrang vor den Standardwerten des Projekts. Die angegebene Datei sollte ein CMake-Skript sein, das set() Befehle enthält, die die Option CACHE verwenden, keine Datei im Cache-Format.

Verweise auf CMAKE_SOURCE_DIR und CMAKE_BINARY_DIRinnerhalb des Skripts führen zur obersten Quell- und Build-Struktur.

-D <var>:<type>=<value>, -D <var>=<value>

Erstellen oder aktualisieren Sie einen CMake CACHE Eintrag.

Wenn CMake zum ersten Mal in einem leeren Build-Baum ausgeführt wird, erstellt es eineCMakeCache.txt Datei und füllt sie mit anpassbaren Einstellungen fürdas Projekt. Diese Option kann verwendet werden, um eine Einstellung anzugeben, die Vorrang vor dem Standardwert des Projekts hat. Die Option kann für beliebig viele CACHE Einträge verwendet werden.

Wenn der :<type> -Teil angegeben ist, muss er einer der Typen sein, die in der set() -Befehlsdokumentation für seineCACHE -Signatur angegeben sind.Wenn der :<type> Teil weggelassen wird, wird der Eintrag ohne Typ erstellt, wenn er nicht bereits mit einem Typ vorhanden ist. Wenn ein Befehl im Projekt den Typ auf PATH oder FILEPATH setzt, wird die <value> in einen absoluten Pfad konvertiert.

Diese Option kann auch als einzelnes Argument angegeben werden:-D<var>:<type>=<value> oder -D<var>=<value>.

-U <globbing_expr>

Entfernen Sie übereinstimmende Einträge aus CMake CACHE.

Diese Option kann verwendet werden, um eine oder mehrere Variablen aus derCMakeCache.txt -Datei zu entfernen, wobei Globbing-Ausdrücke mit * und ? unterstützt werden. Die Option kann für beliebig viele CACHE Einträge wiederholt werden.

Verwenden Sie mit Vorsicht, Sie können Ihre CMakeCache.txt nicht funktionsfähig machen.

-G <generator-name>

Geben Sie einen Build-Systemgenerator an.

CMake unterstützt möglicherweise mehrere native Build-Systeme auf bestimmten Plattformen. Ein Generator ist für die Erzeugung eines bestimmten verantwortlichbausystem. Mögliche Generatornamen sind im Handbuchcmake-generators(7) angegeben.

Wenn nicht angegeben, überprüft CMake die CMAKE_GENERATOR environmentvariable und greift ansonsten auf eine eingebaute Standardauswahl zurück.

-T <toolset-spec>

Toolset-Spezifikation für den Generator, falls unterstützt.

Einige CMake-Generatoren unterstützen eine Toolset-Spezifikation, um dem nativen Build-System mitzuteilen, wie ein Compiler ausgewählt wird. Siehe dieCMAKE_GENERATOR_TOOLSET Variable für Details.

-A <platform-name>

Geben Sie den Plattformnamen an, falls vom Generator unterstützt.

Einige CMake-Generatoren unterstützen einen Plattformnamen, der dem Build-System gegeben werden muss, um einen Compiler oder ein SDK auszuwählen. Siehe dieCMAKE_GENERATOR_PLATFORM Variable für Details.

-Wno-dev

Entwickler-Warnungen unterdrücken.

Unterdrückt Warnungen, die für den Autor derCMakeLists.txt-Dateien gedacht sind. Standardmäßig wird dies auch ausschaltendepräkationswarnungen.

-Wdev

Entwicklerwarnungen aktivieren.

Aktivieren Sie Warnungen, die für den Autor der CMakeLists.txt -Dateien bestimmt sind. Standardmäßig werden dadurch auch Deprecation-Warnungen aktiviert.

-Werror=dev

Machen Entwickler Warnungen Fehler.

Machen Sie Warnungen, die für den Autor der CMakeLists.txt fileserrors . Standardmäßig werden dadurch auch veraltete Warnungen als Fehler aktiviert.

-Wno-error=dev

Machen Entwickler Warnungen nicht Fehler.

Machen Sie Warnungen, die für den Autor der CMakeLists.txt Dateien noterrors . Standardmäßig werden dadurch auch veraltete Warnungen als Fehler deaktiviert.

-Wdeprecated

Aktivieren Sie Warnungen zu veralteten Funktionen.

Aktivieren Sie Warnungen für die Verwendung veralteter Funktionen, die für den Autor der CMakeLists.txt -Dateien bestimmt sind.

-Wno-deprecated

Unterdrückt veraltete Funktionalitätswarnungen.

Unterdrückt Warnungen für die Verwendung veralteter Funktionen, die für den Autor der CMakeLists.txt -Dateien gedacht sind.

-Werror=deprecated

Machen Sie veraltete Makro- und Funktionswarnungen zu Fehlern.

Machen Sie Warnungen für die Verwendung von veralteten Makros und Funktionen, die für den Autor der CMakeLists.txt Dateien gedacht sind, Fehler.

-Wno-error=deprecated

Machen Sie veraltete Makro- und Funktionswarnungen zu keinen Fehlern.

Machen Sie Warnungen für die Verwendung veralteter Makros und Funktionen, die für den Autor der CMakeLists.txt -Dateien gedacht sind, nicht für Fehler.

-L

Nicht erweiterte zwischengespeicherte Variablen auflisten.

List CACHE Variablen führen CMake aus und listen alle Variablen aus dem CMake CACHE auf, die nicht als INTERNAL oder ADVANCED markiert sind.Dies zeigt effektiv die aktuellen CMake-Einstellungen an, die dann mit der Option -D geändert werden können. Das Ändern einiger Variablen kann dazu führen, dass weitere Variablen erstellt werden. Wenn A angegeben ist, werden auch erweiterte Variablen angezeigt. Wenn H angegeben ist, wird alsodisplay Hilfe für jede Variable.

-N

Nur Ansichtsmodus.

Nur den Cache laden. Führen Sie configure und generatesteps nicht aus.

--graphviz=

Graphviz von Abhängigkeiten generieren, siehe CMakeGraphVizOptions für mehr.

Generieren Sie eine Graphviz-Eingabedatei, die alle Bibliotheks- und ausführbaren Abhängigkeiten im Projekt enthält. Weitere Informationen finden Sie in der Dokumentation zuCMakeGraphVizOptions .

--system-information

Dump Informationen über dieses System.

Dump eine breite Palette von Informationen über das aktuelle System. Wenn runfrom oben in einem Binärbaum für ein CMake-Projekt ausgeführt wird, werden zusätzliche Informationen wie Cache, Protokolldateien usw. ausgegeben.

--log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE>

Legen Sie die Protokollebene fest.

Der Befehl message() gibt nur Nachrichten der angegebenen Protokollstufe oder höher aus. Die Standardprotokollebene ist STATUS.

Um eine Protokollebene zwischen CMake-Läufen beizubehalten, legen Sie stattdessenCMAKE_MESSAGE_LOG_LEVEL als Cache-Variable fest.Wenn sowohl die Befehlszeilenoption als auch die Variable angegeben sind, hat die Befehlszeilenoption Vorrang.

Aus Gründen der Abwärtskompatibilität wird --loglevel auch als Asynonym für diese Option akzeptiert.

--log-context

Aktivieren Sie den message() Befehl, der den an jede Nachricht angehängten Kontext ausgibt.

Diese Option aktiviert die Anzeige des Kontexts für den aktuellen CMake-Lauf only.To stellen Sie sicher, dass der Kontext für alle nachfolgenden CMake-Läufe persistent ist, und legen Sie stattdessenCMAKE_MESSAGE_CONTEXT_SHOW als Cache-Variable fest.Wenn diese Befehlszeilenoption angegeben ist, wird CMAKE_MESSAGE_CONTEXT_SHOWignoriert.

--debug-trycompile

Löschen Sie nicht den try_compile() Build-Baum.Nur nützlich für jeweils ein try_compile() .

Löschen Sie nicht die Dateien und Verzeichnisse, die für try_compile()-Aufrufe erstellt wurden. Dies ist nützlich beim Debuggen fehlgeschlagener try_compiles. Es kann jedoch die Ergebnisse der Try-Compiles ändern, da alter Müll von einem früheren Try-Compile dazu führen kann, dass ein anderer Test entweder falsch besteht oder fehlschlägt. Diese Option wird am besten für jeweils einen Kompilierungsversuch und nur beim Debuggen verwendet.

--debug-output

Setzen Sie cmake in einen Debug-Modus.

Drucken Sie zusätzliche Informationen während des Cmake-Laufs wie Stack-Traces mitmessage(SEND_ERROR) Aufrufen.

--debug-find

Setzen Sie cmake find-Befehle in einen Debug-Modus.

Drucken Sie zusätzliche Find-Aufrufinformationen während des Cmake-Laufs an standarderror. Die Ausgabe ist für den menschlichen Verzehr und nicht zum Parsen bestimmt.Siehe auch die Variable CMAKE_FIND_DEBUG_MODE zum Debuggenein lokaler Teil des Projekts.

--trace

Setzen Sie cmake in den Trace-Modus.

Gibt eine Ablaufverfolgung aller getätigten Anrufe und von wo aus aus.

--trace-expand

Setzen Sie cmake in den Trace-Modus.

Wie --trace , jedoch mit erweiterten Variablen.

--trace-format=<format>

Setzen Sie cmake in den Trace-Modus und legen Sie das Trace-Ausgabeformat fest.

<format> kann einer der folgenden Werte sein.

human

Druckt jede Trace-Zeile in einem für Menschen lesbaren Format. Dies ist das Standardformat.

json-v1

Druckt jede Zeile als separates JSON-Dokument. Jedes Dokument wird durch einen Zeilenumbruch getrennt ( \n ). Es ist garantiert, dass Nonewline-Zeichen in einem JSON-Dokument vorhanden sind.

JSON-Trace-Format:

{ "file": "/full/path/to/the/CMake/file.txt", "line": 0, "cmd": "add_executable", "args": , "time": 1579512535.9687231, "frame": 2}

Die Mitglieder sind:

file

Der vollständige Pfad zur CMake-Quelldatei, in der die Funktion aufgerufen wurde.

line

Die Zeile in file des Funktionsaufrufs.

defer

Optionales Element, das vorhanden ist, wenn der Funktionsaufruf verschoben wurdeby cmake_language(DEFER). Falls vorhanden, ist sein Wert astring, der den verzögerten Aufruf <id> .

cmd

Der Name der aufgerufenen Funktion.

args

Eine String-Liste aller Funktionsparameter.

time

Zeitstempel (Sekunden seit Epoche) des Funktionsaufrufs.

frame

Stapelrahmentiefe der aufgerufenen Funktion.

Zusätzlich enthält das erste ausgegebene JSON-Dokument denversion Schlüssel für die aktuelle Haupt- und Nebenversion des

JSON-Trace-Formats:

{ "version": { "major": 1, "minor": 1 }}

Die Mitglieder sind:

version

Gibt die Version des JSON-Formats an. Die Version enthält Amajor- und Minor-Komponenten, die semantischen Versionskonventionen folgen.

--trace-source=<file>

Versetzen Sie cmake in den Trace-Modus, geben Sie jedoch nur Zeilen einer bestimmten Datei aus.

Mehrere Optionen sind zulässig.

--trace-redirect=<file>

Setzen Sie cmake in den Trace-Modus und leiten Sie die Trace-Ausgabe in eine Datei anstelle von stderr um.

--warn-uninitialized

Warnt vor nicht initialisierten Werten.

Gibt eine Warnung aus, wenn eine nicht initialisierte Variable verwendet wird.

--warn-unused-vars

Tut nichts. In CMake-Versionen 3.2 und darunter wurden Warnungen über nicht verwendete Variablen aktiviert. In den CMake-Versionen 3.3 bis 3.18 war die Option broken.In CMake 3.19 und höher Die Option wurde entfernt.

--no-warn-unused-cli

Warnen Sie nicht vor Befehlszeilenoptionen.

Finden Sie keine Variablen, die in der Befehlszeile deklariert, aber nicht verwendet werden.

--check-system-vars

Finden Sie Probleme mit der Variablennutzung in Systemdateien.

Normalerweise werden unbenutzte und nicht initialisierte Variablen nur in CMAKE_SOURCE_DIR und CMAKE_BINARY_DIR gesucht.Dieses Flag weist CMake an, auch vor anderen Dateien zu warnen.

--profiling-output=<path>

Wird in Verbindung mit --profiling-format verwendet, um in einen bestimmten Pfad auszugeben.

--profiling-format=<file>

Aktivieren Sie die Ausgabe von Profildaten des CMake-Skripts im angegebenen Format.

Dies kann die Leistungsanalyse von ausgeführten CMake-Skripten unterstützen. Drittanbieteranwendungen sollten verwendet werden, um die Ausgabe in ein für Menschen lesbares Format zu verarbeiten.

Derzeit unterstützte Werte sind:google-trace Ausgaben im Google Trace-Format, die über die Registerkarte trace:tracing von Google Chrome oder mithilfe eines Plugins für ein Tool wie TraceCompass analysiert werden können.

--preset <preset>--preset=<preset>

Liest eine preset aus<path-to-source>/CMakePresets.json und<path-to-source>/CMakeUserPresets.json. Die Voreinstellung gibt den Generator und das Build-Verzeichnis sowie optional eine Liste von Variablen und anderen Argumenten an, die an CMake übergeben werden sollen. Das aktuelle Arbeitsverzeichnis muss enthaltenvorgabedateien erstellen. Die CMake GUI können auch CMakePresets.json und CMakeUserPresets.json Dateien erkennen. Ausführliche Informationen zu diesen Dateien finden Sie unter cmake-presets(7).

Die Presets werden vor allen anderen Kommandozeilenoptionen gelesen. Die durch das Preset angegebenen Optionen (Variablen, Generator, etc.) können alle überschrieben werden, indem Sie sie manuell in der Befehlszeile angeben. Wenn die Voreinstellung beispielsweise eine Variable mit dem Namen MYVAR auf 1 setzt, der Benutzer sie jedoch auf 2 mit einem-D -Argument setzt, wird der Wert 2 bevorzugt wird.

--list-presets, --list-presets=<>

Listet die verfügbaren Presets auf. Wenn keine Option angegeben ist, werden nur configure presetswill aufgelistet. Das aktuelle Arbeitsverzeichnis muss CMake-Voreinstellungsdateien enthalten.