cmake: So erstellen Sie ein Skript zum Kopieren von Dateien, die mein Programm begleiten

8

Ich versuche meinen Build-Prozess mit cmake zu automatisieren. Derzeit gibt es nur ein Problem:

Wo ist, in cmake's Philosophie (wenn es eine gibt), der beste Ort um das Kopieren von Datendateien zu kopieren.

Ich habe eine Bibliothek und ein paar Beispiele. Die Beispiele benötigen die Daten.

Ich mache derzeit folgendes:

Ich verwende einen benutzerdefinierten Befehl in der CMakeLists.txt jedes Beispiels, um alle Daten in die zu kopieren CMAKE_CURRENT_BINARY_DIR in einem Post-Build-Schritt. Ich benutze dies in meinem Debugging-Workflow, daher wird noch kein Installationsziel ausgeführt.

Das funktioniert ganz gut, hat aber gewisse Nachteile:

  1. Das Kopieren findet jedes Mal statt, wenn das Projekt erstellt wird. Bei VS 2005 tritt dies manchmal auf, auch wenn es nicht neu erstellt wird. Da die Datenordner groß sind, benötigt das Kopieren Zeit und es wird ein bisschen nervig.
  2. Ich bin mir sicher, dass dies eine sehr ungeschickte Art ist, dies zu tun.

Ich möchte diese Verzeichnisse in die ausführbaren Pfade kopieren, daher brauche ich keine Hinweise, wie man das Debug-Arbeitsverzeichnis setzt

Die perfekte Zeit, um diese Verzeichnisse zu kopieren, wäre bei cmake configuration / generation time, zumindest denke ich das. Soll ich das tun, und wie würde ich das tun?

    
AndreasT 20.10.2009, 11:13
quelle

1 Antwort

12

Wie kürzlich in dieser Frage zu sehen war, können Sie configure_file um Dateien in das Build-Verzeichnis zu kopieren:

%Vor%

Das geschieht einmal zur Build-Zeit und nur bei Bedarf.

    
richq 21.10.2009, 14:07
quelle