aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-03-29 22:52:14 +0300
committerGitHub <noreply@github.com>2017-03-29 22:52:14 +0300
commit571451b521822aea71b8fe154217fc9a5ecfa005 (patch)
treefbf680b8ca7e52ce83a55f6fbb71244060e74a57 /mesonbuild/modules
parent8cc89e468d4d8cfcafe7afd8884d9884d2aac751 (diff)
parent87f35d71184722aede59516f31de50411892599b (diff)
downloadmeson-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__.py10
-rw-r--r--mesonbuild/modules/gnome.py14
-rw-r--r--mesonbuild/modules/windows.py8
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')