假设我想使用特定的Linux/POSIX功能,该功能是根据feature test macros有条件地提供的。例如,类型cpu_set_t
,宏CPU_SET_ZERO
和功能sched_setaffinity
。CMake是否支持glibc功能测试宏
理想情况下,我只是想告诉CMake我需要这些,它应该找出哪些额外的功能测试宏设置或失败,如果不能在当前系统上提供一个漂亮的错误消息。那可能吗?
我知道我可以在themanpages查找和手动使用add_definitions(-D_GNU_SOURCE)
,但是一旦进行了介绍,并弃用不同版本的POSIX标准的多个功能组合,可以成为乏味。根据我的经验,在不同版本的glibc实现中保持可移植性会变得很困难。
有CMake platform checks,但他们似乎只是帮助检查。所以我在cmake
而不是make
中得到错误,但我仍然需要手动计算出正确的功能测试宏。
cmake-compile-features似乎只提供与编译器直接相关的功能,而不是库。