blob: 90b26ba6df7fd8cd9ab7906b8f7079f53a86e430 [file] [edit]
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.
Apple Platforms
"""""""""""""""
``Darwin``
Apple stationary operating systems (macOS, OS X, etc.)
``iOS``
.. versionadded:: 3.14
Apple mobile phone operating system
``tvOS``
.. versionadded:: 3.14
Apple TV operating system
``visionOS``
.. versionadded:: 3.28
Apple mixed reality operating system
``watchOS``
.. versionadded:: 3.14
Apple watch operating system
UNIX Platforms
""""""""""""""
``ADSP``
Analog Devices Audio Digital Signal Processing
``AIX``
IBM Unix operating system
``Android``
.. versionadded:: 3.1
Android operating system
``ARTOS``
.. versionadded:: 3.4
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``
.. versionadded:: 3.3
Blue Gene/Q dynamic environment
``BlueGeneQ-static``
.. versionadded:: 3.3
Blue Gene/Q static environment
``BSDOS``
BSD operating system (discontinued)
``Catamount``
Operating system for Cray XT series
``CrayLinuxEnvironment``
.. versionadded:: 3.5
Cray Linux Environment
``DragonFly``
BSD-derived operating system
``eCos``
Real-time embedded operating system
``Emscripten``
.. versionadded:: 4.2
Compiler toolchain to WebAssembly.
``Euros``
.. versionadded:: 3.4
Real-time operating system for embedded devices
``FreeBSD``
FreeBSD operating system
``Fuchsia``
.. versionadded:: 3.8
Operating system by Google based on the Zircon kernel
``Generic-ADSP``
Generic ADSP (Audio DSP) environment
``Generic-ELF``
.. versionadded:: 3.23
Generic ELF (Executable and Linkable Format) environment
``Generic``
Some platforms, e.g. bare metal embedded devices
``GHS-MULTI``
.. versionadded:: 3.3
Green Hills Software MULTI environment
``GNU``
GNU/Hurd-based operating system
``Haiku``
Unix operating system inspired by BeOS
``HP-UX``
Hewlett Packard Unix (discontinued)
``Linux``
All Linux-based distributions
``MirBSD``
MirOS BSD operating system
``MP-RAS``
MP-RAS UNIX operating system
``NetBSD``
NetBSD operating systems
``OHOS``
.. versionadded:: 3.30
OpenHarmony family of operating systems (e.g., HarmonyOS)
Toolchain file can set this value when targeting OpenHarmony operating
systems.
``OpenBSD``
OpenBSD operating systems
``OpenVMS``
OpenVMS operating system by HP
``OS2``
.. versionadded:: 3.18
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``
.. versionadded:: 3.25
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
``ULTRIX``
Unix operating system (discontinued)
``UNIX_SV``
SCO UnixWare (pre release 7)
``UnixWare``
SCO UnixWare 7
``WASI``
.. versionadded:: 3.31
WebAssembly System Interface
``Xenix``
SCO Xenix Unix operating system (discontinued)
Windows Platforms
"""""""""""""""""
``CYGWIN``
Cygwin environment for 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.
``DOS``
MS-DOS or compatible
``Midipix``
.. versionadded:: 3.10
POSIX-compatible layer for Windows
``MSYS``
MSYS environment (MSYSTEM=MSYS)
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``.
``Windows``
Windows stationary operating systems
``WindowsCE``
Windows Embedded Compact
``WindowsKernelModeDriver``
.. versionadded:: 4.1
Windows Kernel-Mode Driver
When building drivers for Kernel-Mode Driver Framework on Windows, toolchain
file can set this value. See also the :variable:`CMAKE_WINDOWS_KMDF_VERSION`
variable.
``WindowsPhone``
.. versionadded:: 3.1
Windows mobile phone operating system
``WindowsStore``
.. versionadded:: 3.1
Universal Windows Platform applications
Removed Platforms
"""""""""""""""""
The following platforms were once supported by CMake and got removed either due
to platform's EOL, or other incompatibilities:
``kFreeBSD``
.. versionchanged:: 4.1
Removed from CMake.
FreeBSD kernel with a GNU userland