aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/c.py9
-rw-r--r--mesonbuild/compilers/compilers.py4
2 files changed, 9 insertions, 4 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 2dfe794..1a0d6b2 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -1276,8 +1276,13 @@ class VisualStudioCCompiler(CCompiler):
def linker_to_compiler_args(self, args):
return ['/link'] + args
- def get_gui_app_args(self):
- return ['/SUBSYSTEM:WINDOWS']
+ def get_gui_app_args(self, value):
+ # the default is for the linker to guess the subsystem based on presence
+ # of main or WinMain symbols, so always be explicit
+ if value:
+ return ['/SUBSYSTEM:WINDOWS']
+ else:
+ return ['/SUBSYSTEM:CONSOLE']
def get_pic_args(self):
return [] # PIC is handled by the loader on Windows
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index ea0fc2c..381b995 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -1277,8 +1277,8 @@ class GnuCompiler:
# For other targets, discard the .def file.
return []
- def get_gui_app_args(self):
- if self.gcc_type in (GCC_CYGWIN, GCC_MINGW):
+ def get_gui_app_args(self, value):
+ if self.gcc_type in (GCC_CYGWIN, GCC_MINGW) and value:
return ['-mwindows']
return []