我想根据平台/编译器/架构/配置将我的库输出到不同的文件夹中,所以它应该如下所示:
平台(ARCH)-compiler(版本) - 构型
一些例子是:
win32-vc12.0-debug
win32-vc12.0-release
win64-vc14.0-debug
win64-vc14.0-release
unix-gcc6.1-debug
unix-gcc6.1-release
unix-clang3.8-debug
unix-clang3.8-release
我实际上不知道如何生成这些,有人可以指导我吗? 谢谢
答案 0 :(得分:3)
项目的一种方式是set the bin directories:
math(EXPR platform_bits "${CMAKE_SIZEOF_VOID_P} * 8")
set(platform_dir ${CMAKE_SYSTEM_NAME}${platform_bits}-${CMAKE_CXX_COMPILER_ID}${CMAKE_CXX_COMPILER_VERSION})
foreach(config DEBUG RELEASE RELWITHDEBINFO MINSIZEREL)
foreach(var CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${config} CMAKE_LIBRARY_OUTPUT_DIRECTORY_${config} CMAKE_RUNTIME_OUTPUT_DIRECTORY_${config})
set(${var} "${CMAKE_BINARY_DIR}/${platform_dir}-${config}")
string(TOLOWER "${${var}}" ${var})
endforeach()
endforeach()
这不会为您提供您正在寻找的确切目录名称,但这是一个良好的开端。您可以查看CMake variables list以获取特定于平台的配置信息列表。然后,您需要应用一些逻辑,将CMake定义的值转换为您正在寻找的特定值。