[PATCH v2 weston] compositor: Respect WESTON_BUILD_DIR env var in weston_load_module

Derek Foreman derekf at osg.samsung.com
Mon Jun 8 09:46:54 PDT 2015


We were loading modules out of the system dirs unconditionally, so
tests that loaded modules would use the system ones, or fail if
they weren't installed.

Reviewed-By: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
---
 src/compositor.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/compositor.c b/src/compositor.c
index 8f02b4d..3196e5a 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -4906,16 +4906,21 @@ on_caught_signal(int s, siginfo_t *siginfo, void *context)
 WL_EXPORT void *
 weston_load_module(const char *name, const char *entrypoint)
 {
+	const char *builddir = getenv("WESTON_BUILD_DIR");
 	char path[PATH_MAX];
 	void *module, *init;
 
 	if (name == NULL)
 		return NULL;
 
-	if (name[0] != '/')
-		snprintf(path, sizeof path, "%s/%s", MODULEDIR, name);
-	else
+	if (name[0] != '/') {
+		if (builddir)
+			snprintf(path, sizeof path, "%s/.libs/%s", builddir, name);
+		else
+			snprintf(path, sizeof path, "%s/%s", MODULEDIR, name);
+	} else {
 		snprintf(path, sizeof path, "%s", name);
+	}
 
 	module = dlopen(path, RTLD_NOW | RTLD_NOLOAD);
 	if (module) {
-- 
2.1.4



More information about the wayland-devel mailing list