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 回答