Back to Cmake

CMAKE_COMPILER_IS_GNUCC

Help/variable/CMAKE_COMPILER_IS_GNUCC.rst

4.3.21.3 KB
Original Source

CMAKE_COMPILER_IS_GNUCC

.. deprecated:: 3.24

Use the :variable:CMAKE_C_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID> variable instead.

The CMAKE_COMPILER_IS_* variables were used in early CMake versions before the introduction of :variable:CMAKE_<LANG>_COMPILER_ID variables in CMake 2.6.

The CMAKE_COMPILER_IS_GNUCC variable is set to boolean true if the C compiler is GNU.

Examples ^^^^^^^^

In earlier versions of CMake, the CMAKE_COMPILER_IS_GNUCC variable was used to check if the C compiler was GNU:

.. code-block:: cmake

if(CMAKE_COMPILER_IS_GNUCC) # GNU C compiler-specific logic. endif()

Starting with CMake 2.6, the CMAKE_C_COMPILER_ID variable should be used instead:

.. code-block:: cmake

if(CMAKE_C_COMPILER_ID STREQUAL "GNU") # GNU C compiler-specific logic. endif()

When upgrading code, consider whether additional C compilers should be targeted beyond just GNU. In the past, the LCC and QCC compilers also had this variable set (see :policy:CMP0047 and :policy:CMP0129 policies for details). To account for this, the following approach can be used:

.. code-block:: cmake

Targeting GNU, LCC, and QCC compilers for C:

if(CMAKE_C_COMPILER_ID MATCHES "^(GNU|LCC|QCC)$") # ... endif()