4

インストール時にCMakeinstall(DIRECTORIES...)フォームを使用してヘッダーをコピーします。

install(DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}
  DESTINATION include
  FILES_MATCHING PATTERN "*.h")

ただし、このコマンドは空のディレクトリ(ヘッダーが見つからないディレクトリ) を作成します。したがって、インストール プロセス中にこれらの空のディレクトリを見つけて削除したいと考えています。

install(CODE "execute_process(
  COMMAND find -type d -empty -exec rmdir '{}' ';'
  WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}
  ERROR_FILE ${CMAKE_CURRENT_BINARY_DIR}/prune_empty_dirs.err)")

上記のコマンドを使用すると、ファイルには次のものprune_empty_dirs.errが含まれます。

find: missing argument to `-exec'

中括弧をエスケープしようとしましたが、同じ動作になります。私は何を間違っていますか?ありがとう、

4

1 に答える 1

2

解決策を見つけました。区切り文字の ";" ではなく、"{}" ではありません。次の構文は私にとってはうまくいきました(CMake 2.8.9):

--exec rm {} "\;"
于 2014-10-15T16:36:24.600 に答える