aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-04-08 21:08:33 +0300
committerGitHub <noreply@github.com>2017-04-08 21:08:33 +0300
commitaad21d26393326b61eefaef837aedb17e494f5ee (patch)
tree673663f68cd77f790cea2e11f1e48bdca0115f5e /mesonbuild/build.py
parentaf820b77d88be0865169aa7f2f66a60f41675825 (diff)
parent44c54affda4526a90e20d457786fa6fc2d3cbe06 (diff)
downloadmeson-aad21d26393326b61eefaef837aedb17e494f5ee.zip
meson-aad21d26393326b61eefaef837aedb17e494f5ee.tar.gz
meson-aad21d26393326b61eefaef837aedb17e494f5ee.tar.bz2
Merge pull request #1567 from jon-turney/cygwin
Add Cygwin support
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 1246f3e..537c91b 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -21,7 +21,7 @@ from . import mlog
from .mesonlib import File, MesonException
from .mesonlib import flatten, stringlistify, classify_unity_sources
from .mesonlib import get_filenames_templates_dict, substitute_values
-from .environment import for_windows, for_darwin
+from .environment import for_windows, for_darwin, for_cygwin
from .compilers import is_object, clike_langs, sort_clike, lang_suffixes
known_basic_kwargs = {'install': True,
@@ -997,7 +997,8 @@ class Executable(BuildTarget):
self.prefix = ''
if not hasattr(self, 'suffix'):
# Executable for Windows or C#/Mono
- if for_windows(is_cross, environment) or 'cs' in self.compilers:
+ if (for_windows(is_cross, environment) or
+ for_cygwin(is_cross, environment) or 'cs' in self.compilers):
self.suffix = 'exe'
else:
self.suffix = ''
@@ -1120,6 +1121,18 @@ class SharedLibrary(BuildTarget):
self.filename_tpl = '{0.prefix}{0.name}-{0.soversion}.{0.suffix}'
else:
self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
+ elif for_cygwin(is_cross, env):
+ suffix = 'dll'
+ self.gcc_import_filename = 'lib{0}.dll.a'.format(self.name)
+ # Shared library is of the form cygfoo.dll
+ # (ld --dll-search-prefix=cyg is the default)
+ prefix = 'cyg'
+ # Import library is called libfoo.dll.a
+ self.import_filename = self.gcc_import_filename
+ if self.soversion:
+ self.filename_tpl = '{0.prefix}{0.name}-{0.soversion}.{0.suffix}'
+ else:
+ self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
elif for_darwin(is_cross, env):
prefix = 'lib'
suffix = 'dylib'