From 45296cde2d2fcd586b54908578542d59918948d3 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Wed, 25 Feb 2026 17:56:55 +0100 Subject: [PATCH] Help: Transform CMAKE_SYSTEM_NAME tables into lists Changes: - Added some initial operating system family categories (Apple, UNIX, Windows). - Used list instead of table. Unlike the tables, lists provide documenting additional info and CMake versions. - Added CMake versions to most values where they were introduced or could be determined from the Git log. - Additionally added the OHOS value to the list (introduced via #25987) - Emscripten name was used by toolchain files also before CMake 4.2 but documented with this version. --- Help/variable/CMAKE_SYSTEM_NAME.rst | 332 +++++++++++++++++++++------- 1 file changed, 253 insertions(+), 79 deletions(-) diff --git a/Help/variable/CMAKE_SYSTEM_NAME.rst b/Help/variable/CMAKE_SYSTEM_NAME.rst index 2b46fd7cd8..90b26ba6df 100644 --- a/Help/variable/CMAKE_SYSTEM_NAME.rst +++ b/Help/variable/CMAKE_SYSTEM_NAME.rst @@ -28,96 +28,270 @@ 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 (discontinued) -``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 -``WindowsKernelModeDriver`` Windows Kernel-Mode Driver -``WindowsPhone`` Windows mobile phone operating system -``WindowsStore`` Universal Windows Platform applications -``Xenix`` SCO Xenix Unix operating system (discontinued) -=========================== ====================================================== +Apple Platforms +""""""""""""""" -Platform-specific notes: +``Darwin`` + Apple stationary operating systems (macOS, OS X, etc.) -* MSYS2's ``msys/cmake`` package (``/usr/bin/cmake``) works only under +``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``. -* 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. +``Windows`` + Windows stationary operating systems -* When building drivers for Kernel-Mode Driver Framework on Windows, toolchain - file can set ``CMAKE_SYSTEM_NAME`` value to ``WindowsKernelModeDriver``. See - also the :variable:`CMAKE_WINDOWS_KMDF_VERSION` variable. +``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: -========================= ===================================== ================ -Value Name Removed in CMake -========================= ===================================== ================ -``kFreeBSD`` FreeBSD kernel with a GNU userland 4.1 -========================= ===================================== ================ +``kFreeBSD`` + .. versionchanged:: 4.1 + Removed from CMake. + + FreeBSD kernel with a GNU userland