summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-02-01 15:56:12 (GMT)
committerBrad King <brad.king@kitware.com>2024-02-01 16:48:32 (GMT)
commit607051f2660d2586c9dc6c021b22273f694caab3 (patch)
tree43b8061ce7144d99341851f0520a6ba9fd9d4881 /Source/cmSystemTools.cxx
parent58d424bca1d4e4cfc755e2fba95fdf55f6e9f215 (diff)
downloadCMake-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.cxx13
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 "";