在CMake中创建目录

时间:2010-09-13 15:56:48

标签: cmake

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

3 个答案:

答案 0 :(得分:193)

您何时想要创建目录?

在构建系统生成

在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})

答案 1 :(得分:18)

要在安装时创建目录,

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})

答案 2 :(得分: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参数。