在CMake中,如果目录尚不存在,我想创建一个目录。我怎么能这样做?
答案 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参数。