diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-04-08 21:08:33 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-08 21:08:33 +0300 |
commit | aad21d26393326b61eefaef837aedb17e494f5ee (patch) | |
tree | 673663f68cd77f790cea2e11f1e48bdca0115f5e /mesonbuild/build.py | |
parent | af820b77d88be0865169aa7f2f66a60f41675825 (diff) | |
parent | 44c54affda4526a90e20d457786fa6fc2d3cbe06 (diff) | |
download | meson-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.py | 17 |
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' |