diff --git a/meta/recipes-gnome/blueprint-compiler/blueprint-compiler_0.20.4.bb b/meta/recipes-gnome/blueprint-compiler/blueprint-compiler_0.20.4.bb
index 5bd3a5439c..199a9b0f55 100644
--- a/meta/recipes-gnome/blueprint-compiler/blueprint-compiler_0.20.4.bb
+++ b/meta/recipes-gnome/blueprint-compiler/blueprint-compiler_0.20.4.bb
@@ -6,7 +6,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
 SRC_URI = "git://gitlab.gnome.org/GNOME/blueprint-compiler;protocol=https;branch=blueprint-0-20;tag=v${PV}"
 SRCREV = "31b62c24a72c1670d2d93dcdf2d130f1ae12778e"
 
-inherit meson pkgconfig python3-dir
+inherit meson pkgconfig python3-dir gobject-introspection-data
+
+# The compiler needs python3-pygobject on target, which is skipped without
+# GI data (which also depends on qemu-usermode), so skip along with it.
+python() {
+    if d.getVar('CLASSOVERRIDE') == "class-target" and not bb.utils.to_boolean(d.getVar("GI_DATA_ENABLED")):
+        raise bb.parse.SkipRecipe("GI not available")
+}
 
 PACKAGES += "${PN}-python"
 
