summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/CMakeLists.txt15
-rw-r--r--qpid/cpp/src/qpid.linkmap10
2 files changed, 20 insertions, 5 deletions
diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
index 331e3d13b1..6af73a436b 100644
--- a/qpid/cpp/src/CMakeLists.txt
+++ b/qpid/cpp/src/CMakeLists.txt
@@ -290,6 +290,11 @@ if (CMAKE_COMPILER_IS_GNUCXX)
endif (GCC_VERSION VERSION_EQUAL 4.1.2)
endif (CMAKE_COMPILER_IS_GNUCXX)
+if (CMAKE_SYSTEM_NAME STREQUAL Linux)
+ set (QPID_LINKMAP ${CMAKE_CURRENT_SOURCE_DIR}/qpid.linkmap)
+ set (LINK_VERSION_SCRIPT_FLAG "-Wl,--version-script=${QPID_LINKMAP}")
+endif (CMAKE_SYSTEM_NAME STREQUAL Linux)
+
if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
set (COMPILER_FLAGS "-library=stlport4 -mt")
set (WARNING_FLAGS "+w")
@@ -300,9 +305,9 @@ endif (CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
if (CMAKE_SYSTEM_NAME STREQUAL Windows)
# Allow MSVC user to select 'WinXP-SP3/Windows Server 2003' as build target version
set (win32_winnt_default OFF)
- if (MSVC)
- set (win32_winnt_default ON)
- endif (MSVC)
+ if (MSVC)
+ set (win32_winnt_default ON)
+ endif (MSVC)
option(SET_WIN32_WINNT "In Windows-MSVC build: define _WIN32_WINNT=0x0502 to select target version: Windows XP with SP3" ${win32_winnt_default})
endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
@@ -1104,7 +1109,7 @@ add_msvc_version (qpidtypes library dll)
add_library(qpidtypes SHARED ${qpidtypes_SOURCES})
target_link_libraries(qpidtypes ${qpidtypes_platform_LIBS})
set_target_properties (qpidtypes PROPERTIES
- LINK_FLAGS "${HIDE_SYMBOL_FLAGS}"
+ LINK_FLAGS "${HIDE_SYMBOL_FLAGS} ${LINK_VERSION_SCRIPT_FLAG}"
VERSION ${qpidtypes_version}
SOVERSION ${qpidtypes_version_major})
@@ -1229,7 +1234,7 @@ add_msvc_version (qpidmessaging library dll)
add_library (qpidmessaging SHARED ${qpidmessaging_SOURCES})
target_link_libraries (qpidmessaging qpidclient)
set_target_properties (qpidmessaging PROPERTIES
- LINK_FLAGS "${HIDE_SYMBOL_FLAGS}"
+ LINK_FLAGS "${HIDE_SYMBOL_FLAGS} ${LINK_VERSION_SCRIPT_FLAG}"
VERSION ${qpidmessaging_version}
SOVERSION ${qpidmessaging_version_major})
install (TARGETS qpidmessaging
diff --git a/qpid/cpp/src/qpid.linkmap b/qpid/cpp/src/qpid.linkmap
new file mode 100644
index 0000000000..4556985b1b
--- /dev/null
+++ b/qpid/cpp/src/qpid.linkmap
@@ -0,0 +1,10 @@
+{
+ global:
+ extern "C++" {
+ typeinfo*qpid::*;
+ vtable*qpid::*;
+ qpid::*;
+ qpid::*operator*qpid::*;
+ };
+ local: *;
+};