summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2009-10-21 01:36:16 +0000
committerStephen D. Huston <shuston@apache.org>2009-10-21 01:36:16 +0000
commit70800c4ee0975aa890b8ce9a87eda24a5b870f24 (patch)
tree082b372f29435017260f4035ca0c58b702ba66d8 /qpid/cpp/src
parentcf7ea13c6e8b19a3d351c6a2701adf7b6d1200f6 (diff)
downloadqpid-python-70800c4ee0975aa890b8ce9a87eda24a5b870f24.tar.gz
Add ability to load modules from something other than a .so file; allows loading .dll files on Windows, for example. The proper suffix is gleaned from cmake; if on autoconf assume .so.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@827865 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/config.h.cmake2
-rw-r--r--qpid/cpp/src/qpid/Modules.cpp10
2 files changed, 11 insertions, 1 deletions
diff --git a/qpid/cpp/src/config.h.cmake b/qpid/cpp/src/config.h.cmake
index 7a1873aafd..b3d0450822 100644
--- a/qpid/cpp/src/config.h.cmake
+++ b/qpid/cpp/src/config.h.cmake
@@ -37,6 +37,8 @@
#cmakedefine QPIDC_MODULE_DIR "${QPIDC_MODULE_DIR}"
#cmakedefine QPIDD_MODULE_DIR "${QPIDD_MODULE_DIR}"
+#define QPID_MODULE_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}"
+
#cmakedefine QPID_HAS_CLOCK_GETTIME
#cmakedefine QPID_HAS_SASL
diff --git a/qpid/cpp/src/qpid/Modules.cpp b/qpid/cpp/src/qpid/Modules.cpp
index 78afbb23ad..7230630818 100644
--- a/qpid/cpp/src/qpid/Modules.cpp
+++ b/qpid/cpp/src/qpid/Modules.cpp
@@ -19,6 +19,7 @@
*
*/
+#include "config.h"
#include "qpid/Modules.h"
#include "qpid/Exception.h"
#include "qpid/log/Statement.h"
@@ -67,10 +68,17 @@ void loadModuleDir (std::string dirname, bool isDefault)
}
fs::directory_iterator endItr;
+ // CMake sets QPID_MODULE_SUFFIX; Autoconf doesn't, so assume Linux .so
+#if defined (QPID_MODULE_SUFFIX)
+ std::string suffix(QPID_MODULE_SUFFIX);
+#else
+ std::string suffix(".so");
+#endif
for (fs::directory_iterator itr (dirPath); itr != endItr; ++itr)
{
if (!fs::is_directory(*itr) &&
- itr->string().find (".so") == itr->string().length() - 3)
+ itr->string().find (suffix) ==
+ itr->string().length() - suffix.length())
tryShlib (itr->string().data(), true);
}
}