Back to Cmake

CMAKE_SYSTEM_NAME

Help/variable/CMAKE_SYSTEM_NAME.rst

4.3.25.9 KB
Original Source

CMAKE_SYSTEM_NAME

The name of the operating system for which CMake is to build. See the :variable:CMAKE_SYSTEM_VERSION variable for the OS version.

Note that CMAKE_SYSTEM_NAME is not set to anything by default when running in script mode, since it's not building anything.

System Name for Host Builds ^^^^^^^^^^^^^^^^^^^^^^^^^^^

CMAKE_SYSTEM_NAME is by default set to the same value as the :variable:CMAKE_HOST_SYSTEM_NAME variable so that the build targets the host system.

System Name for Cross Compiling ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

CMAKE_SYSTEM_NAME may be set explicitly when first configuring a new build tree in order to enable :ref:cross compiling <Cross Compiling Toolchain>. In this case the :variable:CMAKE_SYSTEM_VERSION variable must also be set explicitly.

System Names Known to CMake ^^^^^^^^^^^^^^^^^^^^^^^^^^^

The following is a list of possible values, each associated with corresponding operating systems or environments.

========================= ====================================================== Value Name ========================= ====================================================== ADSP Analog Devices Audio Digital Signal Processing AIX IBM Unix operating system Android Android operating system ARTOS Operating system for microcontrollers BeOS Operating system for personal computers (discontinued) BlueGeneL Blue Gene/L static environment BlueGeneP-dynamic Blue Gene/P dynamic environment BlueGeneP-static Blue Gene/P static environment BlueGeneQ-dynamic Blue Gene/Q dynamic environment BlueGeneQ-static Blue Gene/Q static environment BSDOS BSD operating system (discontinued) Catamount Operating system for Cray XT series CrayLinuxEnvironment Cray Linux Environment CYGWIN Cygwin environment for Windows Darwin Apple stationary operating systems (macOS, OS X, etc.) DOS MS-DOS or compatible DragonFly BSD-derived operating system eCos Real-time embedded operating system Emscripten Compiler toolchain to WebAssembly Euros Real-time operating system for embedded devices FreeBSD FreeBSD operating system Fuchsia Operating system by Google based on the Zircon kernel Generic-ADSP Generic ADSP (Audio DSP) environment Generic-ELF Generic ELF (Executable and Linkable Format) environment Generic Some platforms, e.g. bare metal embedded devices GHS-MULTI Green Hills Software MULTI environment GNU GNU/Hurd-based operating system Haiku Unix operating system inspired by BeOS HP-UX Hewlett Packard Unix iOS Apple mobile phone operating system Linux All Linux-based distributions Midipix POSIX-compatible layer for Windows MirBSD MirOS BSD operating system MP-RAS MP-RAS UNIX operating system MSYS MSYS environment (MSYSTEM=MSYS) NetBSD NetBSD operating systems OpenBSD OpenBSD operating systems OpenVMS OpenVMS operating system by HP OS2 OS/2 operating system OSF1 Compaq Tru64 UNIX (formerly DEC OSF/1, Digital Unix) (discontinued) QNX Unix-like operating system by BlackBerry RISCos RISC OS operating system SCO_SV SCO OpenServer 5 SerenityOS Unix-like operating system SINIX SINIX operating system SunOS Oracle Solaris and all illumos operating systems syllable Syllable operating system Tru64 Compaq Tru64 UNIX (formerly DEC OSF/1) operating system tvOS Apple TV operating system ULTRIX Unix operating system (discontinued) UNIX_SV SCO UnixWare (pre release 7) UnixWare SCO UnixWare 7 visionOS Apple mixed reality operating system WASI WebAssembly System Interface watchOS Apple watch operating system Windows Windows stationary operating systems WindowsCE Windows Embedded Compact WindowsPhone Windows mobile phone operating system WindowsStore Universal Windows Platform applications Xenix SCO Xenix Unix operating system (discontinued) ========================= ======================================================

Platform-specific notes:

  • MSYS2's msys/cmake package (/usr/bin/cmake) works only under MSYSTEM=MSYS environments, with system name MSYS. Under other environments like MSYSTEM=MINGW64, use another package such as mingw64/mingw-w64-x86_64-cmake (/mingw64/bin/cmake), which targets MSYSTEM=MINGW64 with system name Windows.

  • Cygwin's cmake package (/usr/bin/cmake) uses system name CYGWIN. A non-cygwin CMake on Windows (e.g. $PROGRAMFILES/CMake/bin/cmake) uses system name Windows even when it runs under a Cygwin environment.

Removed Platforms ^^^^^^^^^^^^^^^^^

The following platforms were once supported by CMake and got removed either due to platform's EOL, or other incompatibilities:

========================= ===================================== ================ Value Name Removed in CMake ========================= ===================================== ================ kFreeBSD FreeBSD kernel with a GNU userland 4.1 ========================= ===================================== ================