1diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build
2index 65faae9b2..4297513d4 100644
3--- a/gio/gdbus-2.0/codegen/meson.build
4+++ b/gio/gdbus-2.0/codegen/meson.build
5@@ -20,7 +20,7 @@ gdbus_codegen_conf.set('DATADIR', glib_datadir)
6 # Install gdbus-codegen executable
7 gdbus_codegen = configure_file(input : 'gdbus-codegen.in',
8 output : 'gdbus-codegen',
9- install_dir : get_option('bindir'),
10+ install_dir : get_option('devbindir'),
11 install_tag : 'bin-devel',
12 configuration : gdbus_codegen_conf
13 )
14diff --git a/gio/meson.build b/gio/meson.build
15index 462606f3b..a3047fca1 100644
16--- a/gio/meson.build
17+++ b/gio/meson.build
18@@ -880,14 +880,15 @@ pkg.generate(libgio,
19 variables : ['datadir=' + join_paths('${prefix}', get_option('datadir')),
20 'schemasdir=' + join_paths('${datadir}', schemas_subdir),
21 'bindir=' + join_paths('${prefix}', get_option('bindir')),
22+ 'devbindir=' + get_option('devbindir'),
23 'giomoduledir=' + pkgconfig_giomodulesdir,
24 'gio=' + join_paths('${bindir}', 'gio'),
25- 'gio_querymodules=@0@'.format(pkgconfig_multiarch_bindir / 'gio-querymodules'),
26- 'glib_compile_schemas=@0@'.format(pkgconfig_multiarch_bindir / 'glib-compile-schemas'),
27- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
28+ 'gio_querymodules=@0@'.format('${devbindir}' / 'gio-querymodules'),
29+ 'glib_compile_schemas=@0@'.format('${devbindir}' / 'glib-compile-schemas'),
30+ 'glib_compile_resources=' + join_paths('${devbindir}', 'glib-compile-resources'),
31 'gdbus=' + join_paths('${bindir}', 'gdbus'),
32- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen'),
33- 'gresource=' + join_paths('${bindir}', 'gresource'),
34+ 'gdbus_codegen=' + join_paths('${devbindir}', 'gdbus-codegen'),
35+ 'gresource=' + join_paths('${devbindir}', 'gresource'),
36 'gsettings=' + join_paths('${bindir}', 'gsettings')],
37 version : glib_version,
38 install_dir : glib_pkgconfigreldir,
39@@ -989,6 +990,7 @@ executable('gio', gio_tool_sources,
40
41 executable('gresource', 'gresource-tool.c',
42 install : true,
43+ install_dir : get_option('devbindir'),
44 install_tag : 'bin',
45 # intl.lib is not compatible with SAFESEH
46 link_args : noseh_link_args,
47@@ -996,7 +998,7 @@ executable('gresource', 'gresource-tool.c',
48
49 gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
50 install : true,
51- install_dir : multiarch_bindir,
52+ install_dir : get_option('devbindir'),
53 install_tag : 'bin',
54 c_args : gio_c_args,
55 # intl.lib is not compatible with SAFESEH
56@@ -1006,7 +1008,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
57 glib_compile_schemas = executable('glib-compile-schemas',
58 ['glib-compile-schemas.c'],
59 install : true,
60- install_dir : multiarch_bindir,
61+ install_dir : get_option('devbindir'),
62 install_tag : 'bin',
63 # intl.lib is not compatible with SAFESEH
64 link_args : noseh_link_args,
65@@ -1015,6 +1017,7 @@ glib_compile_schemas = executable('glib-compile-schemas',
66 glib_compile_resources = executable('glib-compile-resources',
67 [gconstructor_as_data_h, 'glib-compile-resources.c'],
68 install : true,
69+ install_dir : get_option('devbindir'),
70 install_tag : 'bin-devel',
71 c_args : gio_c_args,
72 # intl.lib is not compatible with SAFESEH
73diff --git a/glib/meson.build b/glib/meson.build
74index da76fc005..8e2ef990c 100644
75--- a/glib/meson.build
76+++ b/glib/meson.build
77@@ -441,9 +441,10 @@ pkg.generate(libglib,
78 subdirs : ['glib-2.0'],
79 extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
80 variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
81- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'),
82- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'),
83- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')],
84+ 'devbindir=' + get_option('devbindir'),
85+ 'glib_genmarshal=' + join_paths('${devbindir}', 'glib-genmarshal'),
86+ 'gobject_query=' + join_paths('${devbindir}', 'gobject-query'),
87+ 'glib_mkenums=' + join_paths('${devbindir}', 'glib-mkenums')],
88 version : glib_version,
89 install_dir : glib_pkgconfigreldir,
90 filebase : 'glib-2.0',
91@@ -480,6 +481,7 @@ if host_system == 'windows'
92 else
93 gtester = executable('gtester', 'gtester.c',
94 install : true,
95+ install_dir : get_option('devbindir'),
96 install_tag : 'bin-devel',
97 c_args : ['-UG_DISABLE_ASSERT'],
98 include_directories : configinc,
99@@ -492,7 +494,7 @@ report_conf.set('PYTHON', python_name)
100 configure_file(
101 input: 'gtester-report.in',
102 output: 'gtester-report',
103- install_dir: get_option('bindir'),
104+ install_dir: get_option('devbindir'),
105 install_tag : 'bin-devel',
106 configuration: report_conf,
107 install_mode: 'rwxr-xr-x'
108diff --git a/gobject/meson.build b/gobject/meson.build
109index 2129aaf8a..da8462428 100644
110--- a/gobject/meson.build
111+++ b/gobject/meson.build
112@@ -94,7 +94,7 @@ foreach tool: python_tools
113 input : tool + '.in',
114 output : tool,
115 configuration : python_tools_conf,
116- install_dir : glib_bindir,
117+ install_dir : get_option('devbindir'),
118 install_tag : 'bin-devel',
119 )
120
121@@ -172,6 +172,7 @@ meson.override_dependency('gobject-2.0', libgobject_dep)
122
123 gobject_query = executable('gobject-query', 'gobject-query.c',
124 install : true,
125+ install_dir : get_option('devbindir'),
126 install_tag : 'bin-devel',
127 dependencies : [libglib_dep, libgobject_dep])
128
129diff --git a/meson_options.txt b/meson_options.txt
130index 517d5757c..198cc1b3c 100644
131--- a/meson_options.txt
132+++ b/meson_options.txt
133@@ -4,6 +4,11 @@ option('runtime_libdir',
134 description : 'install runtime libraries relative to libdir',
135 deprecated: true)
136
137+option('devbindir',
138+ type : 'string',
139+ value : '',
140+ description : 'bindir for development tools')
141+
142 option('charsetalias_dir',
143 type : 'string',
144 value : '',
145diff --git a/tools/meson.build b/tools/meson.build
146index 2d4192e46..d7e710d6f 100644
147--- a/tools/meson.build
148+++ b/tools/meson.build
149@@ -8,7 +8,7 @@ if have_sh
150 gettextize_conf.set('datarootdir', glib_datadir)
151 gettextize_conf.set('datadir', glib_datadir)
152 configure_file(input : 'glib-gettextize.in',
153- install_dir : glib_bindir,
154+ install_dir : get_option('devbindir'),
155 install_tag : 'bin-devel',
156 output : 'glib-gettextize',
157 configuration : gettextize_conf)