【问题标题】:Empty RUNTIME_OUTPUT_DIRECTORY空的 RUNTIME_OUTPUT_DIRECTORY
【发布时间】:2016-02-15 09:30:33
【问题描述】:

使用 CMake 处理项目。该项目包含一个可执行文件和一个 python 脚本。这两个文件应该在构建时编译/复制到同一目录中。

我尝试类似:

add_executable( ${myTarget} ${all_c_sources} )
add_custom_command(
  TARGET ${myTarget} POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E copy ${pythonScriptPath} ${RUNTIME_OUTPUT_DIRECTORY}/
)

可执行文件在 ${CMAKE_BINARY_DIR}/Debug 等默认位置构建良好,但 python 脚本的副本失败:

c:\Program Files (x86)\CMake\bin\cmake.exe" -E copy C:/.../script.py /\r

我的目标是尽可能地使用 CMake 默认行为。 有没有简单的方法来获取默认输出路径?

谢谢!

【问题讨论】:

  • 你错过了${RUNTIME_OUTPUT_DIRECTORY/中的右大括号。
  • 为什么是“构建时”而不是“安装时”?
  • 这个项目暂时不需要安装。我们只想在编译后立即执行带有可执行文件的python脚本。

标签: cmake


【解决方案1】:

类似这样的:

add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E copy_if_different
  $<TARGET_FILE:${LIBRARY_NAME}>
  $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>/path/to/where/module/should/be
  COMMENT "Copying file to Runtime directory: " $<TARGET_FILE:${LIBRARY_NAME}>
)

根据您的需要进行调整。

如果您需要了解更多信息,请阅读 CMake Generator Expressions

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 2011-02-12
    • 1970-01-01
    • 2012-09-17
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多