diff --git a/tests/generate-sysroots.py b/tests/generate-sysroots.py
index caf4577e5f584f4f1eabed4e39b7bc6e6891cbc8..179d6f31835370fcba5b302c5ee6067e60df103a 100755
--- a/tests/generate-sysroots.py
+++ b/tests/generate-sysroots.py
@@ -24,6 +24,22 @@
 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 import os
+import argparse
+
+parser = argparse.ArgumentParser()
+parser.add_argument("path")
+parser.add_argument('-i', '--install', action='store_true',
+                    help='Install the sysroot in the provided [path], using $MESON_INSTALL_DESTDIR_PREFIX as a prefix')
+args = parser.parse_args()
+
+if args.install:
+    full_path = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.path.lstrip("/"))
+else:
+    full_path = args.path
+
+# If the chosen destination 'sysroot' is not yet available we create it
+os.makedirs(full_path, mode=0o755, exist_ok=True)
+os.chdir(full_path)
 
 # Only the leaf directories need to be listed here.
 for name in '''
@@ -207,7 +223,10 @@ for name, target in {
         'libvdpau_radeonsi.so.1.0.0',
 }.items():
     os.makedirs(os.path.dirname(name), mode=0o755, exist_ok=True)
-    os.symlink(target, name)
+    try:
+        os.symlink(target, name)
+    except FileExistsError:
+        pass
 
 with open('debian10/usr/lib/os-release', 'w') as writer:
     writer.write('''\