如何在cmake安装中使用通配符

时间:2019-07-02 14:29:01

标签: cmake install wildcard

我可以安装一个特定文件。在同一命令中使用通配符时,它抱怨文件不存在。

这是可行的

install(FILES  ${CMAKE_CURRENT_BINARY_DIR}/libproduction_rdict.pcm DESTINATION ${LIBRARY_OUTPUT_PATH})

这是一个不工作的人

install(FILES  ${CMAKE_CURRENT_BINARY_DIR}/*_rdict.pcm DESTINATION ${LIBRARY_OUTPUT_PATH})

错误消息是:

-- Install configuration: ""
CMake Error at Source/cmake_install.cmake:49 (file):
  file INSTALL cannot find
  "/home/wxie/AI/CUDA/cuda_exmaple/example_2/Build/Source/*_rdict.pcm".
Call Stack (most recent call first):
  cmake_install.cmake:42 (include)

2 个答案:

答案 0 :(得分:0)

命令流install(FILES)要求所有文件都明确列出。

要按模式安装多个文件,请使用install(DIRECTORY)及其 PATTERN 选项:

install(DIRECTORY  ${CMAKE_CURRENT_BINARY_DIR} DESTINATION ${LIBRARY_OUTPUT_PATH}
    FILES_MATCHING PATTERN "*_rdict.pcm")

有关install(DIRECTORY)和模式的更多信息,可以在documentation中找到。

答案 1 :(得分:0)

好。这就是我最终要做的事情:

add_custom_target(move_pcmfile
COMMAND mv ${BUILD_DIR}/Source/*.pcm  ${LIBRARY_OUTPUT_PATH})

在“ make”之后,我只是执行“ make move_pcmfile”。这似乎是解决我的问题的最方便的方法。