aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--authors.txt1
-rw-r--r--mesonbuild/backend/ninjabackend.py31
-rw-r--r--mesonbuild/scripts/gtkdochelper.py2
-rw-r--r--test cases/vala/7 shared library/installed_files.txt4
-rw-r--r--test cases/vala/7 shared library/lib/meson.build16
-rw-r--r--test cases/vala/9 gir/installed_files.txt2
-rw-r--r--test cases/vala/9 gir/meson.build2
7 files changed, 36 insertions, 22 deletions
diff --git a/authors.txt b/authors.txt
index e6b7495..9b2ea72 100644
--- a/authors.txt
+++ b/authors.txt
@@ -79,4 +79,5 @@ Aaron Plattner
Jon Turney
Wade Berrier
Richard Hughes
+Rafael Fontenelle
Michael Olbrich
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 848aa59..dfb5600 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -166,14 +166,20 @@ class NinjaBackend(backends.Backend):
int dummy;
''')
- pc, stdo = Popen_safe(['cl', '/showIncludes', '/c', 'incdetect.c'],
- cwd=self.environment.get_scratch_dir())[0:2]
-
- for line in stdo.split('\n'):
- if line.endswith('stdio.h'):
- matchstr = ':'.join(line.split(':')[0:2]) + ':'
- with open(tempfilename, 'a') as binfile:
- binfile.write('msvc_deps_prefix = ' + matchstr + '\n')
+ # The output of cl dependency information is language
+ # and locale dependent. Any attempt at converting it to
+ # Python strings leads to failure. We _must_ do this detection
+ # in raw byte mode and write the result in raw bytes.
+ pc = subprocess.Popen(['cl', '/showIncludes', '/c', 'incdetect.c'],
+ cwd=self.environment.get_scratch_dir(),
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ (stdo, _) = pc.communicate()
+
+ for line in stdo.split(b'\r\n'):
+ if line.endswith(b'stdio.h'):
+ matchstr = b':'.join(line.split(b':')[0:2]) + b':'
+ with open(tempfilename, 'ab') as binfile:
+ binfile.write(b'msvc_deps_prefix = ' + matchstr + b'\n')
return open(tempfilename, 'a')
raise MesonException('Could not determine vs dep dependency prefix string.')
@@ -1077,11 +1083,20 @@ int dummy;
args += ['--vapi', os.path.join('..', target.vala_vapi)]
valac_outputs.append(vapiname)
target.outputs += [target.vala_header, target.vala_vapi]
+ # Install header and vapi to default locations if user requests this
+ if len(target.install_dir) > 1 and target.install_dir[1] is True:
+ target.install_dir[1] = self.environment.get_includedir()
+ if len(target.install_dir) > 2 and target.install_dir[2] is True:
+ target.install_dir[2] = os.path.join(self.environment.get_datadir(), 'vala', 'vapi')
+ # Generate GIR if requested
if isinstance(target.vala_gir, str):
girname = os.path.join(self.get_target_dir(target), target.vala_gir)
args += ['--gir', os.path.join('..', target.vala_gir)]
valac_outputs.append(girname)
target.outputs.append(target.vala_gir)
+ # Install GIR to default location if requested by user
+ if len(target.install_dir) > 3 and target.install_dir[3] is True:
+ target.install_dir[3] = os.path.join(self.environment.get_datadir(), 'gir-1.0')
if self.get_option_for_target('werror', target):
args += valac.get_werror_args()
for d in target.get_external_deps():
diff --git a/mesonbuild/scripts/gtkdochelper.py b/mesonbuild/scripts/gtkdochelper.py
index 53ed07f..434225e 100644
--- a/mesonbuild/scripts/gtkdochelper.py
+++ b/mesonbuild/scripts/gtkdochelper.py
@@ -107,7 +107,7 @@ def build_gtkdoc(source_root, build_root, doc_subdir, src_subdirs,
gtkdoc_run_check(scan_cmd, abs_out)
if gobject_typesfile:
- scanobjs_cmd = ['gtkdoc-scangobj'] + scanobjs_args + [gobject_typesfile,
+ scanobjs_cmd = ['gtkdoc-scangobj'] + scanobjs_args + ['--types=' + gobject_typesfile,
'--module=' + module,
'--cflags=' + cflags,
'--ldflags=' + ldflags]
diff --git a/test cases/vala/7 shared library/installed_files.txt b/test cases/vala/7 shared library/installed_files.txt
index 16ea442..f70e439 100644
--- a/test cases/vala/7 shared library/installed_files.txt
+++ b/test cases/vala/7 shared library/installed_files.txt
@@ -1,8 +1,8 @@
usr/lib/libinstalled_vala_lib.so
usr/lib/libinstalled_vala_all.so
usr/include/installed_vala_all.h
-usr/include/installed_vala_all_nolib.h
+usr/include/valah/installed_vala_all_nolib.h
usr/include/installed_vala_onlyh.h
usr/share/vala/vapi/installed_vala_all.vapi
-usr/share/vala/vapi/installed_vala_all_nolib.vapi
+usr/share/vala-1.0/vapi/installed_vala_all_nolib.vapi
usr/share/vala/vapi/installed_vala_onlyvapi.vapi
diff --git a/test cases/vala/7 shared library/lib/meson.build b/test cases/vala/7 shared library/lib/meson.build
index bb1e800..78646a8 100644
--- a/test cases/vala/7 shared library/lib/meson.build
+++ b/test cases/vala/7 shared library/lib/meson.build
@@ -7,27 +7,21 @@ shared_library('installed_vala_lib', 'mylib.vala',
shared_library('installed_vala_all', 'mylib.vala',
dependencies : valadeps,
install : true,
- install_dir : [true,
- join_paths(get_option('prefix'), get_option('includedir')),
- join_paths(get_option('prefix'), get_option('datadir'), 'vala', 'vapi')])
+ install_dir : [true, true, true])
shared_library('installed_vala_all_nolib', 'mylib.vala',
dependencies : valadeps,
install : true,
install_dir : [false,
- join_paths(get_option('prefix'), get_option('includedir')),
- join_paths(get_option('prefix'), get_option('datadir'), 'vala', 'vapi')])
+ join_paths(get_option('includedir'), 'valah'),
+ join_paths(get_option('datadir'), 'vala-1.0', 'vapi')])
shared_library('installed_vala_onlyh', 'mylib.vala',
dependencies : valadeps,
install : true,
- install_dir : [false,
- join_paths(get_option('prefix'), get_option('includedir')),
- false])
+ install_dir : [false, get_option('includedir'), false])
shared_library('installed_vala_onlyvapi', 'mylib.vala',
dependencies : valadeps,
install : true,
- install_dir : [false,
- false,
- join_paths(get_option('prefix'), get_option('datadir'), 'vala', 'vapi')])
+ install_dir : [false, false, join_paths(get_option('datadir'), 'vala', 'vapi')])
diff --git a/test cases/vala/9 gir/installed_files.txt b/test cases/vala/9 gir/installed_files.txt
new file mode 100644
index 0000000..7a0e055
--- /dev/null
+++ b/test cases/vala/9 gir/installed_files.txt
@@ -0,0 +1,2 @@
+usr/lib/libfoo.so
+usr/share/gir-1.0/Foo-1.0.gir
diff --git a/test cases/vala/9 gir/meson.build b/test cases/vala/9 gir/meson.build
index c0a8f54..1a09bec 100644
--- a/test cases/vala/9 gir/meson.build
+++ b/test cases/vala/9 gir/meson.build
@@ -5,6 +5,8 @@ gobject = dependency('gobject-2.0')
g_ir_compiler = find_program('g-ir-compiler')
foo = shared_library('foo', 'foo.vala',
+ install : true,
+ install_dir : [true, false, false, true],
vala_gir: 'Foo-1.0.gir',
dependencies: [glib, gobject])