X-Git-Url: https://vaikene.ee/gitweb/pswgen11.html?a=blobdiff_plain;f=src%2Flibs%2FPlugins%2Fpluginmanager.h;h=91a5b00947db662addc22238846e0dbd2e5fe00e;hb=HEAD;hp=2f320f97b54d0eab2ce57ccae5256976686e8846;hpb=441d1b38e0900f56891f495a94a08dc8d48e0a32;p=evaf
diff --git a/src/libs/Plugins/pluginmanager.h b/src/libs/Plugins/pluginmanager.h
index 2f320f9..91a5b00 100644
--- a/src/libs/Plugins/pluginmanager.h
+++ b/src/libs/Plugins/pluginmanager.h
@@ -1,8 +1,8 @@
/**
- * @file plugins/pluginmanager.h
+ * @file Plugins/pluginmanager.h
* @brief Manager for loadable modules (plugins)
*
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
@@ -24,6 +24,10 @@
#include
#include
+#include
+#include
+
+namespace eVaf {
/**
* Library for managing loadable modules (plugins).
@@ -44,6 +48,33 @@ namespace Internal {
class PluginManagerPrivate;
}
+/**
+ * Expands plugin names for the selected platform.
+ * @param name Name of the plugin
+ * @return Expanded plugin name
+ *
+ * This function expands the plugin name so that it becomes valid for the selected platform.
+ * For example, on Linux it adds the prefix "lib" to the beginning and extension ".so" to the end.
+ */
+inline QString expandPluginName(QString const & name)
+{
+#ifdef Q_OS_WIN32
+# ifdef Q_CC_MINGW
+ return "lib" + name + ".dll";
+# else
+ return name + ".dll";
+# endif
+#elif defined Q_OS_LINUX
+ return "lib" + name + ".so";
+#elif defined Q_OS_CYGWIN
+ return "cyg" + name + ".dll";
+#elif defined Q_OS_MACOS
+ return "lib" + name + ".dylib";
+#else
+ return name;
+#endif
+}
+
/**
* Plugin manager for eVaf applications.
*/
@@ -101,11 +132,11 @@ signals:
private:
- Internal::PluginManagerPrivate * dl;
+ QScopedPointer d;
};
-} // namespace Plugins
-
+} // namespace eVaf::Plugins
+} // namespace eVaf
#endif // pluginmanager.h