1diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build
2index 5ea6bae2f..e0b584a86 100644
3--- a/gio/gdbus-2.0/codegen/meson.build
4+++ b/gio/gdbus-2.0/codegen/meson.build
5@@ -16,7 +16,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 configuration : gdbus_codegen_conf
12 )
13 # Provide tools for others when we're a subproject and they use the Meson GNOME module
14diff --git a/gio/meson.build b/gio/meson.build
15index 3535788ab..99c3b48d6 100644
16--- a/gio/meson.build
17+++ b/gio/meson.build
18@@ -831,14 +831,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=' + join_paths('${bindir}', 'gio-querymodules'),
26- 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'),
27- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
28+ 'gio_querymodules=' + join_paths('${devbindir}', 'gio-querymodules'),
29+ 'glib_compile_schemas=' + join_paths('${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@@ -939,12 +940,14 @@ executable('gio', gio_tool_sources,
40
41 executable('gresource', 'gresource-tool.c',
42 install : true,
43+ install_dir : get_option('devbindir'),
44 # intl.lib is not compatible with SAFESEH
45 link_args : noseh_link_args,
46 dependencies : [libelf, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
47
48 gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
49 install : true,
50+ install_dir : get_option('devbindir'),
51 c_args : gio_c_args,
52 # intl.lib is not compatible with SAFESEH
53 link_args : noseh_link_args,
54@@ -953,6 +956,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
55 glib_compile_schemas = executable('glib-compile-schemas',
56 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-schemas.c'],
57 install : true,
58+ install_dir : get_option('devbindir'),
59 # intl.lib is not compatible with SAFESEH
60 link_args : noseh_link_args,
61 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
62@@ -960,6 +964,7 @@ glib_compile_schemas = executable('glib-compile-schemas',
63 glib_compile_resources = executable('glib-compile-resources',
64 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-resources.c'],
65 install : true,
66+ install_dir : get_option('devbindir'),
67 c_args : gio_c_args,
68 # intl.lib is not compatible with SAFESEH
69 link_args : noseh_link_args,
70diff --git a/glib/meson.build b/glib/meson.build
71index aaf5f00f5..09edd291a 100644
72--- a/glib/meson.build
73+++ b/glib/meson.build
74@@ -375,9 +375,10 @@ pkg.generate(libglib,
75 subdirs : ['glib-2.0'],
76 extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
77 variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
78- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'),
79- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'),
80- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')],
81+ 'devbindir=' + get_option('devbindir'),
82+ 'glib_genmarshal=' + join_paths('${devbindir}', 'glib-genmarshal'),
83+ 'gobject_query=' + join_paths('${devbindir}', 'gobject-query'),
84+ 'glib_mkenums=' + join_paths('${devbindir}', 'glib-mkenums')],
85 version : glib_version,
86 install_dir : glib_pkgconfigreldir,
87 filebase : 'glib-2.0',
88@@ -413,6 +414,7 @@ if host_system == 'windows'
89 else
90 gtester = executable('gtester', 'gtester.c',
91 install : true,
92+ install_dir : get_option('devbindir'),
93 c_args : ['-UG_DISABLE_ASSERT'],
94 include_directories : configinc,
95 dependencies : [libglib_dep])
96@@ -424,7 +426,7 @@ report_conf.set('PYTHON', python_name)
97 configure_file(
98 input: 'gtester-report.in',
99 output: 'gtester-report',
100- install_dir: get_option('bindir'),
101+ install_dir: get_option('devbindir'),
102 configuration: report_conf,
103 install_mode: 'rwxr-xr-x'
104 )
105diff --git a/gobject/meson.build b/gobject/meson.build
106index 85e283bab..386ad5e4e 100644
107--- a/gobject/meson.build
108+++ b/gobject/meson.build
109@@ -75,7 +75,7 @@ foreach tool: python_tools
110 input : tool + '.in',
111 output : tool,
112 configuration : python_tools_conf,
113- install_dir : glib_bindir,
114+ install_dir : get_option('devbindir'),
115 )
116
117 # Set variables for later use
118@@ -145,6 +145,7 @@ libgobject_dep = declare_dependency(link_with : libgobject,
119
120 executable('gobject-query', 'gobject-query.c',
121 install : true,
122+ install_dir : get_option('devbindir'),
123 dependencies : [libglib_dep, libgobject_dep])
124
125 install_data('gobject_gdb.py', install_dir : join_paths(glib_pkgdatadir, 'gdb'))
126diff --git a/meson.build b/meson.build
127index 484f4c750..c7f9327d9 100644
128--- a/meson.build
129+++ b/meson.build
130@@ -2122,7 +2122,7 @@ if have_sh
131 gettextize_conf.set('datarootdir', glib_datadir)
132 gettextize_conf.set('datadir', glib_datadir)
133 configure_file(input : 'glib-gettextize.in',
134- install_dir : glib_bindir,
135+ install_dir : get_option('devbindir'),
136 output : 'glib-gettextize',
137 configuration : gettextize_conf)
138 endif
139diff --git a/meson_options.txt b/meson_options.txt
140index 2c831e37e..5d8928577 100644
141--- a/meson_options.txt
142+++ b/meson_options.txt
143@@ -3,6 +3,11 @@ option('runtime_libdir',
144 value : '',
145 description : 'install runtime libraries relative to libdir')
146
147+option('devbindir',
148+ type : 'string',
149+ value : '',
150+ description : 'bindir for development tools')
151+
152 option('iconv',
153 type : 'combo',
154 choices : ['auto', 'libc', 'external'],