From c52963cd16235ac4f6953fbbd33d257823331afa Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Mon, 10 Apr 2017 04:11:48 +0530 Subject: vala: Allow installation into default directories For generated headers, vapis, and GIRs. https://github.com/mesonbuild/meson/pull/1469#issuecomment-292814000 --- mesonbuild/backend/ninjabackend.py | 9 +++++++++ test cases/vala/7 shared library/installed_files.txt | 4 ++-- test cases/vala/7 shared library/lib/meson.build | 16 +++++----------- test cases/vala/9 gir/installed_files.txt | 2 ++ test cases/vala/9 gir/meson.build | 2 ++ 5 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 test cases/vala/9 gir/installed_files.txt diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 848aa59..bce46f6 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1077,11 +1077,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/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]) -- cgit v1.1