2012-11-28 8 views
7

Prolog: Ich bin ein Idiot für diese in der Dokumentation fehltWie erhalten Dateiberechtigungen mit cmake "Installationsverzeichnis" Direktive?

cmake-2.8.10.2

Wie wollen Sie machen Cmake die ursprünglichen Dateiberechtigungen erhalten, wenn ein Verzeichnis zu installieren? Für das vorliegende Projekt möchte ich im Wesentlichen einige Verzeichnisse aus meinem Quellbaum in den Installationsbaum kopieren. Zu:

Alles funktioniert wie erwartet - außer dass ausführbare Skripts mit falschen Dateiberechtigungen kopiert werden. In der Tat werden keine der ursprünglichen Dateiberechtigungen beibehalten. Das globale Festlegen von Berechtigungen mit FILE_PERMISSIONS und DIRECTORY_PERMISSIONS ist etwas, was ich nicht tun möchte, und ehrlich gesagt, wäre in diesem Zusammenhang ein Hack.

In der Shell-Scripting-Welt, würde ich etwas Einfaches wie dies tun:

for i in config runp ; do 
    tar cf - $i | tar -C $CMAKE_INSTALL_PREFIX -xf - 
done 

Antwort

10

Dokumentation schlägt USE_SOURCE_PERMISSIONS verwenden, wenn install() Aufruf: Alternativ

install(
    DIRECTORY config runp 
    DESTINATION ${CMAKE_INSTALL_PREFIX} 
    USE_SOURCE_PERMISSIONS 
    PATTERN ".svn" EXCLUDE 
    PATTERN ".git" EXCLUDE 
    PATTERN "start_collection.snl" EXCLUDE 
) 

, können Sie install(PROGRAMS Signatur verwenden dieser Befehl. See docs für weitere Informationen.

+0

Nun, ich bin ein Idiot. Ich habe diese Option in der Dokumentation irgendwie überstrichen. Danke, dass du es aufgezeigt hast. – smcdow

+5

Danke; wollte nur erwähnen, dass 'USE_SOURCE_PERMISSIONS' nur mit' install (DIRECTORY) 'funktioniert. Es war nicht sofort aus der Antwort ersichtlich. – congusbongus

Verwandte Themen