mod->name = str_cpy_lower(pkgname, name);
return mod;
}
+
+bool u_pkg_is_native(GTypeModule *m)
+{
+ struct upkg_priv *priv = U_PKG_GET_PRIV(m);
+
+ return priv->native;
+}
#define U_OBJECT_PACKAGE_H_
#include <glib-object.h>
+#include <stdbool.h>
#define U_PKG_TYPE (u_pkg_get_type())
#define U_PKG(obj) \
GType u_pkg_get_type(void);
GTypeModule *u_pkg_open(const char *name);
+bool u_pkg_is_native(GTypeModule *pkg);
+
#endif
}
pkg = u_pkg_open(pkgname);
- if (!pkg) {
- fprintf(stderr, "failed to open package!\n");
+ if (!pkg || !g_type_module_use(pkg)) {
+ fprintf(stderr, "%s: %s: failed to open package.\n",
+ progname, pkgname);
return EXIT_FAILURE;
}
- if (!g_type_module_use(pkg) || !U_PKG(pkg)->pkg) {
- fprintf(stderr, "failed to load package: %s\n", pkg->name);
+ if (!U_PKG(pkg)->pkg) {
+ if (u_pkg_is_native(pkg)) {
+ fprintf(stderr, "%s: %s: not a UObject package.\n",
+ progname, pkgname);
+ } else {
+ fprintf(stderr, "%s: %s: package not found.\n",
+ progname, pkgname);
+ }
+
return EXIT_FAILURE;
}