Procházet zdrojové kódy

Merge branch '233-support-version-numbers-for-preloaded-libs'

* 233-support-version-numbers-for-preloaded-libs:
  Set a possible library version number when pre-loading libraries.
Sascha Zelzer před 12 roky
rodič
revize
6ef9e42463
1 změnil soubory, kde provedl 22 přidání a 3 odebrání
  1. 22 3
      Libs/PluginFramework/ctkPluginFrameworkContext.cpp

+ 22 - 3
Libs/PluginFramework/ctkPluginFrameworkContext.cpp

@@ -102,12 +102,31 @@ void ctkPluginFrameworkContext::init()
 
     foreach(QString preloadLib, preloadLibs)
     {
-      QLibrary lib(preloadLib);
+      QLibrary lib;
+      QStringList nameAndVersion = preloadLib.split(":");
+
+      QString libraryName;
+      if (nameAndVersion.count() == 1)
+      {
+        libraryName = nameAndVersion.front();
+        lib.setFileName(nameAndVersion.front());
+      }
+      else if (nameAndVersion.count() == 2)
+      {
+        libraryName = nameAndVersion.front() + "." + nameAndVersion.back();
+        lib.setFileNameAndVersion(nameAndVersion.front(), nameAndVersion.back());
+      }
+      else
+      {
+        qWarning() << "Wrong syntax in" << preloadLib << ". Use <lib-name>[:version]. Skipping.";
+        continue;
+      }
+
       lib.setLoadHints(loadHints);
-      log() << "Pre-loading library" << preloadLib << "with hints [" << static_cast<int>(loadHints) << "]";
+      log() << "Pre-loading library" << libraryName << "with hints [" << static_cast<int>(loadHints) << "]";
       if (!lib.load())
       {
-        qWarning() << "Pre-loading library" << preloadLib << "failed";
+        qWarning() << "Pre-loading library" << libraryName << "failed. Check your library search paths.";
       }
     }
   }