在CMake中创build一个目录
在CMake中,我想创build一个目录,如果它不存在。 我怎样才能做到这一点?
你想什么时候创build目录?
在构build系统生成
当CMake生成构build系统时要创build一个目录,
file(MAKE_DIRECTORY ${directory})
在build造时间
在add_custom_command()
命令(它向生成的生成系统添加一个自定义生成规则)和add_custom_target()
命令(它添加一个没有输出的目标,所以总是会生成),你可以指定在生成时执行的命令时间。 通过执行命令${CMAKE_COMMAND} -E make_directory
创build一个目录。 例如:
add_custom_target(build-time-make-directory ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
在安装时
要在安装时创build一个目录,
install(DIRECTORY DESTINATION ${directory})
要在安装时创build一个目录,
install(DIRECTORY DESTINATION ${directory})
这些都将在configuration时运行:
file(MAKE_DIRECTORY ${directory}) execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
要在构build过程中创build,请使用自定义目标:
add_custom_target(mytargetname ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
除了Chin Huang的回复之外,你还可以在add_custom_command
时使用add_custom_command
来做到这add_custom_command
:
add_custom_command(TARGET ${target_name} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
当你的目录是用PRE_BUILD |创build的时候,你也可以改变这个时刻 PRE_LINK | POST_BUILD参数。