9

Prolog : ドキュメントでこれを見逃している私はばかです

cmake-2.8.10.2

ディレクトリをインストールするときにcmakeに元のファイルのアクセス許可を保持させるにはどうすればよいですか? 当面のプロジェクトでは、基本的にいくつかのディレクトリをソース ツリーからインストール ツリーにコピーしたいと考えています。ウィット:

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

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

シェル スクリプトの世界では、次のような簡単なことをします。

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

1 に答える 1

13

ドキュメントはUSE_SOURCE_PERMISSIONS、呼び出し時に使用することを提案していinstall()ます:

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

install(PROGRAMSまたは、このコマンドの署名を使用できます。詳細については、ドキュメントを参照してください。

于 2012-11-29T10:43:51.760 に答える