CMake将项目路径添加为RUNTIME_OUTPUT_DIR的前缀

时间:2016-05-23 16:39:28

标签: cmake

我正在尝试在cmake项目调用之前将自定义路径(相当于VC14宏,即$(Intdir))传递给CMAKE_RUNTIME_OUTPUT_DIRECTORY。

通过测试我注意到没有'/'的任何东西作为CMAKE_RUNTIME_OUTPUT_DIRECTORY的第一个字符导致VC解决方案将自定义路径附加到项目源目录 - 如果'/'是第一个字符,则前缀不是自动的产生。我如何提供宏的自定义路径?

1 个答案:

答案 0 :(得分:0)

这些东西直接编码到CMake的Visual Studio生成器中。 CMake确实使用绝对路径,如果给出相对路径,它会将其扩展为绝对路径。另请参阅CMake FAQ: Why does CMake use full paths, or can I copy my build tree?

因此,CMake无法识别VS宏,并且 - 因为生成的解决方案无论如何都不可重定位 - 通常不需要它们。

您可以在generator expressions中使用CMAKE_RUNTIME_OUTPUT_DIRECTORY来解决多配置问题。例如。我用CMake 3.5.2测试了以下内容:

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "$<CONFIG>")

对于较旧的CMake版本,您必须使用CMAKE_RUNTIME_OUTPUT_DIRECTORY_<CONFIG>之类的

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "Debug")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "Release")