"make dist" entspricht in CMake

8

Nach FAQ erstellt CMake kein make dist Ziel und Quelle Paket kann mit CPack erstellt werden. Aber CPack erstellt nur einen Tarball des Quellverzeichnisses mit allen Dateien, die nicht mit Mustern in CPACK_SOURCE_IGNORE_FILES übereinstimmen.

Auf der anderen Seite bündelt make dist , das von autotools generiert wird, nur die Dateien, die es kennt, hauptsächlich Quellen, die für die Kompilierung benötigt werden.

Jeder hat eine clevere Möglichkeit, ein Quellpaket mit nur Dateien zu erstellen, die in CMakeLists.txt (und seinen Abhängigkeiten) angegeben sind?

    
marcin 08.03.2012, 21:47
quelle

1 Antwort

0

Ich habe eine Weile darüber nachgedacht und ich werde nicht so tun, als könnte ich ein make dist simulieren, ohne dass dies direkt von CMake selbst unterstützt wird.

Das Problem ist, dass Sie mit CMake auf der einen Seite eine Menge Dateiabhängigkeiten hinzufügen können (zB um Bibliotheken vorzuspielen) und auf der anderen Seite CMake nicht über Abhängigkeiten, die direkt von der generierten Buildumgebung selbst überprüft werden (z. B. Header-Abhängigkeiten).

Hier ist also ein Code, der nur alle CMakeList.txt und Quelldateien sammelt, die mit irgendwelchen Build-Zielen angegeben wurden:

%Vor%

Hinweis : Die verwendete Eigenschaft BUILDSYSTEM_TARGETS muss bei mindestens CMake Version 3.7

Ich sehe den obigen Code als Ausgangspunkt und Beweis des Konzepts. Sie können Bibliotheken, Header usw. auf Bedarfsbasis hinzufügen, aber Sie sollten wahrscheinlich nur , um Ihr Gebot zu erfüllen.

Als Ausgangspunkt siehe z.B. der Link @ usr1234567 in den Kommentaren zur Verfügung gestellt.

Referenzen

Florian 08.04.2017 21:38
quelle

Tags und Links