From e2f348143e847746ea4a7559731394f09afc8b42 Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Thu, 2 Jul 2009 05:46:42 +0000 Subject: Fix cmake build for recent gnu ld which needs all libs used by prog and dependencies linked into prog, also fix for older versions of cmake with more limited boost support. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@790464 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/CMakeLists.txt | 29 +++++++++++++++++++++++++---- cpp/src/ssl.cmake | 2 +- 2 files changed, 26 insertions(+), 5 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index f34441b532..1ce2411e26 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -32,7 +32,7 @@ include(CheckSymbolExists) include(FindBoost) include(FindDoxygen) -#set (CMAKE_VERBOSE_MAKEFILE ON) # for dubugging +#set (CMAKE_VERBOSE_MAKEFILE ON) # for debugging # check if we generate source as part of the build # - rubygen generates the amqp spec and clustering @@ -146,13 +146,33 @@ if (ENABLE_WARNINGS AND CMAKE_COMPILER_IS_GNUCXX) endif (ENABLE_WARNINGS AND CMAKE_COMPILER_IS_GNUCXX) # Expand a bit from the basic Find_Boost; be specific about what's needed. +# TODO: Not all these libs are needed everywhere: +# Linux only uses filesystem program_options unit_test_framework (which itself uses regex) find_package(Boost 1.33 REQUIRED - COMPONENTS date_time filesystem program_options thread + COMPONENTS filesystem program_options date_time thread regex unit_test_framework) if(NOT Boost_FOUND) message(FATAL_ERROR "Boost C++ libraries not found. Please install or try setting BOOST_ROOT") endif(NOT Boost_FOUND) +# Versions of cmake pre 2.6 don“t set the Boost_*_LIBRARY variables correctly +# these values are correct for Linux +if (NOT Boost_PROGRAM_OPTIONS_LIBRARY) + set(Boost_PROGRAM_OPTIONS_LIBRARY boost_program_options) +endif (NOT Boost_PROGRAM_OPTIONS_LIBRARY) + +if (NOT Boost_FILESYSTEM_LIBRARY) + set(Boost_FILESYSTEM_LIBRARY boost_filesystem) +endif (NOT Boost_FILESYSTEM_LIBRARY) + +if (NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY) + set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY boost_unit_test_framework) +endif (NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY) + +if (NOT Boost_REGEX_LIBRARY) + set(Boost_REGEX_LIBRARY boost_regex) +endif (NOT Boost_REGEX_LIBRARY) + include_directories( ${Boost_INCLUDE_DIR} ) include_directories( . ) @@ -569,7 +589,8 @@ set (qpidd_SOURCES qpidd.h ) add_executable (qpidd ${qpidd_SOURCES}) -target_link_libraries (qpidd qpidbroker qpidcommon) +target_link_libraries (qpidd qpidbroker qpidcommon ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY}) # QMF agent library #module_hdr += \ @@ -654,7 +675,7 @@ add_library (replicating_listener MODULE qpid/replication/ReplicatingEventListener.cpp qpid/replication/ReplicatingEventListener.h ) -target_link_libraries (replicating_listener qpidbroker) +target_link_libraries (replicating_listener qpidbroker ${Boost_PROGRAM_OPTIONS_LIBRARY}) set_target_properties (replicating_listener PROPERTIES PREFIX "") if (CMAKE_COMPILER_IS_GNUCXX) diff --git a/cpp/src/ssl.cmake b/cpp/src/ssl.cmake index 48b53dad3b..278373cb2a 100644 --- a/cpp/src/ssl.cmake +++ b/cpp/src/ssl.cmake @@ -76,7 +76,7 @@ if (BUILD_SSL) qpid/sys/ssl/SslHandler.cpp ) add_library (ssl MODULE ${ssl_SOURCES}) - target_link_libraries (ssl qpidbroker sslcommon) + target_link_libraries (ssl qpidbroker sslcommon ${Boost_PROGRAM_OPTIONS_LIBRARY}) set_target_properties (ssl PROPERTIES PREFIX "" COMPILE_FLAGS ${NSS_COMPILE_FLAGS}) -- cgit v1.2.1