我正在将我的库拆分为仅标头库和已编译库,因此,我第一次尝试使用 CMake 来“构建”,或者更确切地说,公开仅标头库图书馆。
阅读此文档和 CMake 文档,我知道我需要使用没有源的 INTERFACE 库。但是 - 我的头文件必须使用至少 C++11 的 C++ 语言标准版本进行编译。当我实际编译一些东西时,我做了:
set_property(TARGET foo PROPERTY CXX_STANDARD 11)
set_property(TARGET foo PROPERTY CXX_STANDARD_REQUIRED ON)
set_property(TARGET foo PROPERTY CXX_EXTENSIONS OFF)
但那是:
- 不完全是我需要使用仅标头库的代码 - 我需要说“至少 C++11”。
- 不能用于 INTERFACE 库。
我注意到没有set_property(... INTERFACE)
. 那么我应该如何强制依赖代码使用 C++11 或更高版本?
编辑:我对在依赖项中限制确切的C++ 版本选择的答案和限制“至少”的答案都感兴趣——以防后者有问题/困难/不可能。