diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-03-29 22:52:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-29 22:52:14 +0300 |
commit | 571451b521822aea71b8fe154217fc9a5ecfa005 (patch) | |
tree | fbf680b8ca7e52ce83a55f6fbb71244060e74a57 /mesonbuild/modules | |
parent | 8cc89e468d4d8cfcafe7afd8884d9884d2aac751 (diff) | |
parent | 87f35d71184722aede59516f31de50411892599b (diff) | |
download | meson-571451b521822aea71b8fe154217fc9a5ecfa005.zip meson-571451b521822aea71b8fe154217fc9a5ecfa005.tar.gz meson-571451b521822aea71b8fe154217fc9a5ecfa005.tar.bz2 |
Merge pull request #1346 from msink/test-mingw
appveyor: run tests against MSYS2-MinGW
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r-- | mesonbuild/modules/__init__.py | 10 | ||||
-rw-r--r-- | mesonbuild/modules/gnome.py | 14 | ||||
-rw-r--r-- | mesonbuild/modules/windows.py | 8 |
3 files changed, 20 insertions, 12 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py index c7f24d4..fde3b91 100644 --- a/mesonbuild/modules/__init__.py +++ b/mesonbuild/modules/__init__.py @@ -24,7 +24,11 @@ def find_program(program_name, target_name): return program -def get_include_args(environment, include_dirs, prefix='-I'): +def get_include_args(include_dirs, prefix='-I'): + ''' + Expand include arguments to refer to the source and build dirs + by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution + ''' if not include_dirs: return [] @@ -43,8 +47,8 @@ def get_include_args(environment, include_dirs, prefix='-I'): basedir = dirs.get_curdir() for d in dirs.get_incdirs(): expdir = os.path.join(basedir, d) - srctreedir = os.path.join(environment.get_source_dir(), expdir) - buildtreedir = os.path.join(environment.get_build_dir(), expdir) + srctreedir = os.path.join('@SOURCE_ROOT@', expdir) + buildtreedir = os.path.join('@BUILD_ROOT@', expdir) dirs_str += ['%s%s' % (prefix, buildtreedir), '%s%s' % (prefix, srctreedir)] for d in dirs.get_extra_build_dirs(): diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 423031d..4b366bf 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -309,7 +309,7 @@ class GnomeModule(ExtensionModule): if hasattr(dep, 'held_object'): dep = dep.held_object if isinstance(dep, InternalDependency): - cflags.update(get_include_args(state.environment, dep.include_directories)) + cflags.update(get_include_args(dep.include_directories)) for lib in dep.libraries: ldflags.update(self._get_link_args(state, lib.held_object, depends, include_rpath)) libdepflags = self._get_dependencies_flags(lib.held_object.get_external_deps(), state, depends, include_rpath, @@ -398,7 +398,7 @@ class GnomeModule(ExtensionModule): scan_command += extra_args scan_command += ['-I' + os.path.join(state.environment.get_source_dir(), state.subdir), '-I' + os.path.join(state.environment.get_build_dir(), state.subdir)] - scan_command += get_include_args(state.environment, girtarget.get_include_dirs()) + scan_command += get_include_args(girtarget.get_include_dirs()) if 'link_with' in kwargs: link_with = kwargs.pop('link_with') @@ -525,9 +525,8 @@ class GnomeModule(ExtensionModule): if not isinstance(incd.held_object, (str, build.IncludeDirs)): raise MesonException( 'Gir include dirs should be include_directories().') - scan_command += get_include_args(state.environment, inc_dirs) - scan_command += get_include_args(state.environment, gir_inc_dirs + inc_dirs, - prefix='--add-include-path=') + scan_command += get_include_args(inc_dirs) + scan_command += get_include_args(gir_inc_dirs + inc_dirs, prefix='--add-include-path=') if isinstance(girtarget, build.Executable): scan_command += ['--program', girtarget] @@ -546,8 +545,7 @@ class GnomeModule(ExtensionModule): typelib_output = '%s-%s.typelib' % (ns, nsversion) typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@'] - typelib_cmd += get_include_args(state.environment, gir_inc_dirs, - prefix='--includedir=') + typelib_cmd += get_include_args(gir_inc_dirs, prefix='--includedir=') for incdir in typelib_includes: typelib_cmd += ["--includedir=" + incdir] @@ -716,7 +714,7 @@ class GnomeModule(ExtensionModule): if not isinstance(incd.held_object, (str, build.IncludeDirs)): raise MesonException( 'Gir include dirs should be include_directories().') - cflags.update(get_include_args(state.environment, inc_dirs)) + cflags.update(get_include_args(inc_dirs)) if cflags: args += ['--cflags=%s' % ' '.join(cflags)] if ldflags: diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py index 8203789..c233d90 100644 --- a/mesonbuild/modules/windows.py +++ b/mesonbuild/modules/windows.py @@ -14,6 +14,7 @@ import os +from .. import mlog from .. import mesonlib, dependencies, build from ..mesonlib import MesonException from . import get_include_args @@ -38,13 +39,18 @@ class WindowsModule(ExtensionModule): for incd in inc_dirs: if not isinstance(incd.held_object, (str, build.IncludeDirs)): raise MesonException('Resource include dirs should be include_directories().') - extra_args += get_include_args(state.environment, inc_dirs) + extra_args += get_include_args(inc_dirs) if comp.id == 'msvc': rescomp = dependencies.ExternalProgram('rc', silent=True) res_args = extra_args + ['/nologo', '/fo@OUTPUT@', '@INPUT@'] suffix = 'res' else: + m = 'Argument {!r} has a space which may not work with windres due to ' \ + 'a MinGW bug: https://sourceware.org/bugzilla/show_bug.cgi?id=4933' + for arg in extra_args: + if ' ' in arg: + mlog.warning(m.format(arg)) # Pick-up env var WINDRES if set. This is often used for specifying # an arch-specific windres. rescomp_name = os.environ.get('WINDRES', 'windres') |