CMake输出目录(按平台)
CMake output directory by platform
我想根据平台/编译器/架构/配置将我的库输出到不同的文件夹中,所以它应该是这样的:
平台(arch(-编译器(版本(-配置
例如:
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
事实上,我不知道如何生成这些,有人能指导我吗?感谢
一种方法是为项目设置bin目录:
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变量列表中查看特定于平台的配置信息列表。然后,您需要应用一些逻辑,将CMake定义的值转换为您要查找的特定值。
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 我的代码在不同的平台上给出不同的输出
- 如何在嵌入式平台中管理不同引脚输出板的代码,以实现更好的HAL管理
- 如何让所有平台编译器为 NaN 输出相同的字符串
- 如果输出是平台端序,ICONV写入BOM的问题
- CMake输出目录(按平台)