如何将文件复制到.exe文件所在的目录中

时间:2011-10-10 14:13:43

标签: windows cmake

这我可能很琐事,但我还没弄明白。我在与源代码相同的目录中有一个.ini文件,我希望cmake将这个inifile.ini复制到生成.exe文件的目录中。这个目录可能会有所不同,具体取决于我是否进行发布或调试构建,以及我是否进行了内核或源外构建。我走到这一步:

configure_file(${myapp_SOURCE_DIR}/src/myinifile.ini
               ${myapp_BINARY_DIR}/bin/${????}/myinifile.ini COPYONLY)

但我需要在目标路径中包含bin / Debug或bin / Release,具体取决于构建类型。是否有一个我可以使用的cmake变量指向将生成.exe的实际目录。或者最好的方法是什么。

1 个答案:

答案 0 :(得分:2)

您可以获取LOCATION属性来查找目标的输出路径。接下来,您可以在add_custom_command中使用其值:

get_target_property(exepath target_name LOCATION)
get_filename_component(outputpath "${exepath}" PATH)
add_custom_command(TARGET target_name POST_BUILD
    COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${myapp_SOURCE_DIR}/src/myinifile.ini" "${outputpath}")

此代码将自动处理构建类型依赖项。