diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2020-09-27 20:21:59 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-10-05 22:21:09 +0300 |
commit | 1a330d9ef5d222cea9294a01ec63774093109207 (patch) | |
tree | 57bce239edf59fd4674d99a66312c7cb9f3130b2 /mesonbuild/compilers/mixins/gnu.py | |
parent | 962ea8053b2113c2ea8372ed27476bf73119bd65 (diff) | |
download | meson-winsubsystem.tar.gz |
Add win_subsystem kwarg. Closes #7765.winsubsystem
Diffstat (limited to 'mesonbuild/compilers/mixins/gnu.py')
-rw-r--r-- | mesonbuild/compilers/mixins/gnu.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py index 41afadd1e..bb1fc6631 100644 --- a/mesonbuild/compilers/mixins/gnu.py +++ b/mesonbuild/compilers/mixins/gnu.py @@ -219,6 +219,20 @@ class GnuLikeCompiler(Compiler, metaclass=abc.ABCMeta): return ['-mwindows' if value else '-mconsole'] return [] + def get_win_subsystem_args(self, value: str) -> T.List[str]: + args = [] + if self.info.is_windows() or self.info.is_cygwin(): + if 'windows' in value: + args = ['-Wl,--subsystem,windows'] + elif 'console' in value: + args = ['-Wl,--subsystem,console'] + else: + raise mesonlib.MesonException('Only "windows" and "console" are supported for win_subsystem with MinGW, not "{}".'.format(value)) + if ',' in value: + args[-1] = args[-1] + ':' + value.split(',')[1] + return args + + def compute_parameters_with_absolute_paths(self, parameter_list: T.List[str], build_dir: str) -> T.List[str]: for idx, i in enumerate(parameter_list): if i[:2] == '-I' or i[:2] == '-L': |