【发布时间】:2011-04-11 18:06:34
【问题描述】:
在 CMake 中,如果目录不存在,我想创建一个目录。我该怎么做?
【问题讨论】:
标签: cmake
在 CMake 中,如果目录不存在,我想创建一个目录。我该怎么做?
【问题讨论】:
标签: cmake
你想什么时候创建目录?
在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})
【讨论】:
要在安装时创建目录,
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})
【讨论】:
除了 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参数。
【讨论】: