summaryrefslogtreecommitdiff
path: root/trunk/qpid/cpp/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/qpid/cpp/src/CMakeLists.txt')
-rw-r--r--trunk/qpid/cpp/src/CMakeLists.txt949
1 files changed, 0 insertions, 949 deletions
diff --git a/trunk/qpid/cpp/src/CMakeLists.txt b/trunk/qpid/cpp/src/CMakeLists.txt
deleted file mode 100644
index 899dd5568c..0000000000
--- a/trunk/qpid/cpp/src/CMakeLists.txt
+++ /dev/null
@@ -1,949 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# Option to require building optional plugins
-foreach (r ${REQUIRE})
- set(${r}_force ON)
- message(STATUS "Forcing ${r} to ${${r}_force}")
-endforeach(r)
-
-include(CheckFunctionExists)
-include(CheckIncludeFileCXX)
-include(CheckIncludeFiles)
-include(CheckIncludeFileCXX)
-include(CheckLibraryExists)
-include(CheckSymbolExists)
-include(FindBoost)
-include(FindDoxygen)
-
-#set (CMAKE_VERBOSE_MAKEFILE ON) # for debugging
-
-# check if we generate source as part of the build
-# - rubygen generates the amqp spec and clustering
-# - managementgen generates the broker management code
-#
-# rubygen subdir is excluded from stable distributions
-# If the main AMQP spec is present, then check if ruby and python are
-# present, and if any sources have changed, forcing a re-gen of source code.
-
-set(AMQP_SPEC_DIR ${qpid-cpp_SOURCE_DIR}/../specs)
-set(AMQP_SPEC ${AMQP_SPEC_DIR}/amqp.0-10-qpid-errata.xml)
-if (EXISTS ${AMQP_SPEC})
- include(FindRuby)
- include(FindPythonInterp)
- if (NOT RUBY_EXECUTABLE)
- message(FATAL_ERROR "Can't locate ruby, needed to generate source files.")
- endif (NOT RUBY_EXECUTABLE)
- if (NOT PYTHON_EXECUTABLE)
- message(FATAL_ERROR "Can't locate python, needed to generate source files.")
- endif (NOT PYTHON_EXECUTABLE)
-
- set(specs ${AMQP_SPEC} ${qpid-cpp_SOURCE_DIR}/xml/cluster.xml)
- set(regen_amqp OFF)
- set(rgen_dir ${qpid-cpp_SOURCE_DIR}/rubygen)
- file(GLOB_RECURSE rgen_progs ${rgen_dir}/*.rb)
- # If any of the specs, or any of the sources used to generate code, change
- # then regenerate the sources.
- foreach (spec_file ${specs} ${rgen_progs})
- if (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/rubygen.cmake)
- set(regen_amqp ON)
- endif (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/rubygen.cmake)
- endforeach (spec_file ${specs})
- if (regen_amqp)
- message(STATUS "Regenerating AMQP protocol sources")
-execute_process(COMMAND ${RUBY_EXECUTABLE} -I ${rgen_dir} ${rgen_dir}/generate ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/../include ${specs} all rubygen.cmake
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
- else (regen_amqp)
- message(STATUS "No need to generate AMQP protocol sources")
- endif (regen_amqp)
-
- set(mgmt_specs ${AMQP_SPEC_DIR}/management-schema.xml
- ${CMAKE_CURRENT_SOURCE_DIR}/qpid/acl/management-schema.xml
- ${CMAKE_CURRENT_SOURCE_DIR}/qpid/cluster/management-schema.xml)
- set(mgen_dir ${qpid-cpp_SOURCE_DIR}/managementgen)
- set(regen_mgmt OFF)
- foreach (spec_file ${mgmt_specs})
- if (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/managementgen.cmake)
- message(STATUS "${spec_file} is newer")
- set(regen_mgmt ON)
- endif (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/managementgen.cmake)
- endforeach (spec_file ${mgmt_specs})
- if (regen_mgmt)
- message(STATUS "Regenerating Qpid Management Framework sources")
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${mgen_dir}/qmf-gen -c managementgen.cmake -b -q -o ${CMAKE_CURRENT_BINARY_DIR}/qmf ${mgmt_specs}
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
- else (regen_mgmt)
- message(STATUS "No need to generate Qpid Management Framework sources")
- endif (regen_mgmt)
-
- # Pull in the names of the generated files, i.e. ${rgen_framing_srcs}
- include (${CMAKE_CURRENT_BINARY_DIR}/rubygen.cmake)
- include (${CMAKE_CURRENT_BINARY_DIR}/managementgen.cmake)
-
-else (EXISTS ${AMQP_SPEC})
- message(STATUS "No AMQP spec... presume generated sources are included")
- include (rubygen.cmake)
- include (managementgen.cmake)
-endif (EXISTS ${AMQP_SPEC})
-
-find_program(HELP2MAN help2man DOC "Location of the help2man program")
-option(GEN_MANPAGES "Use help2man to generate man pages" ON)
-if (GEN_MANPAGES AND NOT HELP2MAN)
- message(STATUS "Can't locate the help2man command; man pages will not be generated")
- set (GEN_MANPAGES OFF)
-endif (GEN_MANPAGES AND NOT HELP2MAN)
-
-# FindDoxygen module tries to locate doxygen and Graphviz dot
-set (docs_default ON)
-if (NOT DOXYGEN_EXECUTABLE)
- set (docs_default OFF)
-endif (NOT DOXYGEN_EXECUTABLE)
-option(GEN_DOXYGEN "Use doxygen to generate user documentation" ${docs_default})
-if (GEN_DOXYGEN AND NOT DOXYGEN_EXECUTABLE)
- message(STATUS "Can't locate the doxygen command; user documentation will not be generated")
- set (GEN_DOXYGEN OFF)
-endif (GEN_DOXYGEN AND NOT DOXYGEN_EXECUTABLE)
-
-find_program(VALGRIND valgrind DOC "Location of the valgrind program")
-option(ENABLE_VALGRIND "Use valgrind to detect run-time problems" ON)
-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)
-
-if (CMAKE_COMPILER_IS_GNUCXX)
- set (COMPILER_FLAGS "")
- # Warnings: Enable as many as possible, keep the code clean. Please
- # do not disable warnings or remove -Werror without discussing on
- # qpid-dev list.
- #
- # The following warnings are deliberately omitted, they warn on valid code.
- # -Wunreachable-code -Wpadded -Winline
- # -Wshadow - warns about boost headers.
- set (WARNING_FLAGS
- "-Werror -pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -Woverloaded-virtual")
-endif (CMAKE_COMPILER_IS_GNUCXX)
-
-if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
- set (COMPILER_FLAGS "-library=stlport4 -mt")
- set (WARNING_FLAGS "+w2")
-endif (CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
-
-option(ENABLE_WARNINGS "Enable lots of compiler warnings (recommended)" ON)
-if (NOT ENABLE_WARNINGS)
- set (WARNING_FLAGS "")
-endif (NOT ENABLE_WARNINGS)
-
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_FLAGS} ${WARNING_FLAGS}")
-
-# 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).
-# Boost.system is sometimes needed; it's handled separately, below.
-find_package(Boost 1.33 REQUIRED
- 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)
-
-# Boost.system was introduced at Boost 1.35; it's needed secondarily by other
-# Boost libs Qpid needs, so be sure it's there.
-if (NOT Boost_VERSION LESS 103500)
- find_package(Boost COMPONENTS system)
- if (NOT Boost_SYSTEM_LIBRARY)
- set(Boost_SYSTEM_LIBRARY boost_system)
- endif (NOT Boost_SYSTEM_LIBRARY)
-
-endif (NOT Boost_VERSION LESS 103500)
-
-# 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)
-
-if (NOT Boost_SYSTEM_LIBRARY)
- set(Boost_SYSTEM_LIBRARY boost_system)
-endif (NOT Boost_SYSTEM_LIBRARY)
-
-# The Windows install also wants the Boost DLLs and headers that the release
-# is built with. The DLLs enable everything to run, and the headers ensure
-# that users building Qpid C++ client programs can compile (the C++ API
-# still exposes Boost headers, but hopefully this will be fixed in the
-# future).
-#
-# On Windows you can pick whether the static or dynamic versions of the libs
-# are used; allow this choice to the user. Since we also install the Boost
-# DLLs that are needed for the Windows package, none are needed for the
-# static link case; else drop them into the install. Do this all first, since
-# Boost on Windows can use automatic linking to pick up the correct
-# Boost libs based on compile-time touching of the headers. Since we don't
-# really need to add them to the link lines, set the names to blanks.
-if (MSVC)
- option(QPID_LINK_BOOST_DYNAMIC "Link with dynamic Boost libs (OFF to link static)" ON)
- if (QPID_LINK_BOOST_DYNAMIC)
- add_definitions( /D BOOST_ALL_DYN_LINK)
- string (REPLACE .lib .dll
- _boost_date_time_debug ${Boost_DATE_TIME_LIBRARY_DEBUG})
- string (REPLACE .lib .dll
- _boost_date_time_release ${Boost_DATE_TIME_LIBRARY_RELEASE})
- string (REPLACE .lib .dll
- _boost_filesystem_debug ${Boost_FILESYSTEM_LIBRARY_DEBUG})
- string (REPLACE .lib .dll
- _boost_filesystem_release ${Boost_FILESYSTEM_LIBRARY_RELEASE})
- string (REPLACE .lib .dll
- _boost_program_options_debug ${Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG})
- string (REPLACE .lib .dll
- _boost_program_options_release ${Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE})
- string (REPLACE .lib .dll
- _boost_regex_debug ${Boost_REGEX_LIBRARY_DEBUG})
- string (REPLACE .lib .dll
- _boost_regex_release ${Boost_REGEX_LIBRARY_RELEASE})
- string (REPLACE .lib .dll
- _boost_thread_debug ${Boost_THREAD_LIBRARY_DEBUG})
- string (REPLACE .lib .dll
- _boost_thread_release ${Boost_THREAD_LIBRARY_RELEASE})
- # Boost 1.35 added the system library, which gets indirectly linked in
- # via other Boost libs. So, if building with Boost 1.35 or later, also
- # include system in the Windows install package.
- if (NOT Boost_VERSION LESS 103500)
- string (REPLACE boost_thread boost_system
- _boost_system_debug ${_boost_thread_debug})
- string (REPLACE boost_thread boost_system
- _boost_system_release ${_boost_thread_release})
- endif (NOT Boost_VERSION LESS 103500)
- install (PROGRAMS
- ${_boost_date_time_debug} ${_boost_date_time_release}
- ${_boost_filesystem_debug} ${_boost_filesystem_release}
- ${_boost_program_options_debug} ${_boost_program_options_release}
- ${_boost_regex_debug} ${_boost_regex_release}
- ${_boost_system_debug} ${_boost_system_release}
- ${_boost_thread_debug} ${_boost_thread_release}
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_COMMON})
- endif (QPID_LINK_BOOST_DYNAMIC)
-
- # Need the boost headers regardless of which way the libs go.
- install (DIRECTORY ${Boost_INCLUDE_DIR}/boost
- DESTINATION ${QPID_INSTALL_INCLUDEDIR}
- COMPONENT ${QPID_COMPONENT_CLIENT_INCLUDE})
-
- set(Boost_DATE_TIME_LIBRARY "")
- set(Boost_THREAD_LIBRARY "")
- set(Boost_PROGRAM_OPTIONS_LIBRARY "")
- set(Boost_FILESYSTEM_LIBRARY "")
- set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY "")
- set(Boost_REGEX_LIBRARY "")
-endif (MSVC)
-
-include_directories( ${Boost_INCLUDE_DIR} )
-
-include_directories( ${CMAKE_CURRENT_SOURCE_DIR} )
-include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../include )
-include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/../include )
-
-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)
-
-# See if Cyrus SASL is desired and available
-CHECK_LIBRARY_EXISTS (sasl2 sasl_checkpass "" HAVE_SASL2)
-CHECK_INCLUDE_FILES (sasl/sasl.h HAVE_SASL_H)
-
-set (sasl_default ${sasl_force})
-if (HAVE_SASL2 AND HAVE_SASL_H)
- set (sasl_default ON)
-endif (HAVE_SASL2 AND HAVE_SASL_H)
-
-option(BUILD_SASL "Build with Cyrus SASL support" ${sasl_default})
-if (BUILD_SASL)
- if (NOT HAVE_SASL2)
- message(FATAL_ERROR "Cyrus SASL support requested but libsasl2 not found")
- endif (NOT HAVE_SASL2)
- if (NOT HAVE_SASL_H)
- message(FATAL_ERROR "Cyrus SASL support requested but sasl.h not found")
- endif (NOT HAVE_SASL_H)
-
- set(BROKER_SASL_NAME "qpidd" CACHE STRING "SASL app name for the qpid broker")
- set(qpidcommon_sasl_source
- qpid/sys/cyrus/CyrusSecurityLayer.h
- qpid/sys/cyrus/CyrusSecurityLayer.cpp
- )
- set(qpidcommon_sasl_lib sasl2)
-endif (BUILD_SASL)
-
-# See if XML Exchange is desired and prerequisites are available
-CHECK_LIBRARY_EXISTS (xerces-c _init "" HAVE_XERCES)
-CHECK_INCLUDE_FILE_CXX (xercesc/framework/MemBufInputSource.hpp HAVE_XERCES_H)
-CHECK_INCLUDE_FILE_CXX (xqilla/xqilla-simple.hpp HAVE_XQILLA_H)
-
-set (xml_default ${xml_force})
-if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-else (CMAKE_SYSTEM_NAME STREQUAL Windows)
- if (HAVE_XERCES AND HAVE_XERCES_H)
- if (HAVE_XQILLA_H)
- set (xml_default ON)
- endif (HAVE_XQILLA_H)
- endif (HAVE_XERCES AND HAVE_XERCES_H)
-endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
-
-option(BUILD_XML "Build with XML Exchange" ${xml_default})
-if (BUILD_XML)
- if (NOT HAVE_XERCES)
- message(FATAL_ERROR "XML Exchange support requested but xerces-c library not found")
- endif (NOT HAVE_XERCES)
- if (NOT HAVE_XERCES_H)
- message(FATAL_ERROR "XML Exchange support requested but Xerces-C headers not found")
- endif (NOT HAVE_XERCES_H)
- if (NOT HAVE_XQILLA_H)
- message(FATAL_ERROR "XML Exchange support requested but XQilla headers not found")
- endif (NOT HAVE_XQILLA_H)
-
- add_library (xml MODULE
- qpid/xml/XmlExchange.cpp
- qpid/xml/XmlExchange.h
- qpid/xml/XmlExchangePlugin.cpp)
- set_target_properties (xml PROPERTIES PREFIX "")
- target_link_libraries (xml xerces-c xqilla qpidbroker pthread)
- if (CMAKE_COMPILER_IS_GNUCXX)
- set_target_properties (xml PROPERTIES
- PREFIX ""
- LINK_FLAGS -Wl,--no-undefined)
- endif (CMAKE_COMPILER_IS_GNUCXX)
- install (TARGETS xml
- DESTINATION ${QPIDD_MODULE_DIR}
- COMPONENT ${QPID_COMPONENT_BROKER})
-
- set(xml_tests XmlClientSessionTest)
-
-endif (BUILD_XML)
-
-# Build the ACL plugin
-set (acl_default ON)
-# Like this until we fix exporting symbols from the generated management code
-if (CMAKE_SYSTEM_NAME STREQUAL Windows)
- set(acl_default OFF)
-endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
-option(BUILD_ACL "Build ACL enforcement broker plugin" ${acl_default})
-if (BUILD_ACL)
- set (acl_SOURCES
- qpid/acl/Acl.cpp
- qpid/acl/Acl.h
- qpid/acl/AclData.cpp
- qpid/acl/AclData.h
- qpid/acl/AclPlugin.cpp
- qpid/acl/AclReader.cpp
- qpid/acl/AclReader.h
- )
- add_library (acl MODULE ${acl_SOURCES})
- set_target_properties (acl PROPERTIES PREFIX "")
- target_link_libraries (acl qpidbroker ${Boost_PROGRAM_OPTIONS_LIBRARY})
- if (CMAKE_COMPILER_IS_GNUCXX)
- set_target_properties (acl PROPERTIES
- PREFIX ""
- LINK_FLAGS -Wl,--no-undefined)
- endif (CMAKE_COMPILER_IS_GNUCXX)
- install (TARGETS acl
- DESTINATION ${QPIDD_MODULE_DIR}
- COMPONENT ${QPID_COMPONENT_BROKER})
-endif (BUILD_ACL)
-
-# Check for optional cluster support requirements
-include (cluster.cmake)
-
-# Check for optional RDMA support requirements
-include (rdma.cmake)
-
-# Check for optional SSL support requirements
-include (ssl.cmake)
-
-# Check for syslog capabilities not present on all systems
-check_symbol_exists (LOG_AUTHPRIV "sys/syslog.h" HAVE_LOG_AUTHPRIV)
-check_symbol_exists (LOG_FTP "sys/syslog.h" HAVE_LOG_FTP)
-
-if (CMAKE_SYSTEM_NAME STREQUAL Windows)
- if (MSVC)
- add_definitions(
- /D "_CRT_NONSTDC_NO_WARNINGS"
- /D "NOMINMAX"
- /D "WIN32_LEAN_AND_MEAN"
- /D "_SCL_SECURE_NO_WARNINGS"
- /wd4244
- /wd4800
- /wd4355
- )
- endif (MSVC)
-
- set (qpidcommon_platform_SOURCES
- qpid/log/windows/SinkOptions.cpp
- qpid/sys/windows/AsynchIO.cpp
- qpid/sys/windows/FileSysDir.cpp
- qpid/sys/windows/IocpPoller.cpp
- qpid/sys/windows/IOHandle.cpp
- qpid/sys/windows/LockFile.cpp
- qpid/sys/windows/PipeHandle.cpp
- qpid/sys/windows/PollableCondition.cpp
- qpid/sys/windows/Shlib.cpp
- qpid/sys/windows/Socket.cpp
- qpid/sys/windows/SocketAddress.cpp
- qpid/sys/windows/StrError.cpp
- qpid/sys/windows/SystemInfo.cpp
- qpid/sys/windows/Thread.cpp
- qpid/sys/windows/Time.cpp
- qpid/sys/windows/uuid.cpp
- ${sslcommon_windows_SOURCES}
- )
- set (qpidcommon_platform_LIBS
- ${windows_ssl_libs} rpcrt4 ws2_32
- )
- set (qpidbroker_platform_SOURCES
- qpid/broker/windows/BrokerDefaults.cpp
- qpid/broker/windows/SaslAuthenticator.cpp
- ${sslbroker_windows_SOURCES}
- )
- set (qpidbroker_platform_LIBS
- ${windows_ssl_libs}
- )
- set (qpidclient_platform_SOURCES
- qpid/client/windows/SaslFactory.cpp
- ${sslclient_windows_SOURCES}
- )
- set (qpidclient_platform_LIBS
- ${windows_ssl_libs}
- )
-
- set (qpidd_platform_SOURCES
- windows/QpiddBroker.cpp
- )
-
-else (CMAKE_SYSTEM_NAME STREQUAL Windows)
-
- # POSIX (Non-Windows) platforms have a lot of overlap in sources; the only
- # major difference is the poller module.
- if (CMAKE_SYSTEM_NAME STREQUAL Linux)
- set (qpid_poller_module
- qpid/sys/epoll/EpollPoller.cpp
- qpid/sys/posix/SystemInfo.cpp
- )
- add_definitions(-pthread)
- set (CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} -pthread)
- endif (CMAKE_SYSTEM_NAME STREQUAL Linux)
-
- if (CMAKE_SYSTEM_NAME STREQUAL SunOS)
- set (qpid_poller_module
- qpid/sys/solaris/ECFPoller.cpp
- qpid/sys/solaris/SystemInfo.cpp
- )
- endif (CMAKE_SYSTEM_NAME STREQUAL SunOS)
-
- set (qpidcommon_platform_SOURCES
- qpid/sys/posix/AsynchIO.cpp
- qpid/sys/posix/Fork.cpp
- qpid/sys/posix/FileSysDir.cpp
- qpid/sys/posix/IOHandle.cpp
- qpid/sys/posix/LockFile.cpp
- qpid/sys/posix/Mutex.cpp
- qpid/sys/posix/PipeHandle.cpp
- qpid/sys/posix/PollableCondition.cpp
- qpid/sys/posix/Shlib.cpp
- qpid/log/posix/SinkOptions.cpp
- qpid/sys/posix/Socket.cpp
- qpid/sys/posix/SocketAddress.cpp
- qpid/sys/posix/StrError.cpp
- qpid/sys/posix/Thread.cpp
- qpid/sys/posix/Time.cpp
-
- ${qpid_poller_module}
- )
- set (qpidcommon_platform_LIBS
- ${Boost_PROGRAM_OPTIONS_LIBRARY}
- ${Boost_FILESYSTEM_LIBRARY}
- uuid
- ${CMAKE_DL_LIBS}
- )
-
- set (qpidbroker_platform_SOURCES
- qpid/broker/Daemon.cpp
- qpid/broker/SaslAuthenticator.cpp
- qpid/broker/SignalHandler.h
- qpid/broker/SignalHandler.cpp
- qpid/broker/posix/BrokerDefaults.cpp
- )
-
- set (qpidclient_platform_SOURCES
- qpid/client/SaslFactory.cpp
- )
-
- set (qpidd_platform_SOURCES
- posix/QpiddBroker.cpp
- )
-endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
-
-set (qpidcommon_SOURCES
- ${rgen_framing_srcs}
- ${qpidcommon_platform_SOURCES}
- ${qpidcommon_sasl_source}
- qpid/assert.cpp
- qpid/Address.cpp
- qpid/DataDir.cpp
- qpid/Exception.cpp
- qpid/Modules.cpp
- qpid/Options.cpp
- qpid/Plugin.cpp
- qpid/RefCountedBuffer.cpp
- qpid/SessionState.cpp
- qpid/SessionId.cpp
- qpid/StringUtils.cpp
- qpid/Url.cpp
- qpid/amqp_0_10/SessionHandler.cpp
- qpid/framing/AccumulatedAck.cpp
- qpid/framing/AMQBody.cpp
- qpid/framing/AMQMethodBody.cpp
- qpid/framing/AMQContentBody.cpp
- qpid/framing/AMQFrame.cpp
- qpid/framing/AMQHeaderBody.cpp
- qpid/framing/AMQHeartbeatBody.cpp
- qpid/framing/Array.cpp
- qpid/framing/BodyHandler.cpp
- qpid/framing/Buffer.cpp
- qpid/framing/Endian.cpp
- qpid/framing/FieldTable.cpp
- qpid/framing/FieldValue.cpp
- qpid/framing/FrameSet.cpp
- qpid/framing/FrameDecoder.cpp
- qpid/framing/List.cpp
- qpid/framing/ProtocolInitiation.cpp
- qpid/framing/ProtocolVersion.cpp
- qpid/framing/SendContent.cpp
- qpid/framing/SequenceNumber.cpp
- qpid/framing/SequenceNumberSet.cpp
- qpid/framing/SequenceSet.cpp
- qpid/framing/Proxy.cpp
- qpid/framing/Uuid.cpp
- qpid/framing/TransferContent.cpp
- qpid/log/Logger.cpp
- qpid/log/Options.cpp
- qpid/log/OstreamOutput.cpp
- qpid/log/Selector.cpp
- qpid/log/Statement.cpp
- qpid/management/Manageable.cpp
- qpid/management/ManagementObject.cpp
- qpid/sys/AggregateOutput.cpp
- qpid/sys/AsynchIOHandler.cpp
- qpid/sys/Dispatcher.cpp
- qpid/sys/DispatchHandle.cpp
- qpid/sys/Runnable.cpp
- qpid/sys/Shlib.cpp
- qpid/sys/Timer.cpp
-)
-
-add_library (qpidcommon SHARED ${qpidcommon_SOURCES})
-if (CLOCK_GETTIME_IN_RT)
- set (qpidcommon_platform_LIBS ${qpidcommon_platform_LIBS} rt)
-endif (CLOCK_GETTIME_IN_RT)
-target_link_libraries (qpidcommon
- ${qpidcommon_platform_LIBS}
- ${qpidcommon_sasl_lib})
-set_target_properties (qpidcommon PROPERTIES
- VERSION ${qpidc_version})
-install (TARGETS qpidcommon
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_COMMON})
-# When the client programming component is installed, Windows also needs
-# the debug variant of qpidcommon and qpidclient, and the PDBs for those
-# as well. It would be nice to figure out a way to put some sanity checking
-# here... as it is, success relies on the packager building the debug then
-# the release, then packaging the release build.
-if (WIN32)
- install (PROGRAMS
- ${CMAKE_CURRENT_BINARY_DIR}/Debug/qpidcommond.dll
- ${CMAKE_CURRENT_BINARY_DIR}/Debug/qpidcommond.lib
- ${CMAKE_CURRENT_BINARY_DIR}/Debug/qpidcommond.pdb
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_CLIENT})
-endif (WIN32)
-
-set (qpidclient_SOURCES
- ${rgen_client_srcs}
- ${qpidclient_platform_SOURCES}
- qpid/client/Bounds.cpp
- qpid/client/Completion.cpp
- qpid/client/Connection.cpp
- qpid/client/ConnectionHandler.cpp
- qpid/client/ConnectionImpl.cpp
- qpid/client/ConnectionSettings.cpp
- qpid/client/Connector.cpp
- qpid/client/Demux.cpp
- qpid/client/Dispatcher.cpp
- qpid/client/FailoverManager.cpp
- qpid/client/FailoverListener.cpp
- qpid/client/Future.cpp
- qpid/client/FutureCompletion.cpp
- qpid/client/FutureResult.cpp
- qpid/client/LoadPlugins.cpp
- qpid/client/LocalQueue.cpp
- qpid/client/LocalQueueImpl.cpp
- qpid/client/Message.cpp
- qpid/client/MessageImpl.cpp
- qpid/client/MessageListener.cpp
- qpid/client/MessageReplayTracker.cpp
- qpid/client/QueueOptions.cpp
- qpid/client/Results.cpp
- qpid/client/SessionBase_0_10.cpp
- qpid/client/SessionBase_0_10Access.h
- qpid/client/ConnectionAccess.h
- qpid/client/SessionImpl.cpp
- qpid/client/StateManager.cpp
- qpid/client/Subscription.cpp
- qpid/client/SubscriptionImpl.cpp
- qpid/client/SubscriptionManager.cpp
- qpid/client/SubscriptionManagerImpl.cpp
- qpid/client/TCPConnector.cpp
- qpid/messaging/Address.cpp
- qpid/messaging/Connection.cpp
- qpid/messaging/ConnectionImpl.h
- qpid/messaging/ListContent.cpp
- qpid/messaging/ListView.cpp
- qpid/messaging/MapContent.cpp
- qpid/messaging/MapView.cpp
- qpid/messaging/Message.cpp
- qpid/messaging/MessageImpl.h
- qpid/messaging/MessageImpl.cpp
- qpid/messaging/Receiver.cpp
- qpid/messaging/ReceiverImpl.h
- qpid/messaging/Session.cpp
- qpid/messaging/SessionImpl.h
- qpid/messaging/Sender.cpp
- qpid/messaging/SenderImpl.h
- qpid/messaging/Variant.cpp
- qpid/client/amqp0_10/AcceptTracker.h
- qpid/client/amqp0_10/AcceptTracker.cpp
- qpid/client/amqp0_10/AddressResolution.h
- qpid/client/amqp0_10/AddressResolution.cpp
- qpid/client/amqp0_10/Codecs.cpp
- qpid/client/amqp0_10/CodecsInternal.h
- qpid/client/amqp0_10/ConnectionImpl.h
- qpid/client/amqp0_10/ConnectionImpl.cpp
- qpid/client/amqp0_10/IncomingMessages.h
- qpid/client/amqp0_10/IncomingMessages.cpp
- qpid/client/amqp0_10/MessageSink.h
- qpid/client/amqp0_10/MessageSource.h
- qpid/client/amqp0_10/OutgoingMessage.h
- qpid/client/amqp0_10/OutgoingMessage.cpp
- qpid/client/amqp0_10/ReceiverImpl.h
- qpid/client/amqp0_10/ReceiverImpl.cpp
- qpid/client/amqp0_10/SessionImpl.h
- qpid/client/amqp0_10/SessionImpl.cpp
- qpid/client/amqp0_10/SenderImpl.h
- qpid/client/amqp0_10/SenderImpl.cpp
-)
-
-add_library (qpidclient SHARED ${qpidclient_SOURCES})
-target_link_libraries (qpidclient qpidcommon ${qpidclient_platform_LIBS})
-set_target_properties (qpidclient PROPERTIES VERSION ${qpidc_version})
-install (TARGETS qpidclient
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_CLIENT})
-install (DIRECTORY ../include/qpid ${CMAKE_CURRENT_BINARY_DIR}/../include/qpid
- DESTINATION ${QPID_INSTALL_INCLUDEDIR}
- COMPONENT ${QPID_COMPONENT_CLIENT_INCLUDE}
- PATTERN ".svn" EXCLUDE)
-if (WIN32)
- install (PROGRAMS
- ${CMAKE_CURRENT_BINARY_DIR}/Debug/qpidclientd.dll
- ${CMAKE_CURRENT_BINARY_DIR}/Debug/qpidclientd.lib
- ${CMAKE_CURRENT_BINARY_DIR}/Debug/qpidclientd.pdb
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_CLIENT})
-endif (WIN32)
-
-if (WIN32)
- set(AMQP_WCF_DIR ${qpid-cpp_SOURCE_DIR}/../wcf)
- set(DTC_PLUGIN_SOURCE ${AMQP_WCF_DIR}/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp)
- if (EXISTS ${DTC_PLUGIN_SOURCE})
- add_library (qpidxarm SHARED ${DTC_PLUGIN_SOURCE})
- target_link_libraries (qpidxarm qpidclient qpidcommon)
- endif (EXISTS ${DTC_PLUGIN_SOURCE})
-endif (WIN32)
-
-set (qpidbroker_SOURCES
- ${mgen_broker_cpp}
- ${qpidbroker_platform_SOURCES}
- qpid/amqp_0_10/Connection.h
- qpid/amqp_0_10/Connection.cpp
- qpid/broker/Broker.cpp
- qpid/broker/Exchange.cpp
- qpid/broker/ExpiryPolicy.cpp
- qpid/broker/Queue.cpp
- qpid/broker/QueueCleaner.cpp
- qpid/broker/QueueListeners.cpp
- qpid/broker/PersistableMessage.cpp
- qpid/broker/Bridge.cpp
- qpid/broker/Connection.cpp
- qpid/broker/ConnectionHandler.cpp
- qpid/broker/ConnectionFactory.cpp
- qpid/broker/DeliverableMessage.cpp
- qpid/broker/DeliveryRecord.cpp
- qpid/broker/DirectExchange.cpp
- qpid/broker/DtxAck.cpp
- qpid/broker/DtxBuffer.cpp
- qpid/broker/DtxManager.cpp
- qpid/broker/DtxTimeout.cpp
- qpid/broker/DtxWorkRecord.cpp
- qpid/broker/ExchangeRegistry.cpp
- qpid/broker/FanOutExchange.cpp
- qpid/broker/HeadersExchange.cpp
- qpid/broker/IncompleteMessageList.cpp
- qpid/broker/Link.cpp
- qpid/broker/LinkRegistry.cpp
- qpid/broker/Message.cpp
- qpid/broker/MessageAdapter.cpp
- qpid/broker/MessageBuilder.cpp
- qpid/broker/MessageStoreModule.cpp
- qpid/broker/NameGenerator.cpp
- qpid/broker/NullMessageStore.cpp
- qpid/broker/QueueBindings.cpp
- qpid/broker/QueueEvents.cpp
- qpid/broker/QueuePolicy.cpp
- qpid/broker/QueueRegistry.cpp
- qpid/broker/RateTracker.cpp
- qpid/broker/RecoveryManagerImpl.cpp
- qpid/broker/RecoveredEnqueue.cpp
- qpid/broker/RecoveredDequeue.cpp
- qpid/broker/RetryList.cpp
- qpid/broker/SecureConnection.cpp
- qpid/broker/SecureConnectionFactory.cpp
- qpid/broker/SemanticState.h
- qpid/broker/SemanticState.cpp
- qpid/broker/SessionAdapter.cpp
- qpid/broker/SessionState.h
- qpid/broker/SessionState.cpp
- qpid/broker/SessionManager.h
- qpid/broker/SessionManager.cpp
- qpid/broker/SessionContext.h
- qpid/broker/SessionHandler.h
- qpid/broker/SessionHandler.cpp
- qpid/broker/System.cpp
- qpid/broker/TopicExchange.cpp
- qpid/broker/TxAccept.cpp
- qpid/broker/TxBuffer.cpp
- qpid/broker/TxPublish.cpp
- qpid/broker/Vhost.cpp
- qpid/management/ManagementAgent.cpp
- qpid/management/ManagementExchange.cpp
- qpid/sys/TCPIOPlugin.cpp
-)
-add_library (qpidbroker SHARED ${qpidbroker_SOURCES})
-target_link_libraries (qpidbroker qpidcommon ${qpidbroker_platform_LIBS})
-set_target_properties (qpidbroker PROPERTIES VERSION ${qpidc_version})
-if (MSVC)
- set_target_properties (qpidbroker PROPERTIES COMPILE_FLAGS /wd4290)
-endif (MSVC)
-install (TARGETS qpidbroker
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_BROKER})
-
-set (qpidd_SOURCES
- ${qpidd_platform_SOURCES}
- qpidd.cpp
- qpidd.h
-)
-add_executable (qpidd ${qpidd_SOURCES})
-target_link_libraries (qpidd qpidbroker qpidcommon ${Boost_PROGRAM_OPTIONS_LIBRARY}
- ${Boost_FILESYSTEM_LIBRARY})
-install (TARGETS qpidd RUNTIME
- DESTINATION ${QPID_INSTALL_BINDIR}
- COMPONENT ${QPID_COMPONENT_BROKER})
-if (CPACK_GENERATOR STREQUAL "NSIS")
- set (CPACK_NSIS_MENU_LINKS
- "qpidd" "Start Qpid Broker")
-endif (CPACK_GENERATOR STREQUAL "NSIS")
-
-# QMF library
-# Library Version Information (CURRENT.REVISION.AGE):
-#
-# CURRENT => API/ABI version. Bump this if the interface changes
-# REVISION => Version of underlying implementation.
-# Bump if implementation changes but API/ABI doesn't
-# AGE => Number of API/ABI versions this is backward compatible with
-set (qmf_version 1.0.0)
-set (qmfengine_version 1.0.0)
-
-set (qmf_SOURCES
- qpid/agent/ManagementAgentImpl.cpp
- qpid/agent/ManagementAgentImpl.h
- )
-add_library (qmf SHARED ${qmf_SOURCES})
-target_link_libraries (qmf qmfengine)
-set_target_properties (qmf PROPERTIES
- VERSION ${qmf_version})
-install (TARGETS qmf OPTIONAL
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_QMF})
-
-set (qmfengine_SOURCES
- qmf/engine/Agent.cpp
- qmf/engine/BrokerProxyImpl.cpp
- qmf/engine/BrokerProxyImpl.h
- qmf/engine/ConnectionSettingsImpl.cpp
- qmf/engine/ConnectionSettingsImpl.h
- qmf/engine/ConsoleImpl.cpp
- qmf/engine/ConsoleImpl.h
- qmf/engine/MessageImpl.cpp
- qmf/engine/MessageImpl.h
- qmf/engine/ObjectIdImpl.cpp
- qmf/engine/ObjectIdImpl.h
- qmf/engine/ObjectImpl.cpp
- qmf/engine/ObjectImpl.h
- qmf/engine/Protocol.cpp
- qmf/engine/Protocol.h
- qmf/engine/QueryImpl.cpp
- qmf/engine/QueryImpl.h
- qmf/engine/ResilientConnection.cpp
- qmf/engine/SequenceManager.cpp
- qmf/engine/SequenceManager.h
- qmf/engine/SchemaImpl.cpp
- qmf/engine/SchemaImpl.h
- qmf/engine/ValueImpl.cpp
- qmf/engine/ValueImpl.h
- )
-add_library (qmfengine SHARED ${qmfengine_SOURCES})
-target_link_libraries (qmfengine qpidclient)
-set_target_properties (qmfengine PROPERTIES
- VERSION ${qmfengine_version})
-install (TARGETS qmfengine OPTIONAL
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_QMF})
-
-# QMF console library
-#module_hdr += \
-# qpid/console/Agent.h \
-# qpid/console/Broker.h \
-# qpid/console/ClassKey.h \
-# qpid/console/ConsoleImportExport.h \
-# qpid/console/ConsoleListener.h \
-# qpid/console/Event.h \
-# qpid/console/Object.h \
-# qpid/console/ObjectId.h \
-# qpid/console/Package.h \
-# qpid/console/Schema.h \
-# qpid/console/SequenceManager.h \
-# qpid/console/SessionManager.h \
-# qpid/console/Value.h
-set (qmfconsole_SOURCES
- ../include/qpid/console/Agent.h
- ../include/qpid/console/Broker.h
- ../include/qpid/console/ClassKey.h
- ../include/qpid/console/ConsoleImportExport.h
- ../include/qpid/console/ConsoleListener.h
- ../include/qpid/console/Event.h
- ../include/qpid/console/Object.h
- ../include/qpid/console/ObjectId.h
- ../include/qpid/console/Package.h
- ../include/qpid/console/Schema.h
- ../include/qpid/console/SequenceManager.h
- ../include/qpid/console/SessionManager.h
- ../include/qpid/console/Value.h
- qpid/console/Agent.cpp
- qpid/console/Broker.cpp
- qpid/console/ClassKey.cpp
- qpid/console/Event.cpp
- qpid/console/Object.cpp
- qpid/console/ObjectId.cpp
- qpid/console/Package.cpp
- qpid/console/Schema.cpp
- qpid/console/SequenceManager.cpp
- qpid/console/SessionManager.cpp
- qpid/console/Value.cpp
- )
-add_library (qmfconsole SHARED ${qmfconsole_SOURCES})
-target_link_libraries (qmfconsole qpidclient)
-set_target_properties (qmfconsole PROPERTIES
- VERSION ${qpidc_version})
-install (TARGETS qmfconsole
- DESTINATION ${QPID_INSTALL_LIBDIR}
- COMPONENT ${QPID_COMPONENT_QMF})
-
-# A queue event listener plugin that creates messages on a replication
-# queue corresponding to enqueue and dequeue events:
-add_library (replicating_listener MODULE
- qpid/replication/constants.h
- qpid/replication/ReplicatingEventListener.cpp
- qpid/replication/ReplicatingEventListener.h
- )
-target_link_libraries (replicating_listener qpidbroker ${Boost_PROGRAM_OPTIONS_LIBRARY})
-set_target_properties (replicating_listener PROPERTIES PREFIX "")
-if (CMAKE_COMPILER_IS_GNUCXX)
- set_target_properties(replicating_listener PROPERTIES
- LINK_FLAGS -Wl,--no-undefined)
-endif (CMAKE_COMPILER_IS_GNUCXX)
-install (TARGETS replicating_listener
- DESTINATION ${QPIDD_MODULE_DIR}
- COMPONENT ${QPID_COMPONENT_BROKER})
-
-# A custom exchange plugin that allows an exchange to be created that
-# can process the messages from a replication queue (populated on the
-# source system by the replicating listener plugin above) and take the
-# corresponding action on the local queues
-add_library (replication_exchange MODULE
- qpid/replication/constants.h
- qpid/replication/ReplicationExchange.cpp
- qpid/replication/ReplicationExchange.h
- )
-target_link_libraries (replication_exchange qpidbroker)
-set_target_properties (replication_exchange PROPERTIES PREFIX "")
-if (CMAKE_COMPILER_IS_GNUCXX)
- set_target_properties(replication_exchange PROPERTIES
- LINK_FLAGS -Wl,--no-undefined)
-endif (CMAKE_COMPILER_IS_GNUCXX)
-install (TARGETS replication_exchange
- DESTINATION ${QPIDD_MODULE_DIR}
- COMPONENT ${QPID_COMPONENT_BROKER})
-
-# This is only really needed until all the trunk builds (Linux, UNIX, Windows)
-# are all on cmake only. This is because cmake builds always have a config.h
-# file whereas older builds only have config.h on autoconf-generated builds.
-add_definitions(-DHAVE_CONFIG_H)
-
-# Now create the config file from all the info learned above.
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/config.h)
-
-add_subdirectory(qpid/store)
-add_subdirectory(tests)