CMake是一组方便的属性,对应于在底层编译器中设置某些功能测试宏。例如,使用gcc
:
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
将导致传递以下标志:
-std=c11 -Wpedantic
还将设置功能测试宏
_ISOC11_SOURCE
这很有效,因为我可以依靠CMake来处理编译器之间的差异。我正在查看CMakes支持的the list of feature test macros,但我无法找到与_POSIX_C_SOURCE
功能测试相关的任何内容。除add_definitions(-D_POSIX_C_SOURCE=200809L)
之外还有更好的方法吗?