From: Rylie Pavlik <rylie@ryliepavlik.com>
Date: Thu, 27 Feb 2020 12:25:42 -0600
Subject: Find base dir and plugins where we've installed them.

---
 src/common/CMakeLists.txt | 4 ++++
 src/common/globals.cpp    | 8 ++++++++
 2 files changed, 12 insertions(+)

diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index ad1c62a..a5f825d 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -128,6 +128,10 @@ set(RESOURCES meshlab-common.qrc)
 
 set(TARGET_TYPE SHARED)
 add_library(meshlab-common ${TARGET_TYPE} ${SOURCES} ${HEADERS} ${RESOURCES})
+if(NOT WIN32 AND NOT APPLE)
+	target_compile_definitions(
+		meshlab-common PRIVATE MESHLAB_LIB_INSTALL_DIR="${MESHLAB_LIB_INSTALL_DIR}")
+endif()
 
 target_compile_definitions(meshlab-common
 	PUBLIC
diff --git a/src/common/globals.cpp b/src/common/globals.cpp
index 5a78929..97462d3 100644
--- a/src/common/globals.cpp
+++ b/src/common/globals.cpp
@@ -90,12 +90,20 @@ QString meshlab::defaultPluginPath()
 #ifdef Q_OS_LINUX
 	else if (pluginsDir.dirName() == "bin") {
 		pluginsDir.cdUp();
+#ifdef MESHLAB_LIB_INSTALL_DIR
+		pluginsDir.cd(MESHLAB_LIB_INSTALL_DIR);
+		if (pluginsDir.exists("plugins")) {
+			pluginsDir.cd("plugins");
+		}
+		return pluginsDir.absolutePath();
+#else
 		pluginsDir.cd("lib");
 		pluginsDir.cd("meshlab");
 		if (pluginsDir.exists("plugins")) {
 			pluginsDir.cd("plugins");
 			return pluginsDir.absolutePath();
 		}
+#endif // MESHLAB_LIB_INSTALL_DIR
 	}
 #endif
 	qDebug("Meshlab Initialization: Serious error. Unable to find the plugins directory.");
