【问题标题】:Creating a directory in CMake在 CMake 中创建目录
【发布时间】:2011-04-11 18:06:34
【问题描述】:

在 CMake 中,如果目录不存在,我想创建一个目录。我该怎么做?

【问题讨论】:

    标签: cmake


    【解决方案1】:

    你想什么时候创建目录?

    在构建系统生成时

    在CMake生成构建系统时创建目录,

    file(MAKE_DIRECTORY ${directory})
    

    在构建时

    add_custom_command() 命令(将自定义构建规则添加到生成的构建系统)和add_custom_target() 命令(添加一个没有输出的目标,因此它将始终被构建)中,您将命令指定为在构建时执行。通过执行命令${CMAKE_COMMAND} -E make_directory 创建一个目录。例如:

    add_custom_target(build-time-make-directory ALL
        COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
    

    安装时

    要在安装时创建目录,

    install(DIRECTORY DESTINATION ${directory})
    

    【讨论】:

    • 简洁快速。直接击中目标!谢谢。
    【解决方案2】:

    要在安装时创建目录,

    install(DIRECTORY DESTINATION ${directory})
    

    这些将两者在配置时运行:

    file(MAKE_DIRECTORY ${directory})
    execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
    

    要在构建期间创建,请使用自定义目标:

    add_custom_target(mytargetname ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
    

    【讨论】:

      【解决方案3】:

      除了 Chin Huang 的回复,你也可以在构建时使用add_custom_command

      add_custom_command(TARGET ${target_name} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
      

      您还可以更改使用PRE_BUILD 创建目录的时刻 | PRE_LINK | POST_BUILD参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-20
        • 2012-01-16
        相关资源
        最近更新 更多