diff options
author | Christoph Reiter <reiter.christoph@gmail.com> | 2020-08-30 17:53:41 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-08-30 23:37:46 +0300 |
commit | 0710ad18d919ba38d00aa5f68444e2fcb47a45ac (patch) | |
tree | af0d16148bac75236b21cdf29152992c74247e4d /mesonbuild | |
parent | da1b6d0a9fd723f0cb17a4ce73d5adc51a0c5199 (diff) | |
download | meson-0710ad18d919ba38d00aa5f68444e2fcb47a45ac.zip meson-0710ad18d919ba38d00aa5f68444e2fcb47a45ac.tar.gz meson-0710ad18d919ba38d00aa5f68444e2fcb47a45ac.tar.bz2 |
Be stricter when detecting Windows/Cygwin
This removes the check for "mingw" for platform.system(). The only case I know
where "mingw" is return is if using a msys Python under a msys2 mingw environment.
This combination is not really supported by meson and will result in weird errors,
so remove the check.
The second change is checking sys.platform for cygwin instead of platform.system().
The former is document to return "cygwin", while the latter is not and just
returns uname().
While under Cygwin it uname() always starts with "cygwin" it's not hardcoded in MSYS2
and starts with the environment name. Using sys.platform is safer here.
Fixes #7552
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/envconfig.py | 4 | ||||
-rw-r--r-- | mesonbuild/environment.py | 5 | ||||
-rw-r--r-- | mesonbuild/mesonlib.py | 4 | ||||
-rw-r--r-- | mesonbuild/mtest.py | 5 |
4 files changed, 8 insertions, 10 deletions
diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py index 9402d38..5258fa0 100644 --- a/mesonbuild/envconfig.py +++ b/mesonbuild/envconfig.py @@ -211,13 +211,13 @@ class MachineInfo: """ Machine is windows? """ - return self.system == 'windows' or 'mingw' in self.system + return self.system == 'windows' def is_cygwin(self) -> bool: """ Machine is cygwin? """ - return self.system.startswith('cygwin') + return self.system == 'cygwin' def is_linux(self) -> bool: """ diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index f1bd2e1..eb7189c 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -429,10 +429,9 @@ def detect_cpu(compilers: CompilersDict): return trial def detect_system(): - system = platform.system().lower() - if system.startswith('cygwin'): + if sys.platform == 'cygwin': return 'cygwin' - return system + return platform.system().lower() def detect_msys2_arch(): if 'MSYSTEM_CARCH' in os.environ: diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index 45e3b34..a510ab9 100644 --- a/mesonbuild/mesonlib.py +++ b/mesonbuild/mesonlib.py @@ -502,11 +502,11 @@ def is_openbsd() -> bool: def is_windows() -> bool: platname = platform.system().lower() - return platname == 'windows' or 'mingw' in platname + return platname == 'windows' def is_cygwin() -> bool: - return platform.system().lower().startswith('cygwin') + return sys.platform == 'cygwin' def is_debianlike() -> bool: diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index d7fe54a..de82234 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -58,11 +58,10 @@ GNU_ERROR_RETURNCODE = 99 def is_windows() -> bool: platname = platform.system().lower() - return platname == 'windows' or 'mingw' in platname + return platname == 'windows' def is_cygwin() -> bool: - platname = platform.system().lower() - return 'cygwin' in platname + return sys.platform == 'cygwin' def determine_worker_count() -> int: varname = 'MESON_TESTTHREADS' |