diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 00000000..86782e5a
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1,7 @@
+icondir = join_paths(datadir, 'icons/hicolor')
+
+foreach kind: ['scalable', 'symbolic']
+ install_subdir(kind, install_dir: icondir)
+endforeach
+
+install_data('@0@.svg'.format(app_id), install_dir: join_paths(icondir, 'scalable/apps'))
diff --git a/data/icons/scalable/apps/org.gnome.Sysprof.Devel.svg b/data/icons/org.gnome.Sysprof.Devel.svg
similarity index 100%
rename from data/icons/scalable/apps/org.gnome.Sysprof.Devel.svg
rename to data/icons/org.gnome.Sysprof.Devel.svg
diff --git a/data/icons/scalable/apps/org.gnome.Sysprof.svg b/data/icons/org.gnome.Sysprof.svg
similarity index 100%
rename from data/icons/scalable/apps/org.gnome.Sysprof.svg
rename to data/icons/org.gnome.Sysprof.svg
diff --git a/data/meson.build b/data/meson.build
index c0e4b721..eaeb4567 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -30,11 +30,5 @@ if get_option('gtk') and get_option('libsysprof')
install_dir: join_paths(datadir, 'applications')
)
- icon_sizes = ['scalable', 'symbolic']
- foreach size: icon_sizes
- install_subdir('icons/' + size,
- install_dir: join_paths(datadir, 'icons/hicolor')
- )
- endforeach
-
+ subdir('icons')
endif
diff --git a/src/libsysprof-ui/libsysprof-ui.gresource.xml b/src/libsysprof-ui/libsysprof-ui.gresource.xml
index d4233983..c9a7cb64 100644
--- a/src/libsysprof-ui/libsysprof-ui.gresource.xml
+++ b/src/libsysprof-ui/libsysprof-ui.gresource.xml
@@ -5,7 +5,7 @@
css/SysprofDisplay-shared.css
- ../../data/icons/scalable/apps/org.gnome.Sysprof.svg
+ ../../data/icons/org.gnome.Sysprof.svg
../../data/icons/symbolic/apps/org.gnome.Sysprof-symbolic.svg
../../data/icons/symbolic/apps/org.gnome.Sysprof-symbolic.svg