2012-11-28 3 views
7

プロローグ:私はあなたがディレクトリをインストールする際にcmakeのは、元のファイルのパーミッションを維持させるにはどうすればよいのドキュメントcmakeの "install directory"ディレクティブでファイルパーミッションを保持するには?

cmakeの-2.8.10.2

でこれを欠落しているため馬鹿ですか?手元にあるプロジェクトでは、ソースツリーからインストールツリーにいくつかのディレクトリをコピーすることが基本です。

実行可能なスクリプトが不正なファイルアクセス許可でコピーされていることを除いて、すべて正常に動作します。実際には、はありません。元のファイルのアクセス許可のは保持されます。 FILE_PERMISSIONSとDIRECTORY_PERMISSIONSを使用してグローバルに権限を設定することは、私がやりたいことではなく、率直に言って、このコンテキストではハックになります。シェルスクリプトの世界で

、私はこのような単純な何かをしたい:

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

また、あなたがのinstall(PROGRAMS署名を使用することができます。

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

答えて

10

をドキュメントinstall()を呼び出すときUSE_SOURCE_PERMISSIONSを使用することを提案していますこのコマンド。詳細についてはSee docsをご覧ください。

+0

まあ、私はばかです。私は何とかドキュメントのそのオプションのすぐ上に光沢をつけた。それを指摘してくれてありがとう。 – smcdow

+5

ありがとうございます。 'USE_SOURCE_PERMISSIONS'は' install(DIRECTORY) 'でしか動作しないことに言及したいと思います。答えからすぐには分かりませんでした。 – congusbongus

関連する問題