[CMakeLists]使用CMake后如何将目录内容复制到build目录

这篇具有很好参考价值的文章主要介绍了[CMakeLists]使用CMake后如何将目录内容复制到build目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

你可以用add_custom_command.

说你的目标被调用MyTarget,然后你可以这样做:

add_custom_command(TARGET MyTarget PRE_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy_directory
                       ${CMAKE_SOURCE_DIR}/config/ $<TARGET_FILE_DIR:MyTarget>)

每次构建MyTarget并将"/ config"的内容复制到目标exe/lib最终的目录时,都会执行此操作.

正如马克Lakata在下面评论指出,更换PRE_BUILDPOST_BUILDadd_custom_command确保复制如果生成成功才会发生.

说明

  • ${CMAKE_COMMAND} 是CMake的路径
  • -E 使CMake运行命令而不是构建
  • copy_directory是一个命令行工具
  • config是一个生成器表达式,在$<TARGET_FILE_DIR:MyTarget>文档中描述.
  • 有没有办法让`make clean`知道在项目清理时必须删除复制的文件? (6认同)
  • POST_BUILD可能是更好的选择,这意味着只有在构建成功时才会复制文件. (5认同)
  • 有没有办法复制目录本身而不是内容? (3认同)

除了最佳答案,

要复制目录本身而不是内容,您可以添加/${FOLDER_NAME}到第二个参数的末尾。

像这样:

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy_directory
                       ${CMAKE_SOURCE_DIR}/config $<TARGET_FILE_DIR:${PROJECT_NAME}>/config)

使用符号链接


CMake 通过以下方式启用符号链接create_symlink文章来源地址https://www.toymoban.com/news/detail-600174.html

add_custom_command(TARGET ${CMAKE_PROJECT_NAME} PRE_BUILD
                   COMMAND ${CMAKE_COMMAND} -E create_symlink
                   ${CMAKE_SOURCE_DIR}/config $<TARGET_FILE_DIR:${PROJECT_NAME}>/config)

到了这里,关于[CMakeLists]使用CMake后如何将目录内容复制到build目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vs项目转cmake(.sln转CMakeLists.txt)

    proj2cmake https://github.com/mrpi/proj2cmake 另附cmake镜像站:https://cmake.org/files/ 编译proj2cmake时报错: 可参考 https://www.cnblogs.com/tang-zhou-zhou/p/16067695.html 编译boost 使用vs2017的x64_x86交叉工具命令提示符进入解压后的boost文件夹运行bootstrap.bat toolset:编译器 msvc-17.0(vs2017)gcc(mingw) pre

    2024年02月09日
    浏览(43)
  • CMake高级用法实例分析(学习paddle官方的CMakeLists)

    cmake基础学习教程 https://juejin.cn/post/6844903557183832078 项目名 variable 选项名 help_text 描述、解释、备注 value 选项初始化值(除ON而外全为OFF)) 这个大写的SET其实和小写的set是一样的, CMake中的命令不区分大小写,CMake中的变量区分大小写 官方手册 比较好的案例博客https://blog.c

    2024年02月09日
    浏览(37)
  • 【gcc, cmake, eigen, opencv,ubuntu】五.CMakeLists.txt编写

    1.CMakeLists.txt模板 一个使用opencv 的 CMakeLists.txt 对应的目录: 2.设置编程语言版本 3.设置编译类型Debug,Release 4.设置获取文件列表 MATH_LIB_SRC 指示:找到的math目录下的 c文件 5.添加include目录 表示在src/include/目录中寻找头文件 include_directories(src/include) 6.配置编译选项 add_compile_

    2024年02月09日
    浏览(35)
  • 解决Cmake编译 OPENCV_DNN_CUDA 报错: CMake Error at modules/dnn/CMakeLists.txt:39.

    首先,在camke编译过程中,不仅仅需要看报错的error部分,往上滑动会看见一行信息: 如果你没有装Cudnn,那么装上Cudnn再试试。注意,安装版本最低是7.5! 如果你装了7.5及以上版本还是会报错和有上面这行信息,请注意,这可能是在Cudnn 8版本以后的问题! 原因是cudnn 8的版本

    2024年02月16日
    浏览(41)
  • 如何复制禁止复制的内容

    今天找到一段代码,但是复制时页面提示“这个是VIP会员才有的权限”。我该怎么复制呢。 现在的平台大都是用钱说话,以便响应知识付费的主张。对错我就不说了,我认为既然我有权利看到代码,当然也有权把他复制下来。这并不涉及侵权。 以csdn为例,在chrome里F12,一层

    2024年02月08日
    浏览(35)
  • CMake Error at CMakeLists.txt:5 (find_package):By not providing “FindOpenCV.cmake“ in CMAKE_MODULE

    CMake Error at CMakeLists.txt:5 (find_package): By not providing \\\"FindOpenCV.cmake\\\" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by \\\"OpenCV\\\", but CMake did not find one.  CMake Error at CMakeLists.txt:5 (find_package): By not providing \\\"FindOpenCV.cmake\\\" in CMAKE_MODULE_PATH this project has asked CMake to

    2024年04月27日
    浏览(38)
  • ROS功能包目录下CMakeLists.txt

    CMake基础教程(24)add_executable生成目标可执行文件 CMake中add_executable的使用 CMake中的add_executable命令用于使用指定的源文件向项目(project)添加可执行文件,其格式如下: 这里我们用到 Normal Executables这种用法,Normal Executables:添加一个名为的可执行目标(executable target),该目标将

    2024年02月11日
    浏览(33)
  • Linux cp命令:复制文件和目录

    cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。 cp 命令的基本格式如下: 选项: -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍; -d:如果源文件为软链接(对硬链接无效),则复制

    2024年02月06日
    浏览(46)
  • CMake Error at CMakeLists.txt: (FIND_PACKAGE)找不到ncnn包的解决方法

    demo指路:https://github.com/EdVince/Stable-Diffusion-NCNN 在 Linux端 使用 cmake 编译文件时, 执行 cmake .. 命令,报错: 拉取 ncnn 的代码库(包括submodule)后没有 build and Install ,所以 cmake 时找不到对应的包,只需要让它找到对应的包即可,分为2步: 生成对应的cmake文件( ncnnConfig.cmake

    2024年02月11日
    浏览(133)
  • 前端打包后生成的dist 或 build目录,如何在本地启动服务运行

    前端打包后生成的dist/build目录,如何在本地启动服务运行 运行 npn run build ,会打包后会产生 dist 或 build 目录 一般情况下,直接打开dist 或 build 目录下的 index.html 会在浏览器看到内容。 然而发现网页一片空白,打开了控制台,看到一片404的各种找不到资源,或者出现跨域的

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包