CMake:安装(FILES ...)包含文件列表的文件

时间:2017-04-28 17:58:24

标签: cmake

考虑我有一个包含(绝对)文件路径列表的简单文本文件。

有没有简单的方法让CMake安装这些文件(就像使用了; move quick-help tooltips to the minibuffer (setq jedi:tooltip-method nil) ; disable all auto-completion unless explicitly invoked with M-tab (setq ac-auto-show-menu nil) (setq ac-auto-start nil) (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) ; start jedi (add-hook 'python-mode-hook 'jedi:setup) 一样)? 应保持目录结构(减去一些常量前导路径组件)。

现在我能想到的唯一选择是使用

install(FILES ...)

使用普通的shell命令来做,但这似乎首先打败了使用构建系统的目的......

1 个答案:

答案 0 :(得分:1)

我相信这会解决问题:

# 'filename' is the file that contains a list ';' separated paths relative to that input file
function(install_my_files filename)
    file(READ ${filename} relative_paths)
    get_filename_component(parent_directory ${filename} DIRECTORY) # parent directory of input file
    foreach(relative_path ${relative_paths})
        get_filename_component(relative_directory ${relative_path} DIRECTORY)
        install(FILES "${parent_directory}/${relative_path}" DESTINATION ${relative_directory})
    endforeach()
endfunction()