You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2013/09/04 00:09:18 UTC

svn commit: r1519866 - in /qpid/trunk/qpid/cpp: bindings/qmf2/examples/cpp/CMakeLists.txt examples/messaging/CMakeLists.txt src/CMakeLists.txt src/amqp.cmake src/qpid/store/CMakeLists.txt src/rdma.cmake src/tests/CMakeLists.txt

Author: astitcher
Date: Tue Sep  3 22:09:17 2013
New Revision: 1519866

URL: http://svn.apache.org/r1519866
Log:
QPID-5111: Make library dependencies clearer in build system
- Use -as-needed to link libraries to avoid unnecessary libraries
- Tidyup mess with nss and qpid-proton libraries

Modified:
    qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt
    qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/amqp.cmake
    qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/rdma.cmake
    qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt

Modified: qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt?rev=1519866&r1=1519865&r2=1519866&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt Tue Sep  3 22:09:17 2013
@@ -57,10 +57,10 @@ macro(add_example subdir example)
   add_executable(${subdir}_${example} ${example}.cpp)
   set_target_properties(${subdir}_${example} PROPERTIES OUTPUT_NAME ${example})
   if (${ARGC} GREATER 2)
-    target_link_libraries(${subdir}_${example} ${ARGN} qpidclient
+    target_link_libraries(${subdir}_${example} ${ARGN} qpidmessaging qpidtypes
                           ${_boost_libs_needed})
   else (${ARGC} GREATER 2)
-    target_link_libraries(${subdir}_${example} qpidclient
+    target_link_libraries(${subdir}_${example} qpidmessaging qpidtypes
                           ${_boost_libs_needed})
   endif (${ARGC} GREATER 2)
 endmacro(add_example)

Modified: qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt?rev=1519866&r1=1519865&r2=1519866&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt Tue Sep  3 22:09:17 2013
@@ -23,7 +23,7 @@
 macro(add_messaging_example example)
   add_executable(${example} ${example}.cpp OptionParser.cpp)
   set_target_properties(${example} PROPERTIES OUTPUT_NAME ${example})
-  target_link_libraries(${example} qpidmessaging ${_boost_libs_needed})
+  target_link_libraries(${example} qpidmessaging qpidtypes ${_boost_libs_needed})
   # For installs, don't install the built example; that would be pointless.
   # Install the things a user needs to build the example on-site.
   install (FILES

Modified: qpid/trunk/qpid/cpp/src/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/CMakeLists.txt?rev=1519866&r1=1519865&r2=1519866&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/CMakeLists.txt Tue Sep  3 22:09:17 2013
@@ -279,6 +279,9 @@ if (ENABLE_VALGRIND AND NOT VALGRIND)
   message(STATUS "Can't locate the valgrind command; no run-time error detection")
 endif (ENABLE_VALGRIND AND NOT VALGRIND)
 
+# Do not keep on linking against transitive library dependencies
+set (CMAKE_LINK_INTERFACE_LIBRARIES "")
+
 if (CMAKE_COMPILER_IS_GNUCXX)
    # Warnings: Enable as many as possible, keep the code clean. Please
    # do not disable warnings or remove -Werror without discussing on
@@ -295,12 +298,13 @@ if (CMAKE_COMPILER_IS_GNUCXX)
    if (CMAKE_SYSTEM_NAME STREQUAL SunOS)
       set (CATCH_UNDEFINED "")
    endif (CMAKE_SYSTEM_NAME STREQUAL SunOS)
-   set (COMPILER_FLAGS "-fvisibility-inlines-hidden")
+   set (COMPILER_FLAGS "-fvisibility-inlines-hidden -Wl,--as-needed")
    # gcc 4.1.2 on RHEL 5 needs -Wno-attributes to avoid an error that's fixed
    # in later gcc versions.
    execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion
                    OUTPUT_VARIABLE GCC_VERSION)
    if (GCC_VERSION VERSION_EQUAL 4.1.2)
+     set (COMPILER_FLAGS "-Wl,--as-needed")
      message (STATUS "Cannot use -fvisibility=hidden on gcc 4.1.2")
    else (GCC_VERSION VERSION_EQUAL 4.1.2)
      set (HIDE_SYMBOL_FLAGS "-fno-visibility-inlines-hidden -fvisibility=hidden")
@@ -534,13 +538,15 @@ include_directories( ${CMAKE_CURRENT_BIN
 
 link_directories( ${Boost_LIBRARY_DIRS} )
 
-CHECK_LIBRARY_EXISTS (rt clock_gettime "" CLOCK_GETTIME_IN_RT)
-if (NOT CLOCK_GETTIME_IN_RT)
-  CHECK_FUNCTION_EXISTS (clock_gettime QPID_HAS_CLOCK_GETTIME)
-else (NOT CLOCK_GETTIME_IN_RT)
-  set(CMAKE_REQUIRED_LIBS ${CMAKE_REQUIRED_LIBS} rt)
-  set(QPID_HAS_CLOCK_GETTIME YES CACHE BOOL "Platform has clock_gettime")
-endif (NOT CLOCK_GETTIME_IN_RT)
+CHECK_FUNCTION_EXISTS (clock_gettime CLOCK_GETTIME_IN_LIBC)
+if (NOT CLOCK_GETTIME_IN_LIBC)
+  CHECK_LIBRARY_EXISTS (rt clock_gettime "" CLOCK_GETTIME_IN_RT)
+  if (CLOCK_GETTIME_IN_RT)
+    set(clock_gettime_LIB "rt")
+  else ()
+    message(FATAL_ERROR "Cannot find clock_gettime()")
+  endif (CLOCK_GETTIME_IN_RT)
+endif (NOT CLOCK_GETTIME_IN_LIBC)
 
 # Check for header file for dtrace static probes
 check_include_files(sys/sdt.h HAVE_SYS_SDT_H)
@@ -572,6 +578,7 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL Windo
   if (NOT HAVE_UUID AND NOT HAVE_UUID_H)
     message(FATAL_ERROR "Uuid library and/or header file not found")
   endif (NOT HAVE_UUID AND NOT HAVE_UUID_H)
+  set (uuid_LIB "uuid")
 endif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
 
 # See if Cyrus SASL is desired and available
@@ -599,7 +606,7 @@ if (BUILD_SASL)
       qpid/sys/cyrus/CyrusSecurityLayer.h
       qpid/sys/cyrus/CyrusSecurityLayer.cpp
      )
-  set(qpidcommon_sasl_lib sasl2)
+  set(sasl_LIB sasl2)
 else (BUILD_SASL)
   set(HAVE_SASL OFF)
   set(BROKER_SASL_NAME "qpidd" CACHE STRING "SASL app name for the qpid broker")
@@ -628,27 +635,21 @@ if (BUILD_SSL)
     set (sslcommon_SOURCES
          qpid/sys/windows/SslAsynchIO.cpp
     )
+
     set (ssl_SOURCES
          qpid/broker/windows/SslProtocolFactory.cpp
     )
+
     set (sslconnector_SOURCES
          qpid/client/windows/SslConnector.cpp
     )
-    set (windows_ssl_libs Secur32.lib)
-    set (windows_ssl_server_libs Crypt32.lib)
+    set (ssl_LIBS Secur32.lib)
+    set (ssl_server_LIBS Crypt32.lib Secur32.lib)
   else (CMAKE_SYSTEM_NAME STREQUAL Windows)
     if (NOT NSS_FOUND)
       message(FATAL_ERROR "nss/nspr not found, required for ssl support")
     endif (NOT NSS_FOUND)
 
-    foreach(f ${NSS_CFLAGS})
-      set (NSS_COMPILE_FLAGS "${NSS_COMPILE_FLAGS} ${f}")
-    endforeach(f)
-
-    foreach(f ${NSS_LDFLAGS})
-      set (NSS_LINK_FLAGS "${NSS_LINK_FLAGS} ${f}")
-    endforeach(f)
-
     set (sslcommon_SOURCES
          qpid/sys/ssl/check.h
          qpid/sys/ssl/check.cpp
@@ -667,13 +668,9 @@ if (BUILD_SSL)
          qpid/messaging/amqp/SslTransport.cpp
     )
 
-    set_source_files_properties (
-      ${sslcommon_SOURCES}
-      ${ssl_SOURCES}
-      ${sslconnector_SOURCES}
-      PROPERTIES
-      COMPILE_FLAGS "${NSS_COMPILE_FLAGS}"
-    )
+    set (ssl_INCLUDES "${NSS_INCLUDE_DIRS}")
+    set (ssl_LIBS "${NSS_LIBRARIES}")
+    set (ssl_server_LIBS "${NSS_LIBRARIES}")
   endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
 endif (BUILD_SSL)
 
@@ -714,7 +711,7 @@ if (BUILD_XML)
                qpid/xml/XmlExchange.cpp
                qpid/xml/XmlExchange.h
                qpid/xml/XmlExchangePlugin.cpp)
-  target_link_libraries (xml xerces-c xqilla qpidbroker pthread)
+  target_link_libraries (xml xerces-c xqilla qpidbroker qpidcommon)
   set_target_properties (xml PROPERTIES
                          PREFIX ""
                          COMPILE_DEFINITIONS _IN_QPID_BROKER
@@ -805,13 +802,13 @@ if (BUILD_HA)
     )
 
     add_library (ha MODULE ${ha_SOURCES})
-    set_target_properties (ha PROPERTIES PREFIX "" COMPILE_DEFINITIONS _IN_QPID_BROKER)
-    target_link_libraries (ha qpidtypes qpidcommon qpidbroker qpidmessaging)
-    if (CMAKE_COMPILER_IS_GNUCXX)
-      set_target_properties (ha PROPERTIES
-                             PREFIX ""
-                             LINK_FLAGS -Wl,--no-undefined)
-    endif (CMAKE_COMPILER_IS_GNUCXX)
+    target_link_libraries (ha
+                           qpidtypes qpidcommon qpidbroker qpidmessaging
+                           "${Boost_PROGRAM_OPTIONS_LIBRARY}")
+    set_target_properties (ha PROPERTIES
+                           PREFIX ""
+                           COMPILE_DEFINITIONS _IN_QPID_BROKER
+                           LINK_FLAGS "${CATCH_UNDEFINED}")
     install (TARGETS ha
              DESTINATION ${QPIDD_MODULE_DIR}
              COMPONENT ${QPID_COMPONENT_BROKER})
@@ -861,20 +858,20 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
   )
 
   set (qpidcommon_platform_LIBS
-    ${Boost_THREAD_LIBRARY} ${windows_ssl_libs} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_DATE_TIME_LIBRARY} ${Boost_SYSTEM_LIBRARY} ws2_32  )
+    ${Boost_THREAD_LIBRARY}
+    ${Boost_DATE_TIME_LIBRARY}
+    ${Boost_SYSTEM_LIBRARY}
+    ws2_32
+  )
+
   set (qpidbroker_platform_SOURCES
     qpid/broker/windows/BrokerDefaults.cpp
     qpid/broker/windows/SaslAuthenticator.cpp
   )
-  set (qpidbroker_platform_LIBS
-    ${windows_ssl_libs} ${windows_ssl_server_libs}
-  )
+
   set (qpidclient_platform_SOURCES
     qpid/client/windows/ClientDllMain.cpp
   )
-  set (qpidclient_platform_LIBS
-    ${windows_ssl_libs}
-  )
 
   set (qpidd_platform_SOURCES
     windows/QpiddBroker.cpp
@@ -935,8 +932,7 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows
 
   set (qpidtypes_platform_SOURCES)
   set (qpidtypes_platform_LIBS
-       uuid
-       ${Boost_SYSTEM_LIBRARY}
+    "${uuid_LIB}"
   )
 
   set (qpidcommon_platform_SOURCES
@@ -961,9 +957,11 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows
     ${qpid_system_module}
     ${qpid_poller_module}
   )
+
   set (qpidcommon_platform_LIBS
-    ${Boost_PROGRAM_OPTIONS_LIBRARY}
-    ${CMAKE_DL_LIBS}
+    "${CMAKE_DL_LIBS}"
+    "${clock_gettime_LIB}"
+    "${uuid_LIB}"
   )
 
   set (qpidbroker_platform_SOURCES
@@ -1092,20 +1090,21 @@ set (qpidcommon_SOURCES
 add_msvc_version (qpidcommon library dll)
 
 add_library (qpidcommon SHARED ${qpidcommon_SOURCES})
-if (CLOCK_GETTIME_IN_RT)
-  set (qpidcommon_platform_LIBS ${qpidcommon_platform_LIBS} rt)
-endif (CLOCK_GETTIME_IN_RT)
-# Not all platforms have NSS_LINK_FLAGS
-if (NSS_LINK_FLAGS)
-  set (qpidcommon_LINK_FLAGS LINK_FLAGS ${NSS_LINK_FLAGS})
-endif (NSS_LINK_FLAGS)
+
 target_link_libraries (qpidcommon qpidtypes
                        ${qpidcommon_platform_LIBS}
-                       ${qpidcommon_sasl_lib})
+                       ${Boost_PROGRAM_OPTIONS_LIBRARY}
+                       "${sasl_LIB}"
+                       "${ssl_LIBS}")
+
+get_target_property(qpidcommon_includes qpidcommon INCLUDE_DIRECTORIES)
+list(APPEND qpidcommon_includes ${ssl_INCLUDES})
 set_target_properties (qpidcommon PROPERTIES
+                       INCLUDE_DIRECTORIES "${qpidcommon_includes}"
                        VERSION ${qpidcommon_version}
-                       SOVERSION ${qpidcommon_version_major}
-                       ${qpidcommon_LINK_FLAGS})
+                       SOVERSION ${qpidcommon_version_major})
+unset(qpidcommon_includes)
+
 install (TARGETS qpidcommon
          DESTINATION ${QPID_INSTALL_LIBDIR}
          COMPONENT ${QPID_COMPONENT_COMMON})
@@ -1178,9 +1177,19 @@ set (qpidclient_SOURCES
 add_msvc_version (qpidclient library dll)
 
 add_library (qpidclient SHARED ${qpidclient_SOURCES})
-target_link_libraries (qpidclient qpidcommon ${qpidclient_platform_LIBS})
-set_target_properties (qpidclient PROPERTIES VERSION ${qpidclient_version}
-SOVERSION ${qpidclient_version_major})
+
+target_link_libraries (qpidclient qpidcommon
+                       ${Boost_PROGRAM_OPTIONS_LIBRARY}
+                       "${ssl_LIBS}")
+
+get_target_property(qpidclient_includes qpidclient INCLUDE_DIRECTORIES)
+list(APPEND qpidclient_includes ${ssl_INCLUDES})
+set_target_properties (qpidclient PROPERTIES
+                       INCLUDE_DIRECTORIES "${qpidclient_includes}"
+                       VERSION ${qpidclient_version}
+                       SOVERSION ${qpidclient_version_major})
+unset(qpidclient_includes)
+
 install (TARGETS qpidclient
          DESTINATION ${QPID_INSTALL_LIBDIR}
          COMPONENT ${QPID_COMPONENT_CLIENT})
@@ -1251,7 +1260,7 @@ set_source_files_properties(
 add_msvc_version (qpidmessaging library dll)
 
 add_library (qpidmessaging SHARED ${qpidmessaging_SOURCES})
-target_link_libraries (qpidmessaging qpidclient)
+target_link_libraries (qpidmessaging qpidtypes qpidclient qpidcommon)
 set_target_properties (qpidmessaging PROPERTIES
                        LINK_FLAGS "${HIDE_SYMBOL_FLAGS} ${LINK_VERSION_SCRIPT_FLAG}"
                        VERSION ${qpidmessaging_version}
@@ -1377,11 +1386,21 @@ set (qpidbroker_SOURCES
 )
 add_msvc_version (qpidbroker library dll)
 add_library (qpidbroker SHARED ${qpidbroker_SOURCES})
-target_link_libraries (qpidbroker qpidcommon ${qpidbroker_platform_LIBS})
+
+target_link_libraries (qpidbroker qpidcommon qpidtypes
+                       "${Boost_PROGRAM_OPTIONS_LIBRARY}"
+                       "${sasl_LIB}"
+                       "${ssl_server_LIBS}")
+
+get_target_property(qpidbroker_includes qpidcommon INCLUDE_DIRECTORIES)
+list(APPEND qpidbroker_includes ${ssl_INCLUDES})
 set_target_properties (qpidbroker PROPERTIES
+                       INCLUDE_DIRECTORIES "${qpidbroker_includes}"
                        VERSION ${qpidbroker_version}
                        SOVERSION ${qpidbroker_version_major}
                        COMPILE_DEFINITIONS _IN_QPID_BROKER)
+unset(qpidbroker_includes)
+
 if (MSVC)
   set_target_properties (qpidbroker PROPERTIES COMPILE_FLAGS /wd4290)
 endif (MSVC)

Modified: qpid/trunk/qpid/cpp/src/amqp.cmake
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/amqp.cmake?rev=1519866&r1=1519865&r2=1519866&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/amqp.cmake (original)
+++ qpid/trunk/qpid/cpp/src/amqp.cmake Tue Sep  3 22:09:17 2013
@@ -48,15 +48,6 @@ if (BUILD_AMQP)
       message(FATAL_ERROR "Qpid proton not found, required for amqp 1.0 support")
     endif (NOT PROTON_FOUND)
 
-    foreach(f ${PROTON_CFLAGS})
-      set (PROTON_COMPILE_FLAGS "${PROTON_COMPILE_FLAGS} ${f}")
-    endforeach(f)
-
-    foreach(f ${PROTON_LDFLAGS})
-      set (PROTON_LINK_FLAGS "${PROTON_LINK_FLAGS} ${f}")
-    endforeach(f)
-
-
     set (amqp_SOURCES
          qpid/broker/amqp/Authorise.h
          qpid/broker/amqp/Authorise.cpp
@@ -108,18 +99,21 @@ if (BUILD_AMQP)
          qpid/broker/amqp/Translation.h
          qpid/broker/amqp/Translation.cpp
         )
+
+    include_directories(${PROTON_INCLUDE_DIRS})
+    link_directories(${PROTON_LIBRARY_DIRS})
+
     add_library (amqp MODULE ${amqp_SOURCES})
-    target_link_libraries (amqp qpidbroker qpidcommon)
+    target_link_libraries (amqp qpidtypes qpidbroker qpidcommon ${PROTON_LIBRARIES} ${Boost_PROGRAM_OPTIONS_LIBRARY})
     set_target_properties (amqp PROPERTIES
                            PREFIX ""
-                           COMPILE_FLAGS "${PROTON_COMPILE_FLAGS}"
-                           LINK_FLAGS "${PROTON_LINK_FLAGS}")
-    set_target_properties (amqp PROPERTIES COMPILE_DEFINITIONS _IN_QPID_BROKER)
+                           LINK_FLAGS "${CATCH_UNDEFINED}"
+                           COMPILE_DEFINITIONS _IN_QPID_BROKER)
+
     install (TARGETS amqp
              DESTINATION ${QPIDD_MODULE_DIR}
              COMPONENT ${QPID_COMPONENT_BROKER})
 
-
     set (amqpc_SOURCES
          qpid/messaging/amqp/AddressHelper.h
          qpid/messaging/amqp/AddressHelper.cpp
@@ -147,11 +141,11 @@ if (BUILD_AMQP)
          qpid/messaging/amqp/TcpTransport.cpp
         )
     add_library (amqpc MODULE ${amqpc_SOURCES})
-    target_link_libraries (amqpc qpidmessaging qpidclient qpidcommon)
+    target_link_libraries (amqpc qpidmessaging qpidtypes qpidclient qpidcommon ${PROTON_LIBRARIES})
     set_target_properties (amqpc PROPERTIES
                            PREFIX ""
-                           COMPILE_FLAGS "${PROTON_COMPILE_FLAGS}"
-                           LINK_FLAGS "${PROTON_LINK_FLAGS}")
+                           LINK_FLAGS "${CATCH_UNDEFINED}")
+
     install (TARGETS amqpc
              DESTINATION ${QPIDC_MODULE_DIR}
              COMPONENT ${QPID_COMPONENT_CLIENT})

Modified: qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt?rev=1519866&r1=1519865&r2=1519866&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt Tue Sep  3 22:09:17 2013
@@ -32,7 +32,7 @@ set (store_SOURCES
      MessageStorePlugin.cpp
     )
 add_library (store MODULE ${store_SOURCES})
-target_link_libraries (store qpidbroker ${Boost_PROGRAM_OPTIONS_LIBRARY})
+target_link_libraries (store qpidbroker qpidcommon ${Boost_PROGRAM_OPTIONS_LIBRARY})
 if (CMAKE_COMPILER_IS_GNUCXX)
   set (GCC_CATCH_UNDEFINED "-Wl,--no-undefined")
   # gcc on SunOS uses native linker whose "-z defs" is too fussy

Modified: qpid/trunk/qpid/cpp/src/rdma.cmake
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/rdma.cmake?rev=1519866&r1=1519865&r2=1519866&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/rdma.cmake (original)
+++ qpid/trunk/qpid/cpp/src/rdma.cmake Tue Sep  3 22:09:17 2013
@@ -78,7 +78,7 @@ if (BUILD_RDMA)
            COMPONENT ${QPID_COMPONENT_COMMON})
 
   add_library (rdma MODULE qpid/sys/RdmaIOPlugin.cpp)
-  target_link_libraries (rdma qpidbroker rdmawrap)
+  target_link_libraries (rdma qpidbroker qpidcommon rdmawrap)
   set_target_properties (rdma PROPERTIES
                          COMPILE_DEFINITIONS _IN_QPID_BROKER
                          LINK_FLAGS "${CATCH_UNDEFINED}"
@@ -94,7 +94,7 @@ if (BUILD_RDMA)
            COMPONENT ${QPID_COMPONENT_BROKER})
 
   add_library (rdmaconnector MODULE qpid/client/RdmaConnector.cpp)
-  target_link_libraries (rdmaconnector qpidclient rdmawrap)
+  target_link_libraries (rdmaconnector qpidclient qpidcommon rdmawrap)
   set_target_properties (rdmaconnector PROPERTIES
                          LINK_FLAGS "${CATCH_UNDEFINED}"
                          PREFIX "")

Modified: qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt?rev=1519866&r1=1519865&r2=1519866&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt Tue Sep  3 22:09:17 2013
@@ -171,7 +171,7 @@ add_executable (unit_test unit_test
                 ${actual_unit_tests} ${platform_test_additions})
 target_link_libraries (unit_test
                        ${qpid_test_boost_libs}
-                       qpidmessaging qpidbroker)
+                       qpidmessaging qpidtypes qpidbroker qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 set_target_properties (unit_test PROPERTIES COMPILE_DEFINITIONS _IN_QPID_BROKER)
 remember_location(unit_test)
 
@@ -191,105 +191,104 @@ endif (BUILD_SASL)
 # Other test programs
 #
 add_executable (qpid-perftest qpid-perftest.cpp ${platform_test_additions})
-target_link_libraries (qpid-perftest qpidclient)
+target_link_libraries (qpid-perftest qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #qpid_perftest_SOURCES=qpid-perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h
 remember_location(qpid-perftest)
 
 add_executable (qpid-txtest qpid-txtest.cpp ${platform_test_additions})
-target_link_libraries (qpid-txtest qpidclient)
+target_link_libraries (qpid-txtest qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #qpid_txtest_SOURCES=qpid-txtest.cpp  TestOptions.h ConnectionOptions.h
 remember_location(qpid-txtest)
 
 add_executable (qpid-latency-test qpid-latency-test.cpp ${platform_test_additions})
-target_link_libraries (qpid-latency-test qpidclient)
+target_link_libraries (qpid-latency-test qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #qpid_latencytest_SOURCES=qpid-latency-test.cpp TestOptions.h ConnectionOptions.h
 remember_location(qpid-latency-test)
 
 add_executable (echotest echotest.cpp ${platform_test_additions})
-target_link_libraries (echotest qpidclient)
+target_link_libraries (echotest qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #echotest_SOURCES=echotest.cpp TestOptions.h ConnectionOptions.h
 remember_location(echotest)
 
 add_executable (qpid-client-test qpid-client-test.cpp ${platform_test_additions})
-target_link_libraries (qpid-client-test qpidclient)
+target_link_libraries (qpid-client-test qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #qpid_client_test_SOURCES=qpid-client-test.cpp TestOptions.h ConnectionOptions.h
 remember_location(qpid-client-test)
 
 add_executable (qpid-topic-listener qpid-topic-listener.cpp ${platform_test_additions})
-target_link_libraries (qpid-topic-listener qpidclient)
+target_link_libraries (qpid-topic-listener qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #qpid_topic_listener_SOURCES=qpid-topic-listener.cpp TestOptions.h ConnectionOptions.h
 remember_location(qpid-topic-listener)
 
 add_executable (qpid-topic-publisher qpid-topic-publisher.cpp ${platform_test_additions})
-target_link_libraries (qpid-topic-publisher qpidclient)
+target_link_libraries (qpid-topic-publisher qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #qpid_topic_publisher_SOURCES=qpid-topic-publisher.cpp TestOptions.h ConnectionOptions.h
 remember_location(qpid-topic-publisher)
 
 add_executable (publish publish.cpp ${platform_test_additions})
-target_link_libraries (publish qpidclient)
+target_link_libraries (publish qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #publish_SOURCES=publish.cpp TestOptions.h ConnectionOptions.h
 remember_location(publish)
 
 add_executable (consume consume.cpp ${platform_test_additions})
-target_link_libraries (consume qpidclient)
+target_link_libraries (consume qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #consume_SOURCES=consume.cpp  TestOptions.h ConnectionOptions.h
 remember_location(consume)
 
 add_executable (header_test header_test.cpp ${platform_test_additions})
-target_link_libraries (header_test qpidclient)
+target_link_libraries (header_test qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #header_test_SOURCES=header_test.cpp TestOptions.h ConnectionOptions.h
 remember_location(header_test)
 
 add_executable (declare_queues declare_queues.cpp ${platform_test_additions})
-target_link_libraries (declare_queues qpidclient)
+target_link_libraries (declare_queues qpidclient qpidcommon)
 remember_location(declare_queues)
 
 add_executable (replaying_sender replaying_sender.cpp ${platform_test_additions})
-target_link_libraries (replaying_sender qpidclient)
+target_link_libraries (replaying_sender qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(replaying_sender)
 
 add_executable (resuming_receiver resuming_receiver.cpp ${platform_test_additions})
-target_link_libraries (resuming_receiver qpidclient)
+target_link_libraries (resuming_receiver qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(resuming_receiver)
 
 add_executable (txshift txshift.cpp ${platform_test_additions})
-target_link_libraries (txshift qpidclient)
+target_link_libraries (txshift qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #txshift_SOURCES=txshift.cpp  TestOptions.h ConnectionOptions.h
 remember_location(txshift)
 
 add_executable (txjob txjob.cpp ${platform_test_additions})
-target_link_libraries (txjob qpidclient)
+target_link_libraries (txjob qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #txjob_SOURCES=txjob.cpp  TestOptions.h ConnectionOptions.h
 remember_location(txjob)
 
 add_executable (receiver receiver.cpp ${platform_test_additions})
-target_link_libraries (receiver qpidclient)
-#receiver_SOURCES=receiver.cpp  TestOptions.h ConnectionOptions.h
+target_link_libraries (receiver qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(receiver)
 
+# This is bizarre - using both messaging and client libraries
 add_executable (sender sender.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (sender qpidmessaging)
-#sender_SOURCES=sender.cpp  TestOptions.h ConnectionOptions.h
+target_link_libraries (sender qpidmessaging qpidtypes qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(sender)
 
 add_executable (qpid-receive qpid-receive.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (qpid-receive qpidmessaging)
+target_link_libraries (qpid-receive qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(qpid-receive)
 
 add_executable (qpid-send qpid-send.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (qpid-send qpidmessaging)
+target_link_libraries (qpid-send qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(qpid-send)
 
 add_executable (qpid-ping qpid-ping.cpp ${platform_test_additions})
-target_link_libraries (qpid-ping qpidclient)
+target_link_libraries (qpid-ping qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(qpid-ping)
 
 add_executable (datagen datagen.cpp ${platform_test_additions})
-target_link_libraries (datagen qpidclient)
+target_link_libraries (datagen qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(datagen)
 
 add_executable (msg_group_test msg_group_test.cpp ${platform_test_additions})
-target_link_libraries (msg_group_test qpidmessaging)
+target_link_libraries (msg_group_test qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(msg_group_test)
 
 if (BUILD_SASL)



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


Re: Build broken (was Re: svn commit: r1519866 - in /qpid/trunk/qpid/cpp: bindings/qmf2/examples/cpp/CMakeLists.txt examples/messaging/CMakeLists.txt src/CMakeLists.txt src/amqp.cmake src/qpid/store/CMakeLists.txt src/rdma.cmake src/tests/CMakeLists.txt)

Posted by Andrew Stitcher <as...@redhat.com>.
On Wed, 2013-09-04 at 14:18 +0100, Gordon Sim wrote:
> On 09/04/2013 01:37 PM, Gordon Sim wrote:
> > On 09/03/2013 11:09 PM, astitcher@apache.org wrote:
> >> Author: astitcher
> >> Date: Tue Sep  3 22:09:17 2013
> >> New Revision: 1519866
> >>
> >> URL: http://svn.apache.org/r1519866
> >> Log:
> >> QPID-5111: Make library dependencies clearer in build system
> >> - Use -as-needed to link libraries to avoid unnecessary libraries
> >> - Tidyup mess with nss and qpid-proton libraries
> >>
> >> Modified:
> >>      qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt
> >>      qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt
> >>      qpid/trunk/qpid/cpp/src/CMakeLists.txt
> >>      qpid/trunk/qpid/cpp/src/amqp.cmake
> >>      qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt
> >>      qpid/trunk/qpid/cpp/src/rdma.cmake
> >>      qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
> >
> > This breaks the build for me (Fedora 18, cmake 2.8.9)
> 
> Sorry, make that Fedora *17*, cmake 2.8.9 (getting ahead of myself).

This should be fixed on trunk now.

Andrew



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Re: Build broken (was Re: svn commit: r1519866 - in /qpid/trunk/qpid/cpp: bindings/qmf2/examples/cpp/CMakeLists.txt examples/messaging/CMakeLists.txt src/CMakeLists.txt src/amqp.cmake src/qpid/store/CMakeLists.txt src/rdma.cmake src/tests/CMakeLists.txt)

Posted by Gordon Sim <gs...@redhat.com>.
On 09/04/2013 01:37 PM, Gordon Sim wrote:
> On 09/03/2013 11:09 PM, astitcher@apache.org wrote:
>> Author: astitcher
>> Date: Tue Sep  3 22:09:17 2013
>> New Revision: 1519866
>>
>> URL: http://svn.apache.org/r1519866
>> Log:
>> QPID-5111: Make library dependencies clearer in build system
>> - Use -as-needed to link libraries to avoid unnecessary libraries
>> - Tidyup mess with nss and qpid-proton libraries
>>
>> Modified:
>>      qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt
>>      qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt
>>      qpid/trunk/qpid/cpp/src/CMakeLists.txt
>>      qpid/trunk/qpid/cpp/src/amqp.cmake
>>      qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt
>>      qpid/trunk/qpid/cpp/src/rdma.cmake
>>      qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
>
> This breaks the build for me (Fedora 18, cmake 2.8.9)

Sorry, make that Fedora *17*, cmake 2.8.9 (getting ahead of myself).


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Build broken (was Re: svn commit: r1519866 - in /qpid/trunk/qpid/cpp: bindings/qmf2/examples/cpp/CMakeLists.txt examples/messaging/CMakeLists.txt src/CMakeLists.txt src/amqp.cmake src/qpid/store/CMakeLists.txt src/rdma.cmake src/tests/CMakeLists.txt)

Posted by Gordon Sim <go...@gmail.com>.
On 09/03/2013 11:09 PM, astitcher@apache.org wrote:
> Author: astitcher
> Date: Tue Sep  3 22:09:17 2013
> New Revision: 1519866
>
> URL: http://svn.apache.org/r1519866
> Log:
> QPID-5111: Make library dependencies clearer in build system
> - Use -as-needed to link libraries to avoid unnecessary libraries
> - Tidyup mess with nss and qpid-proton libraries
>
> Modified:
>      qpid/trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt
>      qpid/trunk/qpid/cpp/examples/messaging/CMakeLists.txt
>      qpid/trunk/qpid/cpp/src/CMakeLists.txt
>      qpid/trunk/qpid/cpp/src/amqp.cmake
>      qpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt
>      qpid/trunk/qpid/cpp/src/rdma.cmake
>      qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt

This breaks the build for me (Fedora 18, cmake 2.8.9) with the following 
error (the colon separated libs was the reason I put in the extra 
processing in the first place):

> [ 32%] Building CXX object src/CMakeFiles/qpidcommon.dir/qpid/sys/posix/MemStat.o
> Linking CXX shared library libqpidcommon.so
> /usr/bin/ld: cannot find -lssl3;smime3;nss3;nssutil3;plds4;plc4;nspr4;pthread;dl
> collect2: error: ld returned 1 exit status
> make[2]: *** [src/libqpidcommon.so.2.0.0] Error 1
> make[1]: *** [src/CMakeFiles/qpidcommon.dir/all] Error 2
> make: *** [all] Error 2

It also appears to break the build for RHEL6 and windows though in 
different ways.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org