2016-05-23 133 views
0

我試圖在cmake項目調用之前將自定義路徑(相當於VC14宏,即$(Intdir))傳遞給CMAKE_RUNTIME_OUTPUT_DIRECTORY。CMake將項目路徑作爲前綴添加到RUNTIME_OUTPUT_DIR

通過測試我注意到任何沒有'/'作爲CMAKE_RUNTIME_OUTPUT_DIRECTORY的第一個字符導致VC解決方案將自定義路徑附加到項目源dir - 如果'/'是第一個字符,則該前綴不是自動的 - 生成。我如何使用宏提供自定義路徑?

+0

請舉例說明什麼問題,你想什麼確切地說 – Antonio

回答

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") 
相關問題