diff options
author | Brad King <brad.king@kitware.com> | 2024-02-01 15:56:12 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2024-02-01 16:48:32 (GMT) |
commit | 607051f2660d2586c9dc6c021b22273f694caab3 (patch) | |
tree | 43b8061ce7144d99341851f0520a6ba9fd9d4881 /Source/cmSystemTools.cxx | |
parent | 58d424bca1d4e4cfc755e2fba95fdf55f6e9f215 (diff) | |
download | CMake-607051f2660d2586c9dc6c021b22273f694caab3.zip CMake-607051f2660d2586c9dc6c021b22273f694caab3.tar.gz CMake-607051f2660d2586c9dc6c021b22273f694caab3.tar.bz2 |
MSYS,CYGWIN: Hard-code host system names when built for these runtimes
When CMake is built against the MSYS runtime library, `uname()` returns
a name that depends on the `MSYSTEM` environment variable. Previously
we truncated `MSYS_...` to just `MSYS`, but outside `MSYSTEM=MSYS`
environments, names like `MINGW64_NT-10.0-22000` were reported.
The latter causes CMake to report an unsupported-platform error, which
users report as an issue when the real problem is that they should be
using a `MSYSTEM=MSYS` environment or a CMake that is not built against
the MSYS runtime.
For our purposes, if CMake is built against the MSYS runtime, the host
platform is always `MSYS`. Similarly for `CYGWIN`.
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r-- | Source/cmSystemTools.cxx | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 18ca85b..3b70543 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -3697,6 +3697,10 @@ cm::string_view cmSystemTools::GetSystemName() { #if defined(_WIN32) return "Windows"; +#elif defined(__MSYS__) + return "MSYS"; +#elif defined(__CYGWIN__) + return "CYGWIN"; #elif defined(__ANDROID__) return "Android"; #else @@ -3725,15 +3729,6 @@ cm::string_view cmSystemTools::GetSystemName() if (systemName.find("kFreeBSD") != cm::string_view::npos) { systemName = "kFreeBSD"; } - - // fix for CYGWIN and MSYS which have windows version in them - if (systemName.find("CYGWIN") != cm::string_view::npos) { - systemName = "CYGWIN"; - } - - if (systemName.find("MSYS") != cm::string_view::npos) { - systemName = "MSYS"; - } return systemName; } return ""; |