我使用CMake的install(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'
我试图避开括号,但结果仍然出现了相同的行为。我做错了什么?谢谢。
-exec rmdir {} ;
或者是-exec rmdir ''{}'' '';''
或者是-exec \"rmdir {} ;\"
。 - ixScifind
命令作为-c
参数执行bash
,我成功实现了我的目标;感谢你的帮助。 - piwifile(GLOB)
命令不太自信;文档中指出:我们不建议使用GLOB从源树中收集源文件列表。如果没有CMakeLists.txt文件在添加或删除源文件时发生更改,则生成的构建系统无法知道何时要求CMake重新生成。
- piwi