So speichern Sie CMake Build-Einstellungen

8

Es gibt oft viele Schalter, die aktiviert / deaktiviert werden sollen, wenn versucht wird, ein Projekt zu erstellen, das CMake verwendet.

Wie speichern Sie die Buildeinstellungen, die von einem Benutzer vorgenommen wurden, damit ein Build auf einem anderen Computer reproduziert werden kann? Gibt es irgendeine Art von Exportfunktionalität oder kopierst du einfach den Build (Cache) Ordner?

    
Beachwalker 11.07.2013, 08:24
quelle

2 Antworten

11

Es gibt eine Option zum Vorladen eines Skripts zum Füllen der Cache-Datei mit cmake mit

%Vor%

Der initiale Cache ist eine Datei, die Variablen enthält, die auf die folgende Weise eingestellt sind, z. für das Installationspräfix:

%Vor%

Übergeben Sie diese Datei dann einfach, während Sie den Cache mit cmake füllen. Einfach, aber das wusste ich nicht und fand keine gute Probe. Als Pluspunkt ist dies ein plattformunabhängiger Weg, anstatt ein Skript oder eine Batch-Datei zu schreiben.

Ich erstelle einen separaten Skriptordner neben den Quellen aus dem generierten Out-of-Source-Build-Ordner. Meine Dateien mit den Einstellungen werden dort für jede zu erstellende Datei / ausführbare Datei gespeichert.

Sie können alle Einstellungen in eine separate Datei schreiben und am Ende des Tages sind nur noch ein paar Anrufe übrig:

%Vor%

Einfach, nicht wahr?

Automatisch initial-cache Datei erzeugen:

Wenn Sie sich auf einem * nix-System befinden, können Sie Folgendes in Ihrem Build-Verzeichnis ausführen:

%Vor%

Unter Windows sollte etwas wie das folgende Skript cmake funktionieren:

%Vor%

Speichern Sie es beispielsweise in get_cache_vars.cmake und führen Sie es wie folgt aus:

%Vor%     
Beachwalker 11.07.2013, 16:14
quelle
1

Der beste Weg, dies auf einer anderen Maschine zu replizieren, ist die Verwendung von -DSETTING = TRUE / FALSE args.

Wenn Sie eine Menge dieser Optionen von der Standardeinstellung unterscheiden, können Sie Ihren cmake-Aufruf mit einem Skript erstellen.

Beispiel:

%Vor%

Verteilen Sie das Helfer-Bash-Skript an den anderen Rechner.

    
JonnyRo 11.07.2013 15:50
quelle