我正在尝试在cmake项目调用之前将自定义路径(相当于VC14宏,即$(Intdir))传递给CMAKE_RUNTIME_OUTPUT_DIRECTORY。
通过测试我注意到没有'/'的任何东西作为CMAKE_RUNTIME_OUTPUT_DIRECTORY的第一个字符导致VC解决方案将自定义路径附加到项目源目录 - 如果'/'是第一个字符,则前缀不是自动的产生。我如何提供宏的自定义路径?
答案 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")