CMAKE_SYSTEM_NAME

The name of the operating system for which CMake is to build. See the 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 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 cross compiling. In this case the 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

kFreeBSD

FreeBSD kernel with a GNU userland

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

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.