2012-01-13 77 views
5

这里是我的当前设置输出:如何不将发布或调试添加到输出路径?

set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin") 
set(LIBRARY_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin") 
set(RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") 

但出于某种原因我不想(MSVS)也发出文件斌/ Release或Debug文件夹在我的bin文件夹。我能以某种方式意识到使用CMake吗?

谢谢

回答

9

一个similar question被要求在几个月前,当我建议使用target properties和也称为another answer。对于MSVC,您可以在每个配置的基础上完整指定可执行文件,库,档案等的位置。

例如使用类似:

if (MSVC) 
    set_target_properties(${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${youroutputdirectory}) 
    set_target_properties(${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_DEBUG ${youroutputdirectory}) 
    set_target_properties(${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE ${youroutputdirectory}) 
    # etc for the other available configuration types (MinSizeRel, RelWithDebInfo) 
endif (MSVC) 

将放在一个单一的输出目录$ {} youroutputdirectory所有的图书馆,不管是在调试或发布配置。