CMAKE_COMPILER_IS_GNUCC¶
自 3.24 版本起已弃用: 请改用 CMAKE_C_COMPILER_ID 变量。
在 CMake 2.6 中引入 CMAKE_<LANG>_COMPILER_ID 变量之前,在早期 CMake 版本中使用了 CMAKE_COMPILER_IS_* 变量。
如果 C 编译器是 GNU,则 CMAKE_COMPILER_IS_GNUCC 变量将设置为布尔值 true。
示例¶
在 CMake 的早期版本中,CMAKE_COMPILER_IS_GNUCC 变量用于检查 C 编译器是否为 GNU。
if(CMAKE_COMPILER_IS_GNUCC)
# GNU C compiler-specific logic.
endif()
从 CMake 2.6 开始,应改用 CMAKE_C_COMPILER_ID 变量。
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# GNU C compiler-specific logic.
endif()
在升级代码时,请考虑是否需要支持除 GNU 之外的其他 C 编译器。过去,LCC 和 QCC 编译器也设置了此变量(有关详细信息,请参阅 CMP0047 和 CMP0129 策略)。为解决此问题,可以使用以下方法:
# Targeting GNU, LCC, and QCC compilers for C:
if(CMAKE_C_COMPILER_ID MATCHES "^(GNU|LCC|QCC)$")
# ...
endif()